From ce1ba8289c4e7d0a162ed99750f40a153771514f Mon Sep 17 00:00:00 2001 From: David Bolack Date: Mon, 6 Nov 2023 22:30:26 -0600 Subject: [PATCH 001/140] Add Multi-line Dictionary Definition (
) rows. Expands the existing syntax to allow/expect the option of multiple definitions by adding any number of ``` :: Definition``` to an a DT/DD set. --- shared/naturalcrit/markdown.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 114229887..900475986 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -218,8 +218,9 @@ const definitionLists = { while (match = regex.exec(src)) { definitions.push({ dt : this.lexer.inlineTokens(match[1].trim()), - dd : this.lexer.inlineTokens(match[2].trim()) + dd : match[2].split('::').map((s)=>this.lexer.inlineTokens(s.trim())) }); + console.log(match.splice(2).map((s)=>s.trim())); endIndex = regex.lastIndex; } if(definitions.length) { @@ -232,8 +233,9 @@ const definitionLists = { }, renderer(token) { return `
${token.definitions.reduce((html, def)=>{ - return `${html}
${this.parser.parseInline(def.dt)}
` - + `
${this.parser.parseInline(def.dd)}
\n`; + const dds = def.dd.map((s)=>`
${this.parser.parseInline(s)}
`).join('\n'); + return `${html}
${this.parser.parseInline(def.dt)}
+ ${dds}`; }, '')}
`; } }; From e6428a3b18220c30ac2c244a069e4f8118e022f1 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Tue, 7 Nov 2023 18:07:11 -0600 Subject: [PATCH 002/140] Update Editor highlighting for Definition Lists Fixes syntax highlighting to account for multiple definitions on a definition list. --- client/homebrew/editor/editor.jsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index b4f1fc824..cf762974e 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -154,9 +154,14 @@ const Editor = createClass({ const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym; let match; while ((match = regex.exec(line)) != null){ + codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[0]) }, { line: lineNumber, ch: line.indexOf(match[0]) + match[0].length }, { className: 'define' }); codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[1]) }, { line: lineNumber, ch: line.indexOf(match[1]) + match[1].length }, { className: 'term' }); - codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[2]) }, { line: lineNumber, ch: line.indexOf(match[2]) + match[2].length }, { className: 'definition' }); + const matches = match[2].split('::').map((s)=>(s.trim())); + matches.forEach((m)=>{ + codeMirror.markText({ line: lineNumber, ch: line.indexOf(m) }, { line: lineNumber, ch: line.indexOf(m) + m.length }, { className: 'definition' }); + }); + // codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[2]) }, { line: lineNumber, ch: line.indexOf(match[2]) + match[2].length }, { className: 'definition' }); } } From d1152dcbb5e825ca16564b2442fac8a263eb997d Mon Sep 17 00:00:00 2001 From: David Bolack Date: Tue, 7 Nov 2023 21:04:03 -0600 Subject: [PATCH 003/140] Add Change log --- changelog.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/changelog.md b/changelog.md index 9f4a07ab2..081bd85ea 100644 --- a/changelog.md +++ b/changelog.md @@ -80,6 +80,32 @@ pre { ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). +### Tuesday 07/11/2023 + +{{ taskList + +##### abquintic + +* [x] Add user requested feature for definition lists with multiple definitions. + +This implements issue [#2340](https://github.com/naturalcrit/homebrewery/issues/2340) by extending the existing syntax pattern. Additional definitions must be on the same line. + +``` +Dictionary Term :: Definition One :: Definition Two :: Definition Three +``` +Example: +``` +Egg::Came before the Chicken::Python Packaging Format::Over Easy isn't + +Egg + Came before the Chicken + Python Packaging Format + Over Easy isn't +``` + + +}} + ### Friday 13/10/2023 - v3.10.0 {{taskList From 827fdd3cff641c5e171df80a09d10d38cef1844d Mon Sep 17 00:00:00 2001 From: David Bolack Date: Fri, 10 Nov 2023 00:43:45 -0600 Subject: [PATCH 004/140] REmove a console message. --- shared/naturalcrit/markdown.js | 1 - 1 file changed, 1 deletion(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 900475986..ff262b244 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -220,7 +220,6 @@ const definitionLists = { dt : this.lexer.inlineTokens(match[1].trim()), dd : match[2].split('::').map((s)=>this.lexer.inlineTokens(s.trim())) }); - console.log(match.splice(2).map((s)=>s.trim())); endIndex = regex.lastIndex; } if(definitions.length) { From c78dcbfe0563d03321a47ef6688df8eb5811999c Mon Sep 17 00:00:00 2001 From: David Bolack Date: Fri, 10 Nov 2023 23:19:55 -0600 Subject: [PATCH 005/140] Remove Line-break Remove the linbreak between the and the first
--- shared/naturalcrit/markdown.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index ff262b244..ab4a0447f 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -233,8 +233,7 @@ const definitionLists = { renderer(token) { return `
${token.definitions.reduce((html, def)=>{ const dds = def.dd.map((s)=>`
${this.parser.parseInline(s)}
`).join('\n'); - return `${html}
${this.parser.parseInline(def.dt)}
- ${dds}`; + return `${html}
${this.parser.parseInline(def.dt)}
${dds}`; }, '')}
`; } }; From 0624f8a0b962f3b1c8e397d4c4762e1863691e18 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Wed, 22 Nov 2023 13:13:58 -0600 Subject: [PATCH 006/140] Add basic tests for Dictionary lists. --- package.json | 1 + tests/markdown/marked-extensions.test.js | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 tests/markdown/marked-extensions.test.js diff --git a/package.json b/package.json index cd2b446ba..2ee0c8c12 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "test:mustache-syntax:inline": "jest '.*(mustache-syntax).*' -t '^Inline:.*' --verbose --noStackTrace", "test:mustache-syntax:block": "jest '.*(mustache-syntax).*' -t '^Block:.*' --verbose --noStackTrace", "test:mustache-syntax:injection": "jest '.*(mustache-syntax).*' -t '^Injection:.*' --verbose --noStackTrace", + "test:marked-extensions": "jest '.*(marked-extensions).*' --verbose --noStackTrace", "test:route": "jest tests/routes/static-pages.test.js --verbose", "phb": "node scripts/phb.js", "prod": "set NODE_ENV=production && npm run build", diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js new file mode 100644 index 000000000..52f2da38f --- /dev/null +++ b/tests/markdown/marked-extensions.test.js @@ -0,0 +1,24 @@ +/* eslint-disable max-lines */ + +const Markdown = require('naturalcrit/markdown.js'); + +describe('Dictionary Terms', ()=>{ + test('Single Definition', function() { + const source = 'My term :: My First Definition'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); + }); + + test('Two Definitions', function() { + const source = 'My term :: My First Definition :: My Second Definition'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
My Second Definition
'); + }); + + test('Three Definitions', function() { + const source = 'My term :: My First Definition :: My Second Definition :: My Third Definition'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
My Second Definition
\n
My Third Definition
'); + }); + +}); From 5a79795e4f3a6a3bc1826e73e21f1de8a2b27299 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 09:33:00 +1300 Subject: [PATCH 007/140] Indicate tags are clickable by cursor --- client/homebrew/pages/basePages/listPage/brewItem/brewItem.less | 1 + 1 file changed, 1 insertion(+) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less index e8c7aa39a..e7a9ad548 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less @@ -59,6 +59,7 @@ white-space: nowrap; display: inline-block; font-weight: bold; + cursor : pointer; } &:hover{ .links{ From c6821819c7af88187d68f006e0c99ddfde626c0f Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 09:36:17 +1300 Subject: [PATCH 008/140] Initial functionality pass on BrewItem --- .../pages/basePages/listPage/brewItem/brewItem.jsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index 56c08e2af..41a7f07f8 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -20,7 +20,8 @@ const BrewItem = createClass({ authors : [], stubbed : true }, - reportError : ()=>{} + updateListFilter : ()=>{}, + reportError : ()=>{} }; }, @@ -44,6 +45,11 @@ const BrewItem = createClass({ }); }, + updateFilter : function(type, term){ + console.log(`BrewItem: TYPE: ${type}; TERM: ${term}`); + this.props.updateListFilter(type, term); + }, + renderDeleteBrewLink : function(){ if(!this.props.brew.editId) return; @@ -129,7 +135,7 @@ const BrewItem = createClass({ {brew.tags.map((tag, idx)=>{ const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/); - return {matches[2]}; + return {this.updateFilter('tag', matches[2]);}}>{matches[2]}; })} : <> From 0762b82c402aed07a71904189841a1816553d441 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 09:46:02 +1300 Subject: [PATCH 009/140] Initial functionality of basic tag filtering --- .../pages/basePages/listPage/brewItem/brewItem.jsx | 2 +- client/homebrew/pages/basePages/listPage/listPage.jsx | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index 41a7f07f8..c7f11d621 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -46,7 +46,7 @@ const BrewItem = createClass({ }, updateFilter : function(type, term){ - console.log(`BrewItem: TYPE: ${type}; TERM: ${term}`); + // console.log(`BrewItem: TYPE: ${type}; TERM: ${term}`); this.props.updateListFilter(type, term); }, diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 2696d4e7a..bebd0b002 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -82,7 +82,7 @@ const ListPage = createClass({ if(!brews || !brews.length) return
No Brews.
; return _.map(brews, (brew, idx)=>{ - return ; + return ; }); }, @@ -129,6 +129,7 @@ const ListPage = createClass({ }, handleFilterTextChange : function(e){ + // console.log(e); this.setState({ filterString : e.target.value, }); @@ -136,6 +137,12 @@ const ListPage = createClass({ return; }, + updateListFilter : function(type, term){ + // console.log(`ListPage: TYPE: ${type}; TERM: ${term}`); + const e = { target: { value: term } }; + this.handleFilterTextChange(e); + }, + updateUrl : function(filterTerm, sortType, sortDir){ const url = new URL(window.location.href); const urlParams = new URLSearchParams(url.search); From 6dcc6d36b725fbb3af8488537ace8679eca2f7b8 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 12:23:39 +1300 Subject: [PATCH 010/140] Add separate tag filter --- .../pages/basePages/listPage/listPage.jsx | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index bebd0b002..51af85cdb 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -36,6 +36,7 @@ const ListPage = createClass({ return { filterString : this.props.query?.filter || '', + filterTags : [], sortType : this.props.query?.sort || null, sortDir : this.props.query?.dir || null, query : this.props.query, @@ -138,18 +139,31 @@ const ListPage = createClass({ }, updateListFilter : function(type, term){ - // console.log(`ListPage: TYPE: ${type}; TERM: ${term}`); - const e = { target: { value: term } }; - this.handleFilterTextChange(e); + this.updateUrl(this.state.filterString, this.state.sortType, this.state.sortDir, term); }, - updateUrl : function(filterTerm, sortType, sortDir){ + updateUrl : function(filterTerm, sortType, sortDir, filterTag=''){ const url = new URL(window.location.href); const urlParams = new URLSearchParams(url.search); urlParams.set('sort', sortType); urlParams.set('dir', sortDir); + let filterTags = urlParams.getAll('tag'); + if(filterTag != '') { + if(!filterTags.includes(filterTag)){ + filterTags.push(filterTag); + } else { + filterTags = filterTags.filter((tag)=>{ return tag != filterTag; }); + } + } + urlParams.delete('tag'); + filterTags.forEach((tag)=>{ urlParams.append('tag', tag); }); + + this.setState({ + filterTags + }); + if(!filterTerm) urlParams.delete('filter'); else @@ -201,6 +215,15 @@ const ListPage = createClass({ return brewStrings.includes(testString); }); + + if(this.state.filterTags.length > 0) { + brews = _.filter(brews, (brew)=>{ + return this.state.filterTags.some((tag)=>{ + return brew.tags?.includes(tag); + }); + }); + } + return _.orderBy(brews, (brew)=>{ return this.sortBrewOrder(brew); }, this.state.sortDir); }, From 041c7ed48f6126ca89f8780a2332952a35129df7 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 12:48:20 +1300 Subject: [PATCH 011/140] Shift to AND operation for multiple tags --- client/homebrew/pages/basePages/listPage/listPage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 51af85cdb..e37fee8e5 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -218,7 +218,7 @@ const ListPage = createClass({ if(this.state.filterTags.length > 0) { brews = _.filter(brews, (brew)=>{ - return this.state.filterTags.some((tag)=>{ + return this.state.filterTags.every((tag)=>{ return brew.tags?.includes(tag); }); }); From 632882d370241fc066fd42a4c752b2cd8974ad4d Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 16:02:36 +1300 Subject: [PATCH 012/140] Use the whole tag in the tag filter --- client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index c7f11d621..eb8909737 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -135,7 +135,7 @@ const BrewItem = createClass({ {brew.tags.map((tag, idx)=>{ const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/); - return {this.updateFilter('tag', matches[2]);}}>{matches[2]}; + return {this.updateFilter('tag', tag);}}>{matches[2]}; })} : <> From 6c4dad675f608a873bb69f4257b66cf32beac7ad Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 16:34:12 +1300 Subject: [PATCH 013/140] Switch to case-insensitive tag comparison --- .../pages/basePages/listPage/listPage.jsx | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index e37fee8e5..499bbfb5b 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -207,22 +207,28 @@ const ListPage = createClass({ const testString = _.deburr(this.state.filterString).toLowerCase(); brews = _.filter(brews, (brew)=>{ + // Filter by user entered text const brewStrings = _.deburr([ brew.title, brew.description, brew.tags].join('\n') .toLowerCase()); - return brewStrings.includes(testString); - }); + const filterTextTest = brewStrings.includes(testString); - if(this.state.filterTags.length > 0) { - brews = _.filter(brews, (brew)=>{ - return this.state.filterTags.every((tag)=>{ - return brew.tags?.includes(tag); + // Filter by user selected tags + let filterTagTest = true; + if(this.state.filterTags.length > 0){ + filterTagTest = this.state.filterTags.every((tag)=>{ + if(typeof brew.tags == 'string') return false; + return brew.tags.findIndex((brewTag)=>{ + return brewTag.toLowerCase() == tag.toLowerCase(); + }) >= 0; }); - }); - } + } + + return filterTextTest && filterTagTest; + }); return _.orderBy(brews, (brew)=>{ return this.sortBrewOrder(brew); }, this.state.sortDir); }, From 875e1023fc9dc596482ac1c15c97f9f95a139fc1 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 17:09:33 +1300 Subject: [PATCH 014/140] Add styling for different tag types --- .../basePages/listPage/brewItem/brewItem.less | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less index e7a9ad548..c96732799 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less @@ -60,6 +60,26 @@ display: inline-block; font-weight: bold; cursor : pointer; + &.type { + background-color: #0080003b; + color: #008000; + border-color: #008000; + } + &.group { + background-color: #5050503b; + color: #000000; + border-color: #000000; + } + &.meta { + background-color: #0000803b; + color: #000080; + border-color: #000080; + } + &.system { + background-color: #8000003b; + color: #800000; + border-color: #800000; + } } &:hover{ .links{ From 995d1c63d8742734fdc97c58c1ecd542e710dbb6 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 17:17:03 +1300 Subject: [PATCH 015/140] Make tag removal from URL case insensitive --- client/homebrew/pages/basePages/listPage/listPage.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 499bbfb5b..4cc079e52 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -151,10 +151,10 @@ const ListPage = createClass({ let filterTags = urlParams.getAll('tag'); if(filterTag != '') { - if(!filterTags.includes(filterTag)){ + if(filterTags.findIndex((tag)=>{return tag.toLowerCase()==filterTag.toLowerCase();}) == -1){ filterTags.push(filterTag); } else { - filterTags = filterTags.filter((tag)=>{ return tag != filterTag; }); + filterTags = filterTags.filter((tag)=>{ return tag.toLowerCase() != filterTag.toLowerCase(); }); } } urlParams.delete('tag'); From 9e12ab71f84bde4e05b59bf8c022ca7303d134b3 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 17:46:55 +1300 Subject: [PATCH 016/140] Switch to better brew.tags array check --- client/homebrew/pages/basePages/listPage/listPage.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 4cc079e52..f5c7e6e5d 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -219,8 +219,8 @@ const ListPage = createClass({ // Filter by user selected tags let filterTagTest = true; if(this.state.filterTags.length > 0){ - filterTagTest = this.state.filterTags.every((tag)=>{ - if(typeof brew.tags == 'string') return false; + filterTagTest = this.state.filterTags?.every((tag)=>{ + if(!Array.isArray(brew.tags)) return false; return brew.tags.findIndex((brewTag)=>{ return brewTag.toLowerCase() == tag.toLowerCase(); }) >= 0; From ab8716d071f4657a645a66ce1b94cedba551665a Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 18:40:20 +1300 Subject: [PATCH 017/140] Add icons before special tags --- .../basePages/listPage/brewItem/brewItem.less | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less index c96732799..c634fa2d1 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less @@ -64,21 +64,45 @@ background-color: #0080003b; color: #008000; border-color: #008000; + &:before{ + content: '\f0ad'; + font-family: 'Font Awesome 5 Free'; + font-size: 12px; + margin-right: 3px; + } } &.group { background-color: #5050503b; color: #000000; border-color: #000000; + &:before{ + content: '\f500'; + font-family: 'Font Awesome 5 Free'; + font-size: 12px; + margin-right: 3px; + } } &.meta { background-color: #0000803b; color: #000080; border-color: #000080; + &:before{ + content: '\f05a'; + font-family: 'Font Awesome 5 Free'; + font-size: 12px; + margin-right: 3px; + } } &.system { background-color: #8000003b; color: #800000; border-color: #800000; + &:before{ + content: '\f518'; + font-family: 'Font Awesome 5 Free'; + font-size: 12px; + margin-right: 3px; + } } } &:hover{ From cfecc001aa01dfce4c5d6c5b59e9dd069af4b111 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 19:14:20 +1300 Subject: [PATCH 018/140] Add brew tag sorting --- client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index eb8909737..f81d3816b 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -115,6 +115,9 @@ const BrewItem = createClass({ const brew = this.props.brew; if(Array.isArray(brew.tags)) { // temporary fix until dud tags are cleaned brew.tags = brew.tags?.filter((tag)=>tag); //remove tags that are empty strings + brew.tags.sort((a, b)=>{ + return a.indexOf(':') - b.indexOf(':') != 0 ? a.indexOf(':') - b.indexOf(':') : a.localeCompare(b); + }); } const dateFormatString = 'YYYY-MM-DD HH:mm:ss'; From 7e98f7941650fb728a5e1ff1f0f7a7844a1cb89f Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 4 Dec 2023 07:53:49 +1300 Subject: [PATCH 019/140] Make alphabetical tag sorting case insensitive --- client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index f81d3816b..bdbf269f9 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -116,7 +116,7 @@ const BrewItem = createClass({ if(Array.isArray(brew.tags)) { // temporary fix until dud tags are cleaned brew.tags = brew.tags?.filter((tag)=>tag); //remove tags that are empty strings brew.tags.sort((a, b)=>{ - return a.indexOf(':') - b.indexOf(':') != 0 ? a.indexOf(':') - b.indexOf(':') : a.localeCompare(b); + return a.indexOf(':') - b.indexOf(':') != 0 ? a.indexOf(':') - b.indexOf(':') : a.toLowerCase().localeCompare(b.toLowerCase()); }); } const dateFormatString = 'YYYY-MM-DD HH:mm:ss'; From 2c997458b29fe620f92fc3c4c4ee4fad54dbb74e Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 4 Dec 2023 07:54:19 +1300 Subject: [PATCH 020/140] Simplify filter tag test --- client/homebrew/pages/basePages/listPage/listPage.jsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index f5c7e6e5d..475172d5a 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -219,8 +219,7 @@ const ListPage = createClass({ // Filter by user selected tags let filterTagTest = true; if(this.state.filterTags.length > 0){ - filterTagTest = this.state.filterTags?.every((tag)=>{ - if(!Array.isArray(brew.tags)) return false; + filterTagTest = Array.isArray(brew.tags) && this.state.filterTags?.every((tag)=>{ return brew.tags.findIndex((brewTag)=>{ return brewTag.toLowerCase() == tag.toLowerCase(); }) >= 0; From efecfac68afed103452beb04e791f5673f62842a Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 4 Dec 2023 08:10:32 +1300 Subject: [PATCH 021/140] Simplify tag styling --- .../basePages/listPage/brewItem/brewItem.less | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less index c634fa2d1..a8bc4473c 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less @@ -60,15 +60,17 @@ display: inline-block; font-weight: bold; cursor : pointer; + &:before { + font-family: 'Font Awesome 5 Free'; + font-size: 12px; + margin-right: 3px; + } &.type { background-color: #0080003b; color: #008000; border-color: #008000; &:before{ content: '\f0ad'; - font-family: 'Font Awesome 5 Free'; - font-size: 12px; - margin-right: 3px; } } &.group { @@ -77,9 +79,6 @@ border-color: #000000; &:before{ content: '\f500'; - font-family: 'Font Awesome 5 Free'; - font-size: 12px; - margin-right: 3px; } } &.meta { @@ -88,9 +87,6 @@ border-color: #000080; &:before{ content: '\f05a'; - font-family: 'Font Awesome 5 Free'; - font-size: 12px; - margin-right: 3px; } } &.system { @@ -99,9 +95,6 @@ border-color: #800000; &:before{ content: '\f518'; - font-family: 'Font Awesome 5 Free'; - font-size: 12px; - margin-right: 3px; } } } From d262f586fcfd4b69f28a468425ae3a3c53bd45f1 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 4 Dec 2023 21:45:59 +1300 Subject: [PATCH 022/140] Add basic selected tags display to List Page --- .../pages/basePages/listPage/listPage.jsx | 20 +++++- .../pages/basePages/listPage/listPage.less | 69 ++++++++++++++++++- 2 files changed, 85 insertions(+), 4 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 475172d5a..441fb828f 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -158,7 +158,12 @@ const ListPage = createClass({ } } urlParams.delete('tag'); + // Add tags to URL in the order they were clicked filterTags.forEach((tag)=>{ urlParams.append('tag', tag); }); + // Sort tags before updating state + filterTags.sort((a, b)=>{ + return a.indexOf(':') - b.indexOf(':') != 0 ? a.indexOf(':') - b.indexOf(':') : a.toLowerCase().localeCompare(b.toLowerCase()); + }); this.setState({ filterTags @@ -187,6 +192,17 @@ const ListPage = createClass({ ; }, + renderTagsOptions : function(){ + if(this.state.filterTags?.length == 0) return; + console.log('renderTags'); + return
+ {_.map(this.state.filterTags, (tag, idx)=>{ + const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/); + return {this.updateListFilter('tag', tag);}}>{matches[2]}; + })} +
; + }, + renderSortOptions : function(){ return
Sort by :
@@ -197,9 +213,6 @@ const ListPage = createClass({ {/* {this.renderSortOption('Latest', 'latest')} */} {this.renderFilterOption()} - - -
; }, @@ -258,6 +271,7 @@ const ListPage = createClass({ {this.props.navItems} {this.renderSortOptions()} + {this.renderTagsOptions()}
diff --git a/client/homebrew/pages/basePages/listPage/listPage.less b/client/homebrew/pages/basePages/listPage/listPage.less index bcffbf3e7..e2e079f24 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.less +++ b/client/homebrew/pages/basePages/listPage/listPage.less @@ -52,7 +52,7 @@ } } } - .sort-container{ + .sort-container { font-family : 'Open Sans', sans-serif; position : sticky; top : 0; @@ -124,4 +124,71 @@ } + .tags-container { + font-family : 'Open Sans', sans-serif; + position : sticky; + top : 0; + left : 0; + width : 100%; + height : 30px; + background-color : #555; + border-top : 1px solid #666; + border-bottom : 1px solid #666; + color : white; + text-align : center; + z-index : 1; + display : flex; + justify-content : center; + align-items : center; + column-gap : 15px; + row-gap : 5px; + flex-wrap : wrap; + span { + text-transform : uppercase; + font-family : 'Open Sans', sans-serif; + font-size : 11px; + font-weight : bold; + border : 1px solid; + border-radius : 3px; + padding : 3px; + cursor : pointer; + &:before { + font-family: 'Font Awesome 5 Free'; + font-size: 12px; + margin-right: 3px; + } + &.type { + background-color: #0080003b; + color: #008000; + border-color: #008000; + &:before{ + content: '\f0ad'; + } + } + &.group { + background-color: #5050503b; + color: #000000; + border-color: #000000; + &:before{ + content: '\f500'; + } + } + &.meta { + background-color: #0000803b; + color: #000080; + border-color: #000080; + &:before{ + content: '\f05a'; + } + } + &.system { + background-color: #8000003b; + color: #800000; + border-color: #800000; + &:before{ + content: '\f518'; + } + } + } + } } From 34be05ac51cb746a8e2791c19d67518563214b4d Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 5 Dec 2023 10:00:25 +1300 Subject: [PATCH 023/140] Add X icon to tag window --- .../pages/basePages/listPage/listPage.less | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.less b/client/homebrew/pages/basePages/listPage/listPage.less index e2e079f24..3b31e7d63 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.less +++ b/client/homebrew/pages/basePages/listPage/listPage.less @@ -157,10 +157,17 @@ font-size: 12px; margin-right: 3px; } + &:after { + content: '\f00d'; + font-family: 'Font Awesome 5 Free'; + font-size: 12px; + margin-left: 3px; + color: #dfdfdf; + } &.type { background-color: #0080003b; - color: #008000; - border-color: #008000; + color: #00d000; + border-color: #00a000; &:before{ content: '\f0ad'; } @@ -175,16 +182,16 @@ } &.meta { background-color: #0000803b; - color: #000080; - border-color: #000080; + color: #0000d0; + border-color: #0000a0; &:before{ content: '\f05a'; } } &.system { background-color: #8000003b; - color: #800000; - border-color: #800000; + color: #d00000; + border-color: #a00000; &:before{ content: '\f518'; } From 2f13b895105dd9d15baff6aca2de6bc22c915de9 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 5 Dec 2023 12:41:27 +1300 Subject: [PATCH 024/140] Styling tweak --- .../pages/basePages/listPage/listPage.less | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.less b/client/homebrew/pages/basePages/listPage/listPage.less index 3b31e7d63..2343141c4 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.less +++ b/client/homebrew/pages/basePages/listPage/listPage.less @@ -152,6 +152,7 @@ border-radius : 3px; padding : 3px; cursor : pointer; + color: #dfdfdf; &:before { font-family: 'Font Awesome 5 Free'; font-size: 12px; @@ -162,35 +163,30 @@ font-family: 'Font Awesome 5 Free'; font-size: 12px; margin-left: 3px; - color: #dfdfdf; } &.type { - background-color: #0080003b; - color: #00d000; + background-color: #008000; border-color: #00a000; &:before{ content: '\f0ad'; } } &.group { - background-color: #5050503b; - color: #000000; + background-color: #505050; border-color: #000000; &:before{ content: '\f500'; } } &.meta { - background-color: #0000803b; - color: #0000d0; + background-color: #000080; border-color: #0000a0; &:before{ content: '\f05a'; } } &.system { - background-color: #8000003b; - color: #d00000; + background-color: #800000; border-color: #a00000; &:before{ content: '\f518'; From 75809a5f425137e3f880e0522019b3b16d2a6153 Mon Sep 17 00:00:00 2001 From: Sean Robertson Date: Wed, 6 Dec 2023 08:28:51 +1300 Subject: [PATCH 025/140] Remove forced uppercase --- client/homebrew/pages/basePages/listPage/listPage.less | 1 - 1 file changed, 1 deletion(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.less b/client/homebrew/pages/basePages/listPage/listPage.less index 2343141c4..eb0f11d64 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.less +++ b/client/homebrew/pages/basePages/listPage/listPage.less @@ -144,7 +144,6 @@ row-gap : 5px; flex-wrap : wrap; span { - text-transform : uppercase; font-family : 'Open Sans', sans-serif; font-size : 11px; font-weight : bold; From d5980cba89f7e3403624086f8637459591136c4f Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 19 Dec 2023 17:44:43 +1300 Subject: [PATCH 026/140] Initial DiceFont commit --- themes/fonts/5e/dicefont.less | 118 +++++++++++++++++++++++++++++++++ themes/fonts/5e/dicefont.woff | Bin 0 -> 5436 bytes themes/fonts/5e/dicefont.woff2 | Bin 0 -> 3948 bytes themes/fonts/5e/fonts.less | 2 + 4 files changed, 120 insertions(+) create mode 100644 themes/fonts/5e/dicefont.less create mode 100644 themes/fonts/5e/dicefont.woff create mode 100644 themes/fonts/5e/dicefont.woff2 diff --git a/themes/fonts/5e/dicefont.less b/themes/fonts/5e/dicefont.less new file mode 100644 index 000000000..031fcc600 --- /dev/null +++ b/themes/fonts/5e/dicefont.less @@ -0,0 +1,118 @@ +/* + Icon Font: dicefont +*/ +@font-face { + font-family: 'DiceFont'; + src: url('../../../fonts/5e/dicefont.woff2') format('woff2'), + url('../../../fonts/5e/dicefont.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +.df { + display: inline-block; + font-family: 'DiceFont'; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + text-decoration: inherit; + text-rendering: optimizeLegibility; + text-transform: none; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smooth: antialiased; + &.df-F:before { content: '\f190'; } + &.df-F-minus:before { content: '\f191'; } + &.df-F-plus:before { content: '\f192'; } + &.df-F-zero:before { content: '\f193'; } + &.df-d10:before { content: '\f194'; } + &.df-d10-0:before { content: '\f100'; } + &.df-d10-1:before { content: '\f101'; } + &.df-d10-10:before { content: '\f102'; } + &.df-d10-2:before { content: '\f103'; } + &.df-d10-3:before { content: '\f104'; } + &.df-d10-4:before { content: '\f105'; } + &.df-d10-5:before { content: '\f106'; } + &.df-d10-6:before { content: '\f107'; } + &.df-d10-7:before { content: '\f108'; } + &.df-d10-8:before { content: '\f109'; } + &.df-d10-9:before { content: '\f10a'; } + &.df-d12:before { content: '\f195'; } + &.df-d12-1:before { content: '\f10b'; } + &.df-d12-10:before { content: '\f10c'; } + &.df-d12-11:before { content: '\f10d'; } + &.df-d12-12:before { content: '\f10e'; } + &.df-d12-2:before { content: '\f10f'; } + &.df-d12-3:before { content: '\f110'; } + &.df-d12-4:before { content: '\f111'; } + &.df-d12-5:before { content: '\f112'; } + &.df-d12-6:before { content: '\f113'; } + &.df-d12-7:before { content: '\f114'; } + &.df-d12-8:before { content: '\f115'; } + &.df-d12-9:before { content: '\f116'; } + &.df-d2:before { content: '\f196'; } + &.df-d2-1:before { content: '\f117'; } + &.df-d2-2:before { content: '\f118'; } + &.df-d20:before { content: '\f197'; } + &.df-d20-1:before { content: '\f119'; } + &.df-d20-10:before { content: '\f11a'; } + &.df-d20-11:before { content: '\f11b'; } + &.df-d20-12:before { content: '\f11c'; } + &.df-d20-13:before { content: '\f11d'; } + &.df-d20-14:before { content: '\f11e'; } + &.df-d20-15:before { content: '\f11f'; } + &.df-d20-16:before { content: '\f120'; } + &.df-d20-17:before { content: '\f121'; } + &.df-d20-18:before { content: '\f122'; } + &.df-d20-19:before { content: '\f123'; } + &.df-d20-2:before { content: '\f124'; } + &.df-d20-20:before { content: '\f125'; } + &.df-d20-3:before { content: '\f126'; } + &.df-d20-4:before { content: '\f127'; } + &.df-d20-5:before { content: '\f128'; } + &.df-d20-6:before { content: '\f129'; } + &.df-d20-7:before { content: '\f12a'; } + &.df-d20-8:before { content: '\f12b'; } + &.df-d20-9:before { content: '\f12c'; } + &.df-d4:before { content: '\f198'; } + &.df-d4-1:before { content: '\f12d'; } + &.df-d4-2:before { content: '\f12e'; } + &.df-d4-3:before { content: '\f12f'; } + &.df-d4-4:before { content: '\f130'; } + &.df-d6:before { content: '\f199'; } + &.df-d6-1:before { content: '\f131'; } + &.df-d6-2:before { content: '\f132'; } + &.df-d6-3:before { content: '\f133'; } + &.df-d6-4:before { content: '\f134'; } + &.df-d6-5:before { content: '\f135'; } + &.df-d6-6:before { content: '\f136'; } + &.df-d8:before { content: '\f19a'; } + &.df-d8-1:before { content: '\f137'; } + &.df-d8-2:before { content: '\f138'; } + &.df-d8-3:before { content: '\f139'; } + &.df-d8-4:before { content: '\f13a'; } + &.df-d8-5:before { content: '\f13b'; } + &.df-d8-6:before { content: '\f13c'; } + &.df-d8-7:before { content: '\f13d'; } + &.df-d8-8:before { content: '\f13e'; } + &.df-dot-d6:before { content: '\f19b'; } + &.df-dot-d6-1:before { content: '\f13f'; } + &.df-dot-d6-2:before { content: '\f140'; } + &.df-dot-d6-3:before { content: '\f141'; } + &.df-dot-d6-4:before { content: '\f142'; } + &.df-dot-d6-5:before { content: '\f143'; } + &.df-dot-d6-6:before { content: '\f18f'; } + &.df-small-dot-d6-1:before { content: '\f183'; } + &.df-small-dot-d6-2:before { content: '\f184'; } + &.df-small-dot-d6-3:before { content: '\f185'; } + &.df-small-dot-d6-4:before { content: '\f186'; } + &.df-small-dot-d6-5:before { content: '\f187'; } + &.df-small-dot-d6-6:before { content: '\f188'; } + &.df-solid-small-dot-d6-1:before { content: '\f189'; } + &.df-solid-small-dot-d6-2:before { content: '\f18a'; } + &.df-solid-small-dot-d6-3:before { content: '\f18b'; } + &.df-solid-small-dot-d6-4:before { content: '\f18c'; } + &.df-solid-small-dot-d6-5:before { content: '\f18d'; } + &.df-solid-small-dot-d6-6:before { content: '\f18e'; } +} \ No newline at end of file diff --git a/themes/fonts/5e/dicefont.woff b/themes/fonts/5e/dicefont.woff new file mode 100644 index 0000000000000000000000000000000000000000..d6f54f38e4ed8cac6ca23368944b9556a4e4f0a4 GIT binary patch literal 5436 zcmZu#cQjm4_nk3X^lp@47=j>-gb+jxqD%A=ql@066J3bj>x8I57$s!%7Bw+yw5ZXd z_g=oq_xt|*oxApXYoD|4J@>7*)_v=3FAW6+01$u;S_uH@zx%86f7kyn6cn`8usSHV z#)t)T%5;dj#w!6K005YW<;qwfG;vJ6SvZ=x001}~Sgwk#y*&7M9&h340mbI9c>wNz zK?#(%F>}XqS}>Lq{=?lJ0A%CfV+{a+L;(PD4FKT9?~&OHBU>voOYAy=Sd9P{B22EY z1Z}ZNYz~3t5G*)AYrsZZM-OjoZu_4GiyuUz_{R>;7FZpQ2bOpL18|XM+tJJ$+ZPyw z<*Zmh0X2YfCo@MY0D$T}mSg7wn_0hdSh+a6W9Lz00W8GsDW{NQqsM#30%3_j0G12w z&|C-CBBl)AGQrY|mG^BVa@KC!!Vh@=$UxIWfqbL@(#3n5fdAPnWS=8HA};C-mIB_K*na3dHOz?chs{olITb(d&xaB6VyNF+Qq zIJg6%{LU)D($)-tFh^Kf2LTm;__%~h?rLVX2+ecR?1T0@5Q%RL0fWD^T|x@Cpdb#w z2t{J@-(FKcp?v_H@}P5E5QrKCV%6=71=#`faS}BlM01IGbd25np`Sy@9olfFMMxDw%}w1- zqd;>?8%KLh7eY@#9|)!c=YfY9zziM?#SDFngpB%(fsD;eI835U(M-F{+|0hr;}9~4 z8zc$R3^`?yW=Ub`VZ~+DX03$MK$D>D&~r9hnp%f&m51Q>r@0bJ#KDaOP*kthFd%li~2SgmrqMoXWdc3%QX*kgX)YPW;#7?35|H>C88@g;aTzG3iI&Z)Hk-NO*WjF z8fBm2Y9!5n8c!=ss8 zFS`qSuKOVtE?xow(W0to%U-DKgJeOi?pI$$V^*G*lk~ZQ-E%mUWJTZsq*S=isi}N1 z#_L+Tixe16s+zvaN%y|KLTcsv?Ru?5$PKfe&J@m8g@hyin;7>-HMV;{Cgd{W6VN17 zAR(G$9yPs37qTL${A1qIVK2scKko~WtR-g^+SK?iOvv2~D2Vk_(nZlNg$C>(Un>|I zsK5;qE&X{zOn)k6SxUdq_LJ|87uI2B&?6co@(r>+e=s#RcHKgiwC9NFxEXdDD%8{O z_RBf{<9cLqM#4`W?f~Z{N~*A-5#!{MeMvzGjLAsj;3JY;-Vx{KDHO^~Nia`j|C|N2 z;jj`bzQbKop}OGei)#O^Cbn}DV=D|BiBkSRNW|W)WS$+J(yk<^tf@4D__0Qet}{$} zNtoELwM`jGUJDk_w>>5$J1KgSB)D=|v;D*8aM^Dkvo9G`Y8t}V7b=W^n33xjTk99= zypS72>B@kZbn)o>DYFYw6bA-re6%{bZ4%rRUdvTz)vFfd8+cVVbs4vy-mQ&xMr7V# z^w%H+m>7tJ=-p%UwjW9KzF9IqaMrIo_ysqbQYRlMx(oN;5}fQ;j%LTtiMHBYS!^N? zo~WmKLT-J0%$L_vDR$&G4CLcnIK#fYYdswJ{ch5#k;e9q3Btx$+%g_f7wrhtrKIZf-lklNc`NK_aatXPMBeJp%V?7_5%!MVEJ>!%Po{`f`a!E#Mp8vu(J< z$Ds!MwhmGo6{pc@uCjwwU%!tw@Mo!NJN4t0L&vw;z=B|2>JD>{*i6p(FSyt~c{~bT;qRVNxzZS*A z8l0_WNrGPFXT1oQyZvIdt_gCHAJElo#W;U=v=E3DeS2+s=X)!)zO;A7w&V`nvB}MnM^HtqP??p~jXqN4JmaSmnO+7thv6{IRTT*PmV~Ioce57yV$FWND8aT*H;SYxc#lGmQXK5JBxfh z%fDK_)btLZPK?C;;^G~wEoxrdIr2TM*bZKbmdfk=+by+=6W?tatu(W5XoJVm$;WPX zCRP?hnfy2Ffr^z9x{Hm>tk2z;WtQ$U4lkjXhJ~pZ&Etz(RjyQwFe!Za z#c#=}WP^tlWYJlL9(q5lgibQ#a>9IgB5EaR{9&I>Vg;%Dw|vXeL-c%Mnr=MutVJ_! zu2L-m3>{vb7a0#uP>a&DhzI45wTqG*O9y5n{<3r-Q=n{oyCn0xzlJ7RqPrdS?AJ|_ zrl-q%aB-xzQtVf7f=mz5*DD-_Bkg(wxVaI&4G~cm@hV`ZbL07v?VIEhfZ6K5I1THO<=7DxN*BuHv1T z+g{*fyx&?5MrZr5E%$vrNjC7^z2Me5Ht=;cLC ztD2y)sf$?=apFu_I6Yp3*i0DoBLz6FVv4=#`0{HXDn-^FB;Y4&OxUN!=V%T`yhj-8BX}{~eC=LcBX^*t<3( zX!bxHv9)DS5j%-VAj2yXfiMc3CWUha6k zgz-!|Ld8P{qpB{dccOCX3fH%U727u&-Sb$z%5Tub@zr!B3*?{iuFd8krDr$Z3j9TEv1y_G0>B_opym!u6`-|(HR#BgGZ`dT(CwfB!G?H(t5pRopj1pRA)WK(@Hg7!*-i>@W((oywQYiR{O zqc#8WsL%{PlJv*-u^jTAF#24%Sz}V3Iio|$YcLDPN0KbLL7Ih?$FErUP99|`BS@20 zG`XDUoT`vni`3D8h7W&nO*P9)#ydZEy5tLz*yQK+fd`{CB~y85gfR5P;p}txW22D_ z<0{49x32wWHS=~_9a+A{;gM4kgtKS*s6zPL@_5new*2g|Lkq8C%v_6tYf(b0OWjIHN`95I3^r4@H%n0t8w`#7N?tfj?ZJgxl0dEY&B%1eG%B<_SwYbZqbmSw| ztNM(2O4+N2FHH30>SLLA?Db03U*WkyGH*7o2HfPOf-44p(Rg&W)^|8Or-lbBv)%pP z1??7>Y@|=TTKN#-JIq3dK?={Dy4Y^{A_UH6Hmat2IRkD!et?PhKEBEZ6b-W|Dvu2# zQLii&CND&8#ZT_esq{2s@Kgcm!L8{lImMN>>(d{XMP;ma3ts=QOcrm zu)!Ds!Ot~b>G37)XoS-^N{mOEm`$^tei5mPyy0(G`SzN?iNNb^cf((qKoE!T&^#XH z8>sp#aiJQE7*bSu{HjN~WB2S>WNeBGOgg3UqglK<9{Ul;p3lg-# z^5hnO&3aEgo1an7(?D^vY^};hz}V&Cxvg4xW$N5O#_O*u14h3pKAZaQ%hFGsb7C^) zRnIUse~$_(^3ULbm<;oJ^X0^7F~HX}8)bvqgJz!3lBm<^Etr(gU#qa^l?T_Q?L1sP zOYx?rQ&Zly$3+|hGx3RJF&~4DuzwW8C|3Lc0DCaC5t8~#tUQFwR{ zr~t!|-7s^hbH9G%X8tCRu&1wCABRq#IEb>bVAk^QFXsu^+O zs{kMm(&ze-)jf`H6q~*iq;e40h*`{-r%Z&dKF0SaKNkr~^BXmleKNez)R|_jls>fei)etc8WgU9NrJ+lXY~GyM z6w{BG01>n=2M2FXV>}aP(skRt_BNXL+CZ$b@KLPK5fCqF*CkC6zOdO_ot<$1%QX9! zv=JinePGNM&2D%N9S*GH>1IG?-J7vBKD6w^1TMed-}XBN7g__FGx7G{3xJI^J~;^X z*1Cldh_2EIi1OGR`}3}QcUB#exF?UjsR=KBJvE&CfGej-TfO>wxtju}#Et9&>ng)Z z8_y;L!ic*K&+8=!ue^7a&()&k1YZtfOq?8!i_Ai4ZH>bq!Dyru)v557$l)hle*u)a z5BB>EjhiN^CjBK|ZSMzBt0>f`eeLh#)dg9746n17jk2{rZ!$BIHKaoBu{3V4n283TxG>m4Pb)7Pk7nOj8f)$0}f0a)( zS{^Av(NQm-S8L%5@z#GfR%ILSd}$k&I!tt9xai#ZHptP*LoUEljjAmo>5)gob-PCbI0GNv#H%HrMT&_sk(Wc stvo9=v(UbR^{9YYKN9DkKZihA0z!;-E^eTg|9rj}e1LQto+JS9AEW9Zm;e9( literal 0 HcmV?d00001 diff --git a/themes/fonts/5e/dicefont.woff2 b/themes/fonts/5e/dicefont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..342bf7d95d5734c1e1550c568797e7fbcad61707 GIT binary patch literal 3948 zcmV-y50mhBPew8T0RR9101s>c4FCWD08`)q01pxX0RR9100000000000000000000 z0000#Mn+Uk90p(jf>H& z5t7XE@Ng{OzqVV49}VYO9t~b-ZBaa+qTwj{`~H^RkuX1mt{sHp)rbmRTX#xTn`vFA zXw&w9yInZ+(58k>Lc|C)p%7wD>%^eq@hbfgA!?M0sC^LRP;p+dJsl(0t4_QDQEkdn zqoOiC!aQ*G535om;9lM9U9w4bN&(=pjAQR4!&F{YY3q|#a9-UpK->7CfXn786|Trl zxHuP259Oh5Xs+_*Y$kgTKu7s+RfT;(;p$0|O=c6mIat64hGdhO?Ct?(OXLU?AgWf# z7xvZ5N;&0ySyv$|E8ka}m6eqzZ&a_w?ED*KTipP~oHlK*8Ijv5_wZFS5xcyWzG~q7 z5AXH(@KXG1Swqa45))4CKj`4Ox4;&M^|eIP@TC?ffpDsQxAB;d8u2nKLhD;PJMnfesEb?88j6!yD z%mM7}bpbtrY#u6ew+J*D189O_^-?e|c04Z}oGdlUYf}etklEBgd{+T3;Uq9O?Rs6a z$xP;jt)8~%Ofkbf0Rp&z#IAzoa*_h(=@3#%Dvj^3q7?MX3)^|wiC)x4tAQ44y>``D zv^;PJB&0=Aq=8c&2Un-%u$)#t%Na?Nqy!Z7S`c#r3ObsB7GaTdlnzi~2S5gF3IbOU z^9*xH5^ciB%p(y>19P>IC>B#5siWFFTZi?;br9K5{3HZla@rbIo7rbpE3Wofk)aDT zy@OJ50l?gYst}CoIzt2#gd0@}5z&t6M*0Y5c(~vQ6~QgdH&Bfxw2ky59052TrsJCv z+A(YJhxASA`H^UbgF8h#w&KEYFfmH>%~)eo5>mxzfngb&qcO>FxVlVyDt3Zs+AS|) zBawqv+cW7;4(TBp$C4R72dT9frDunZCgFysJin+AcD8B8h(wY#%kiKeqsloIT0Nma zEkS~SUEEHOF+x$+A#n8Sk_0i{WFJc@i0WnbIM7DCc>$h{FIqM75OS91?A&s{2l7XPdfAzjGtl%Rmvs(cRkzpUGvZPZO?Vg3q<~_ z1oiq;eqtp^7p#`o)ElIYRjPjE+xsHdM|8>P=pf%D>VA@qL>>4?*KJ`N zmqOs55U1fE6Ox60Yy&N)MM(HYzjP)}OJ))d&LG~$69F5IwMXxcbCA6b&8y`=%xG2Iu!R))PJ@N-syO!0q ziLEp7Qt0uTr4>NTL2BDs7f$I7@RLnz8h1G!6qo{-D_2r+4B{PDq;7HgT?1k*jhAGgw<;eZ$Gpl5= zL3Tjp-f!AJS2awf+P|EUNoaiIQWyYVlQe(fWE=>tmf1$xkTbZX(9%aJq_(qBI^@oX z`nXdRYWI56{t9(!!S-5-%y)n_%GfbMCc|LRx$7`VB6&>vPj!bVpI5+46UOr?1DEO9 z(_~CmDkUFHFzD6kq(Up2t$o*whOTel>7Tj{6ex3-$e0d9FXu6%6-W6 z!Zc_l;95o*hZ{->Qv}pZxw1;g4b96kWBGc+@@Fy{=hs=9)$Uj$oF8C@!D9(1(`FFy(2Z9uo1gi z#x!pBe}86yaHc|8DdKU1_3XJ^olaH`VL8bBI_QWVn-;Xa%BG*CiJN#QrO`h!vD?wG zwfm~H)dL;&!yB{g-tjdZq1FCDDszE~(abRQpy8A98T=~$f#)L!R_!SB*DYP2wpUn% zx3wL!Jjx-t4SxzTXf;jmMxPNgE9|`n9hD?@Jf?lu%>+>?*Qr@23aF4;jaipT;cc;D zSOVZlpx;>)TSm=p$Z9u9ywkO?^>5WLJH4T`Oca!JXa@_YQ8` zICJJ!P^7xXk58S&^{}`5K^}B$#|IKeIjWpNTr5_vyj44KKuX*byEM1BxP-j}X-|n8 zk+!|3=fQQqYJSmo(A`khI*4Z%3$oE?l#On$K#Jh_mSjysyYQ1V3{fqI|t4`mKZN38_XxK}emMw*iK`g!bpnB?Kk&Sqjj@HS!55Zi=Y zfq+RFVm+tBtBPWIVxDXQn_Qyga5$Pki!y=v?^$s`EYJ(xIIK$=;YPSckjDupi@04w z#;X{+L5wgmDLm3~z5?l1@+BQyt=|Ongd5cAh$Rc^jFe!->F}G81f0^wE35F1&1o+= zDv_{dHPWu5DQW_@i}p&ihNCmeT##@H{?mBgQMV>t(1>eFo4#0;FU&<`s(VM+*Oled zTt?$&4x>T17(yD>Z5JY5F!XSIAgyF;-gbzYYNBuD`sMdk_#Zu#nxvxhTi|C%c4@ubD@}PG1;yxs`eKdu>?-?~VjczQ#K}rWJaTRe%$lin7;+>4R z4~IiMqQgc^qI(iRRKT2Xq~7@mx(VObOh#Cra<>Ke95P4k`G(BQXL~HjOfKn7nzuI} zwyT{RFEBaeHIMK+PY;E~2et2s-b>gson1W^l5&n4N4=yt4JCZAyW*P2L}5IafQ~{c zd2Zi(tgXs6f4JnUCwra@r^D<$ zOZ$V-dyZlB_!`Ne`qLeWWgy&%54(f>tbuoAU_QNqTL>S%>VLf#eTaRhTXs4Lj^#o4 zbeEQrqYse)CN%ZwOC?~4ijxU=3KL z{yE8f{DvKLuIZDnuVc+OotNOag{`@D`Q%nlvCTKuwd>d%RW@>9&olUtFHNfXPMa_g zIKCM&z&q_G0>9ghq|>rs)8Hiz7dO%b_E$qJivhcfu0P{xEWEzo5J>~y-F#ItuYJP~ z$=_ovBa35kC6NMV;J<|RZrmOafY9pbNr2Tpce5;H$Y({!!(NMqEy2grRrk9{A|x0w zL)TEs8q!S1vuLTW#Q-o6l1$iHQLa zFnn}@hO3J}7p}X&z_(1m$sPQT1imi-kZG(8RyLDOk^^KOWLUrZ|HA=DWHnl@3DRT% zf1k%%08Eb|$H>|}*-B0;KoGq1-sJS;D@Mp(#$S&-Q7b4L4E%|aVQ-N&+A7xu1j&2L z`AXfckRbma{y&StyL2J*?kw5HUe3s=oY5315Rf1qes0i?^OXHm9e*;46@cr^+o Date: Tue, 19 Dec 2023 17:48:23 +1300 Subject: [PATCH 027/140] Add DiceFont license file --- themes/fonts/5e/dicefont_license.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 themes/fonts/5e/dicefont_license.md diff --git a/themes/fonts/5e/dicefont_license.md b/themes/fonts/5e/dicefont_license.md new file mode 100644 index 000000000..edfbd926d --- /dev/null +++ b/themes/fonts/5e/dicefont_license.md @@ -0,0 +1,18 @@ +# License + +DiceFont is open source. You can use it for commercial projects, personal +projects or open source projects. + +## Font License + +Applies to all desktop and webfont files: [License: SIL OFL 1.1](http://scripts.sil.org/OFL) + +## Code License + +Applies to all CSS and LESS files: [License: MIT License](http://opensource.org/licenses/mit-license.html) + +## Documentation License + +Applies to all other files [CC BY 3.0](http://creativecommons.org/licenses/by/3.0/) + +Copyright [Franco Ponticelli](https://github.com/fponticelli). From 96d973528c3fb12bbc46f044b78c0927b79da033 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Wed, 20 Dec 2023 22:57:37 -0600 Subject: [PATCH 028/140] Updated and reworked to handle more definition* Updated to allow multiple definition terms and definitions per term :: :::: :: ``` **Example** :: ::V3 uses HTML *definition lists* to create "lists" with hanging indents. ::Three I'm a term::Four **Hello**::I\'m a different ::List : ``` --- shared/naturalcrit/markdown.js | 45 +++++++++++++++--------- tests/markdown/marked-extensions.test.js | 18 ++++++---- themes/V3/5ePHB/style.less | 2 +- 3 files changed, 42 insertions(+), 23 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 1fc14b534..7a584a927 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -237,32 +237,45 @@ const superSubScripts = { const definitionLists = { name : 'definitionLists', level : 'block', - start(src) { return src.match(/^.*?::.*/m)?.index; }, // Hint to Marked.js to stop and check for a match + start(src) { return src.match(/^.*?::.*\n\n/m)?.index; }, // Hint to Marked.js to stop and check for a match tokenizer(src, tokens) { - const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym; + const regex = /^([^\n:]*?)::(.*)(?:\n|$)/ym; let match; - let endIndex = 0; - const definitions = []; + const endIndex = src.match(`\n\n`)?.index + 2; + const allDefinitions = []; + let currentDefinition = []; while (match = regex.exec(src)) { - definitions.push({ - dt : this.lexer.inlineTokens(match[1].trim()), - dd : match[2].split('::').map((s)=>this.lexer.inlineTokens(s.trim())) - }); - endIndex = regex.lastIndex; + if(match[1].trim()?.length) { + if(currentDefinition?.dt?.length) { + allDefinitions.push(currentDefinition); + currentDefinition = []; + } + currentDefinition = { + dt : this.lexer.inlineTokens(match[1].trim()), + dd : [] + }; + } + currentDefinition.dd = currentDefinition.dd.concat(match[2].split('::').filter((item)=>item).map((s)=>this.lexer.inlineTokens(s.trim()))); + if(!currentDefinition.dd?.length) { + currentDefinition.dd = [this.lexer.inlineTokens('')]; + } } - if(definitions.length) { + if(currentDefinition.hasOwnProperty('dt')) { allDefinitions.push(currentDefinition); } + if(allDefinitions.length) { return { - type : 'definitionLists', - raw : src.slice(0, endIndex), - definitions + type : 'definitionLists', + raw : src.slice(0, endIndex), + definitions : allDefinitions }; } }, renderer(token) { - return `
${token.definitions.reduce((html, def)=>{ + let returnVal = `
`; + token.definitions.forEach((def)=>{ const dds = def.dd.map((s)=>`
${this.parser.parseInline(s)}
`).join('\n'); - return `${html}
${this.parser.parseInline(def.dt)}
${dds}`; - }, '')}
`; + returnVal += `
${this.parser.parseInline(def.dt)}
${dds}
`; + }); + return `${returnVal}
`; } }; diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index 52f2da38f..5f8c7718e 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -4,21 +4,27 @@ const Markdown = require('naturalcrit/markdown.js'); describe('Dictionary Terms', ()=>{ test('Single Definition', function() { - const source = 'My term :: My First Definition'; + const source = 'My term :: My First Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); }); test('Two Definitions', function() { - const source = 'My term :: My First Definition :: My Second Definition'; + const source = 'My term :: My First Definition :: My Second Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
My Second Definition
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
My Second Definition
'); }); test('Three Definitions', function() { - const source = 'My term :: My First Definition :: My Second Definition :: My Third Definition'; + const source = 'My term :: My First Definition :: My Second Definition :: My Third Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
My Second Definition
\n
My Third Definition
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
My Second Definition
\n
My Third Definition
'); + }); + + test('Multiline Definitions', function() { + const source = '**Example** :: V3 uses HTML *definition lists* to create "lists" with hanging indents.\n::Three\n::Four\n\nHello::I\'m a different\n::List\n\n'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Example
V3 uses HTML definition lists to create “lists” with hanging indents.
\n
Three
\n
Four
Hello
I\’m a different
\n
List
'); }); }); diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 2a2c49772..fbb00c670 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -968,7 +968,7 @@ body { counter-reset : phb-page-numbers; } & + * { margin-top : 0.17cm; } } p + dl { margin-top : 0.17cm; } - dt { + dt { display : inline; margin-right : 5px; margin-left : -1em; From 993ae295afb42efdb12aa3ec8e8f91b825bee888 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Sun, 7 Jan 2024 15:40:05 -0600 Subject: [PATCH 029/140] Update editor pattern match for DLs --- client/homebrew/editor/editor.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index cd74b0af5..ad773c25a 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -151,7 +151,8 @@ const Editor = createClass({ // definition lists if(line.includes('::')){ - const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym; + // const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym; + const regex = /^([^\n:]*?)::(.*)(?:\n|$)/ym; let match; while ((match = regex.exec(line)) != null){ From 20b76bdeadeca3860cd686d533c50fdd785672b0 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Sat, 13 Jan 2024 11:55:43 -0600 Subject: [PATCH 030/140] Fix issue when pattern matches a DD without DT ``` Test ::One ``` WOuld previously break the browser. --- shared/naturalcrit/markdown.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index f016218ba..935313d0f 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -243,17 +243,19 @@ const definitionLists = { let match; const endIndex = src.match(`\n\n`)?.index + 2; const allDefinitions = []; - let currentDefinition = []; + let currentDefinition = {}; while (match = regex.exec(src)) { if(match[1].trim()?.length) { if(currentDefinition?.dt?.length) { allDefinitions.push(currentDefinition); - currentDefinition = []; + currentDefinition = {}; } currentDefinition = { dt : this.lexer.inlineTokens(match[1].trim()), dd : [] }; + } else if(_.isEmpty(currentDefinition)) { + return; } currentDefinition.dd = currentDefinition.dd.concat(match[2].split('::').filter((item)=>item).map((s)=>this.lexer.inlineTokens(s.trim()))); if(!currentDefinition.dd?.length) { @@ -273,7 +275,7 @@ const definitionLists = { let returnVal = `
`; token.definitions.forEach((def)=>{ const dds = def.dd.map((s)=>`
${this.parser.parseInline(s)}
`).join('\n'); - returnVal += `
${this.parser.parseInline(def.dt)}
${dds}
`; + returnVal += `
${this.parser.parseInline(def.dt)}
\n${dds}\n`; }); return `${returnVal}
`; } From d076d6c71999f14476e65baabd9cd229f496447e Mon Sep 17 00:00:00 2001 From: David Bolack Date: Sat, 13 Jan 2024 18:58:59 -0600 Subject: [PATCH 031/140] Update tests for previous changes. --- tests/markdown/marked-extensions.test.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index 5f8c7718e..003934d63 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -6,25 +6,25 @@ describe('Dictionary Terms', ()=>{ test('Single Definition', function() { const source = 'My term :: My First Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
\n
My First Definition
\n
'); }); test('Two Definitions', function() { const source = 'My term :: My First Definition :: My Second Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
My Second Definition
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
\n
My First Definition
\n
My Second Definition
\n
'); }); test('Three Definitions', function() { const source = 'My term :: My First Definition :: My Second Definition :: My Third Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
My Second Definition
\n
My Third Definition
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
\n
My First Definition
\n
My Second Definition
\n
My Third Definition
\n
'); }); test('Multiline Definitions', function() { const source = '**Example** :: V3 uses HTML *definition lists* to create "lists" with hanging indents.\n::Three\n::Four\n\nHello::I\'m a different\n::List\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Example
V3 uses HTML definition lists to create “lists” with hanging indents.
\n
Three
\n
Four
Hello
I\’m a different
\n
List
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Example
\n
V3 uses HTML definition lists to create “lists” with hanging indents.
\n
Three
\n
Four
\n
Hello
\n
I\’m a different
\n
List
\n
'); }); }); From 4c2211c428fe901597f8d37d8f964f5e07707321 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Sun, 14 Jan 2024 13:30:52 -0600 Subject: [PATCH 032/140] Updated rendering to follow input line breaks Updated and additional tests. --- shared/naturalcrit/markdown.js | 15 ++++++++++----- tests/markdown/marked-extensions.test.js | 11 +++++------ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 935313d0f..b434e62b0 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -257,9 +257,12 @@ const definitionLists = { } else if(_.isEmpty(currentDefinition)) { return; } - currentDefinition.dd = currentDefinition.dd.concat(match[2].split('::').filter((item)=>item).map((s)=>this.lexer.inlineTokens(s.trim()))); - if(!currentDefinition.dd?.length) { - currentDefinition.dd = [this.lexer.inlineTokens('')]; + const newDefinitions = match[2].split('::').filter((item)=>item).map((s)=>this.lexer.inlineTokens(s.trim())); + console.log(newDefinitions); + if(newDefinitions?.length) { + currentDefinition.dd.push(newDefinitions); + } else { + currentDefinition.dd.push([this.lexer.inlineTokens('')]); } } if(currentDefinition.hasOwnProperty('dt')) { allDefinitions.push(currentDefinition); } @@ -274,8 +277,10 @@ const definitionLists = { renderer(token) { let returnVal = `
`; token.definitions.forEach((def)=>{ - const dds = def.dd.map((s)=>`
${this.parser.parseInline(s)}
`).join('\n'); - returnVal += `
${this.parser.parseInline(def.dt)}
\n${dds}\n`; + const dds = def.dd.map((ddef)=>{ + return ddef.map((s)=>`
${this.parser.parseInline(s)}
`).join(''); + }).join('\n'); + returnVal += `
${this.parser.parseInline(def.dt)}
${dds.indexOf('\n') > -1 ? '\n' : ''}${dds}\n`; }); return `${returnVal}
`; } diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index 003934d63..d4446de68 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -6,25 +6,24 @@ describe('Dictionary Terms', ()=>{ test('Single Definition', function() { const source = 'My term :: My First Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
\n
My First Definition
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
'); }); test('Two Definitions', function() { const source = 'My term :: My First Definition :: My Second Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
\n
My First Definition
\n
My Second Definition
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
My Second Definition
\n
'); }); test('Three Definitions', function() { const source = 'My term :: My First Definition :: My Second Definition :: My Third Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
\n
My First Definition
\n
My Second Definition
\n
My Third Definition
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
My Second Definition
My Third Definition
\n
'); }); - test('Multiline Definitions', function() { - const source = '**Example** :: V3 uses HTML *definition lists* to create "lists" with hanging indents.\n::Three\n::Four\n\nHello::I\'m a different\n::List\n\n'; + test('Multiple Definition Terms, multiple mixed-line definitions', function() { + const source = 'Term 1::Definition 1 of Term 1\n::Definition 2 of Term 1::Definition 3 of Term 1\nTerm 2::Definition of Term 2'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Example
\n
V3 uses HTML definition lists to create “lists” with hanging indents.
\n
Three
\n
Four
\n
Hello
\n
I\’m a different
\n
List
\n
'); }); }); From d09dc11f5f8ac22b7b21877642b822b4b784e088 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Sun, 14 Jan 2024 13:38:01 -0600 Subject: [PATCH 033/140] The remainder of the tests --- tests/markdown/marked-extensions.test.js | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index d4446de68..71bb47a30 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -21,9 +21,34 @@ describe('Dictionary Terms', ()=>{ expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
My Second Definition
My Third Definition
\n
'); }); + test('Multiline Definitions', function() { + const source = '**Example** :: V3 uses HTML *definition lists* to create "lists" with hanging indents.\n::Two::\nThree\n::Four\n\n'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Example
\n
V3 uses HTML definition lists to create “lists” with hanging indents.
\n
TwoThree
\n
Four
\n
'); + }); + + test('Multiple Definition Terms, single line, single definition', function() { + const source = 'Term 1::Definition of Term 1\nTerm 2::Definition of Term 2'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2>
Definition of Term 2
\n
'); + }); + + test('Multiple Definition Terms, single line, multiple definitions', function() { + const source = 'Term 1::Definition 1 of Term 1::Definition 2 of Term 1\nTerm 2::Definition 1 of Term 2::Definition 2 of Term 2'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2>
Definition of Term 2
\n
'); + }); + + test('Multiple Definition Terms, single definitions, multiple lines', function() { + const source = 'Term 1::Definition 1 of Term 1\n::Definition 2 of Term 1\nTerm 2::Definition of Term 2'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2>
Definition of Term 2
\n
'); + }); + test('Multiple Definition Terms, multiple mixed-line definitions', function() { const source = 'Term 1::Definition 1 of Term 1\n::Definition 2 of Term 1::Definition 3 of Term 1\nTerm 2::Definition of Term 2'; const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2>
Definition of Term 2
\n
'); }); }); From 0470d13ae011701ddcecb69bb88abcaf847ab941 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 1 Oct 2023 13:03:37 +1300 Subject: [PATCH 034/140] Add optimized NC logo --- themes/assets/naturalCritLogo.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 themes/assets/naturalCritLogo.svg diff --git a/themes/assets/naturalCritLogo.svg b/themes/assets/naturalCritLogo.svg new file mode 100644 index 000000000..88faa64fa --- /dev/null +++ b/themes/assets/naturalCritLogo.svg @@ -0,0 +1 @@ + \ No newline at end of file From fe0cfcb2b6dd29f5365c03ebd31798f391a539b1 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 1 Oct 2023 14:11:07 +1300 Subject: [PATCH 035/140] New file was unnecessary --- themes/assets/naturalCritLogo.svg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 themes/assets/naturalCritLogo.svg diff --git a/themes/assets/naturalCritLogo.svg b/themes/assets/naturalCritLogo.svg deleted file mode 100644 index 88faa64fa..000000000 --- a/themes/assets/naturalCritLogo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From c9c5176f1b6f54b3540bdc9d78859de7d04be18b Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 1 Oct 2023 14:13:01 +1300 Subject: [PATCH 036/140] Add Credits styling to 5ePHB theme --- themes/V3/5ePHB/style.less | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 6c6634ce7..28873c795 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -940,3 +940,28 @@ } } } + +//***************************** +//* CREDITS +//*****************************/ +.page .homebreweryCredits { + font-family: "NodestoCapsWide"; + font-size: .4cm; + line-height: 1em; + color: #FFFFFF; + text-align: center; + text-indent: 0; + letter-spacing: .08em; + } + .page .homebreweryCredits .homebreweryIcon { + margin: 10px auto; + display: block; + height: 75px; + mask: url(/assets/naturalCritLogoWhite.svg) center / contain no-repeat; + -webkit-mask: url(/assets/naturalCritLogoWhite.svg) center / contain no-repeat; + background-color: red; + } + .page .homebreweryCredits .homebreweryIcon.gold { + background-image: linear-gradient(to top left, brown 22.5%, gold 40%, white 60%, gold 67.5%, brown 82.5%); + } + \ No newline at end of file From 2f383d59b611940fe542fbf60c3372804ad01c57 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 1 Oct 2023 14:15:58 +1300 Subject: [PATCH 037/140] Add HB Credit snippet --- themes/V3/5ePHB/snippets.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/themes/V3/5ePHB/snippets.js b/themes/V3/5ePHB/snippets.js index c0933d70d..91cbe07b8 100644 --- a/themes/V3/5ePHB/snippets.js +++ b/themes/V3/5ePHB/snippets.js @@ -212,6 +212,21 @@ module.exports = [ }} \n`; }, + }, + { + name : 'Homebrewery Credit', + icon : 'fas fa-dice-d20', + gen : function(){ + return dedent` + {{homebreweryCredits + Made With + + {{homebreweryIcon,gold}} + + Homebrewery.Naturalcrit.com + }} + \n`; + }, } ] }, From d0ccc4a15ac567ed4355d17906ffa7d06cd614e4 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 1 Oct 2023 15:29:46 +1300 Subject: [PATCH 038/140] Capitalize C in NaturalCrit.com --- themes/V3/5ePHB/snippets.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/V3/5ePHB/snippets.js b/themes/V3/5ePHB/snippets.js index 91cbe07b8..a56d8e979 100644 --- a/themes/V3/5ePHB/snippets.js +++ b/themes/V3/5ePHB/snippets.js @@ -223,7 +223,7 @@ module.exports = [ {{homebreweryIcon,gold}} - Homebrewery.Naturalcrit.com + Homebrewery.NaturalCrit.com }} \n`; }, From 033776168eb03900deee7bf3cd9f715e8d5b8df2 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 1 Oct 2023 19:52:17 +1300 Subject: [PATCH 039/140] Change the text to include URL link --- themes/V3/5ePHB/snippets.js | 3 ++- themes/V3/5ePHB/style.less | 15 +++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/themes/V3/5ePHB/snippets.js b/themes/V3/5ePHB/snippets.js index a56d8e979..9676647ca 100644 --- a/themes/V3/5ePHB/snippets.js +++ b/themes/V3/5ePHB/snippets.js @@ -223,7 +223,8 @@ module.exports = [ {{homebreweryIcon,gold}} - Homebrewery.NaturalCrit.com + The Homebrewery + [Homebrewery.NaturalCrit.com](https://homebrewery.naturalcrit.com) }} \n`; }, diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 28873c795..3d0c79351 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -948,20 +948,23 @@ font-family: "NodestoCapsWide"; font-size: .4cm; line-height: 1em; - color: #FFFFFF; text-align: center; text-indent: 0; letter-spacing: .08em; - } - .page .homebreweryCredits .homebreweryIcon { +} +.page .homebreweryCredits a { + color: inherit; + text-decoration: none; +} +.page .homebreweryCredits .homebreweryIcon { margin: 10px auto; display: block; height: 75px; mask: url(/assets/naturalCritLogoWhite.svg) center / contain no-repeat; -webkit-mask: url(/assets/naturalCritLogoWhite.svg) center / contain no-repeat; background-color: red; - } - .page .homebreweryCredits .homebreweryIcon.gold { +} +.page .homebreweryCredits .homebreweryIcon.gold { background-image: linear-gradient(to top left, brown 22.5%, gold 40%, white 60%, gold 67.5%, brown 82.5%); - } +} \ No newline at end of file From e56ff93db1601c566efbc90ef1d011fff059484d Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 1 Oct 2023 19:58:57 +1300 Subject: [PATCH 040/140] Add underline on hover to link in credit --- themes/V3/5ePHB/style.less | 3 +++ 1 file changed, 3 insertions(+) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 3d0c79351..cf5067d41 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -956,6 +956,9 @@ color: inherit; text-decoration: none; } +.page .homebreweryCredits a:hover { + text-decoration: underline; +} .page .homebreweryCredits .homebreweryIcon { margin: 10px auto; display: block; From c0cabbb56383a5458f88a1b775c11f6b19b3cebf Mon Sep 17 00:00:00 2001 From: David Bolack Date: Mon, 15 Jan 2024 21:35:19 -0600 Subject: [PATCH 041/140] Move Credits snippet to Blank --- themes/V3/5ePHB/snippets.js | 16 ---------------- themes/V3/5ePHB/style.less | 31 ------------------------------- 2 files changed, 47 deletions(-) diff --git a/themes/V3/5ePHB/snippets.js b/themes/V3/5ePHB/snippets.js index 9676647ca..c0933d70d 100644 --- a/themes/V3/5ePHB/snippets.js +++ b/themes/V3/5ePHB/snippets.js @@ -212,22 +212,6 @@ module.exports = [ }} \n`; }, - }, - { - name : 'Homebrewery Credit', - icon : 'fas fa-dice-d20', - gen : function(){ - return dedent` - {{homebreweryCredits - Made With - - {{homebreweryIcon,gold}} - - The Homebrewery - [Homebrewery.NaturalCrit.com](https://homebrewery.naturalcrit.com) - }} - \n`; - }, } ] }, diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index cf5067d41..6c6634ce7 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -940,34 +940,3 @@ } } } - -//***************************** -//* CREDITS -//*****************************/ -.page .homebreweryCredits { - font-family: "NodestoCapsWide"; - font-size: .4cm; - line-height: 1em; - text-align: center; - text-indent: 0; - letter-spacing: .08em; -} -.page .homebreweryCredits a { - color: inherit; - text-decoration: none; -} -.page .homebreweryCredits a:hover { - text-decoration: underline; -} -.page .homebreweryCredits .homebreweryIcon { - margin: 10px auto; - display: block; - height: 75px; - mask: url(/assets/naturalCritLogoWhite.svg) center / contain no-repeat; - -webkit-mask: url(/assets/naturalCritLogoWhite.svg) center / contain no-repeat; - background-color: red; -} -.page .homebreweryCredits .homebreweryIcon.gold { - background-image: linear-gradient(to top left, brown 22.5%, gold 40%, white 60%, gold 67.5%, brown 82.5%); -} - \ No newline at end of file From c747c5577e5aeddbe24e15116b6fac57932eb68e Mon Sep 17 00:00:00 2001 From: David Bolack Date: Tue, 16 Jan 2024 02:01:55 -0600 Subject: [PATCH 042/140] Add PANdoc style lists ( using :: not : ) Includes new tests and fixes broken old tests --- shared/naturalcrit/markdown.js | 7 ++-- tests/markdown/marked-extensions.test.js | 51 ++++++++++++++++++------ 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index c191c081f..8b54ece57 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -239,7 +239,7 @@ const definitionLists = { level : 'block', start(src) { return src.match(/^.*?::.*\n\n/m)?.index; }, // Hint to Marked.js to stop and check for a match tokenizer(src, tokens) { - const regex = /^([^\n:]*?)::(.*)(?:\n|$)/ym; + const regex = /^([^:\n]*?)[\n]?::(.*)(?:\n|$)/ym; let match; const endIndex = src.match(`\n\n`)?.index + 2; const allDefinitions = []; @@ -258,7 +258,6 @@ const definitionLists = { return; } const newDefinitions = match[2].split('::').filter((item)=>item).map((s)=>this.lexer.inlineTokens(s.trim())); - console.log(newDefinitions); if(newDefinitions?.length) { currentDefinition.dd.push(newDefinitions); } else { @@ -277,11 +276,13 @@ const definitionLists = { renderer(token) { let returnVal = `
`; token.definitions.forEach((def)=>{ - const dds = def.dd.map((ddef)=>{ + let dds = def.dd.map((ddef)=>{ return ddef.map((s)=>`
${this.parser.parseInline(s)}
`).join(''); }).join('\n'); + dds = dds.trim(); returnVal += `
${this.parser.parseInline(def.dt)}
${dds.indexOf('\n') > -1 ? '\n' : ''}${dds}\n`; }); + returnVal = returnVal.trim(); return `${returnVal}
`; } }; diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index 71bb47a30..814aea993 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -6,49 +6,74 @@ describe('Dictionary Terms', ()=>{ test('Single Definition', function() { const source = 'My term :: My First Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); }); test('Two Definitions', function() { const source = 'My term :: My First Definition :: My Second Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
My Second Definition
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
My Second Definition
'); }); test('Three Definitions', function() { const source = 'My term :: My First Definition :: My Second Definition :: My Third Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
My Second Definition
My Third Definition
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
My Second Definition
My Third Definition
'); }); test('Multiline Definitions', function() { - const source = '**Example** :: V3 uses HTML *definition lists* to create "lists" with hanging indents.\n::Two::\nThree\n::Four\n\n'; + const source = '**Example** :: V3 uses HTML *definition lists* to create "lists" with hanging indents.\n::Two\n::Three\n::Four\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Example
\n
V3 uses HTML definition lists to create “lists” with hanging indents.
\n
TwoThree
\n
Four
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Example
\n
V3 uses HTML definition lists to create “lists” with hanging indents.
\n
Two
\n
Three
\n
Four
'); }); test('Multiple Definition Terms, single line, single definition', function() { - const source = 'Term 1::Definition of Term 1\nTerm 2::Definition of Term 2'; + const source = 'Term 1::Definition of Term 1\nTerm 2::Definition of Term 2\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2>
Definition of Term 2
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
'); }); test('Multiple Definition Terms, single line, multiple definitions', function() { - const source = 'Term 1::Definition 1 of Term 1::Definition 2 of Term 1\nTerm 2::Definition 1 of Term 2::Definition 2 of Term 2'; + const source = 'Term 1::Definition 1 of Term 1::Definition 2 of Term 1\nTerm 2::Definition 1 of Term 2::Definition 2 of Term 2\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2>
Definition of Term 2
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition 1 of Term 1
Definition 2 of Term 1
\n
Term 2
Definition 1 of Term 2
Definition 2 of Term 2
'); }); test('Multiple Definition Terms, single definitions, multiple lines', function() { - const source = 'Term 1::Definition 1 of Term 1\n::Definition 2 of Term 1\nTerm 2::Definition of Term 2'; + const source = 'Term 1::Definition 1 of Term 1\n::Definition 2 of Term 1\nTerm 2::Definition of Term 2\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2>
Definition of Term 2
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 of Term 1
\n
Definition 2 of Term 1
\n
Term 2
Definition of Term 2
'); }); test('Multiple Definition Terms, multiple mixed-line definitions', function() { - const source = 'Term 1::Definition 1 of Term 1\n::Definition 2 of Term 1::Definition 3 of Term 1\nTerm 2::Definition of Term 2'; + const source = 'Term 1::Definition 1 of Term 1\n::Definition 2 of Term 1::Definition 3 of Term 1\nTerm 2::Definition of Term 2\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2>
Definition of Term 2
\n
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 of Term 1
\n
Definition 2 of Term 1
Definition 3 of Term 1
\n
Term 2
Definition of Term 2
'); }); + test('PANdoc style list - Single Term, Single Definition', function() { + const source = 'Term 1\n::Definition 1\n\n'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition 1
'); + }); + + test('PANdoc style list - Single Term, Plural Definitions', function() { + const source = 'Term 1\n::Definition 1\n::Definition 2\n\n'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Definition 2
'); + }); + + test('PANdoc style list - Multiple Term, Single Definitions', function() { + const source = 'Term 1\n::Definition 1\nTerm 2\n::Definition 1\n\n'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition 1
\n
Term 2
Definition 1
'); + }); + + test('PANdoc style list - Multiple Term, Plural Definitions', function() { + const source = 'Term 1\n::Definition 1\n::Definition 2\nTerm 2\n::Definition 1\n::Definition 2\n\n'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Definition 2
\n
Term 2
\n
Definition 1
\n
Definition 2
'); + }); + + }); From e1ad05eb3a427bf023223e9fa550c50fd61b124e Mon Sep 17 00:00:00 2001 From: David Bolack Date: Mon, 29 Jan 2024 23:42:13 -0600 Subject: [PATCH 043/140] Solve regression with monster template. Was not handling "weak" Definition list endings well ( places were it was \n instead of \n\n. --- shared/naturalcrit/markdown.js | 3 ++- themes/V3/5ePHB/style.less | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 46de16960..151d7e958 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -263,10 +263,11 @@ const definitionLists = { tokenizer(src, tokens) { const regex = /^([^:\n]*?)[\n]?::(.*)(?:\n|$)/ym; let match; - const endIndex = src.match(`\n\n`)?.index + 2; + let endIndex = 0; const allDefinitions = []; let currentDefinition = {}; while (match = regex.exec(src)) { + endIndex += match[0].length; if(match[1].trim()?.length) { if(currentDefinition?.dt?.length) { allDefinitions.push(currentDefinition); diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index ff8bd286c..865cfef5a 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -320,6 +320,30 @@ padding : 0px; margin-bottom : 0.325cm; + dl { + padding: 0px; + } + + dt::before { + display: block; + } + + dt:nth-child(1n+2)::before { + content: ""; + display: block; + } + + dt { + display: inline; + margin-right : 5px; + margin-left : 0em; + padding: 0px; + } + + dd { + display: inline; + } + //Headers h2 { margin : 0; @@ -869,6 +893,8 @@ dl { line-height : 1.25em; & + * { margin-top : 0.17cm; } + white-space: normal !important; + } p + dl { margin-top : 0.17cm; } dt { From 70657c16d1a573b07342c2f828539879fb90232f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 19:30:29 +0000 Subject: [PATCH 044/140] Bump classnames from 2.3.2 to 2.5.1 Bumps [classnames](https://github.com/JedWatson/classnames) from 2.3.2 to 2.5.1. - [Changelog](https://github.com/JedWatson/classnames/blob/main/HISTORY.md) - [Commits](https://github.com/JedWatson/classnames/compare/v2.3.2...v2.5.1) --- updated-dependencies: - dependency-name: classnames dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fdb4a873..02da537ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@babel/preset-react": "^7.23.3", "@googleapis/drive": "^8.6.0", "body-parser": "^1.20.2", - "classnames": "^2.3.2", + "classnames": "^2.5.1", "codemirror": "^5.65.6", "cookie-parser": "^1.4.6", "create-react-class": "^15.7.0", @@ -4530,9 +4530,9 @@ } }, "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" }, "node_modules/cliui": { "version": "8.0.1", diff --git a/package.json b/package.json index 74666f461..0c28fbe81 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "@babel/preset-react": "^7.23.3", "@googleapis/drive": "^8.6.0", "body-parser": "^1.20.2", - "classnames": "^2.3.2", + "classnames": "^2.5.1", "codemirror": "^5.65.6", "cookie-parser": "^1.4.6", "create-react-class": "^15.7.0", From f1c3507a9f345a513b4c5883eec0e2ec59a85530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 31 Jan 2024 15:45:27 +0100 Subject: [PATCH 045/140] initial commit --- client/homebrew/brewRenderer/brewRenderer.jsx | 10 +++++----- client/homebrew/pages/basePages/listPage/listPage.jsx | 4 ++-- client/homebrew/pages/printPage/printPage.jsx | 6 +++--- client/template.js | 4 ++-- shared/naturalcrit/codeEditor/codeEditor.jsx | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 9208a2b90..ab08eecb9 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -20,9 +20,9 @@ const PAGE_HEIGHT = 1056; const INITIAL_CONTENT = dedent` - + - +
`; @@ -206,11 +206,11 @@ const BrewRenderer = (props)=>{
- + {baseThemePath && - + } - + {/* Apply CSS from Style tab and render pages from Markdown tab */} {state.isMounted diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index d0cd11ec6..b2086939f 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -220,8 +220,8 @@ const ListPage = createClass({ render : function(){ return
{/**/} - - + + {this.props.navItems} {this.renderSortOptions()} diff --git a/client/homebrew/pages/printPage/printPage.jsx b/client/homebrew/pages/printPage/printPage.jsx index 37376d4b2..7d7fc437b 100644 --- a/client/homebrew/pages/printPage/printPage.jsx +++ b/client/homebrew/pages/printPage/printPage.jsx @@ -93,11 +93,11 @@ const PrintPage = createClass({ return
- + {baseThemePath && - + } - + {/* Apply CSS from Style tab */} {this.renderStyle()}
diff --git a/client/template.js b/client/template.js index e8ac8e22f..f72238eed 100644 --- a/client/template.js +++ b/client/template.js @@ -12,9 +12,9 @@ const template = async function(name, title='', props = {}){ - + - + ${ogMetaTags} diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 0a99570db..a5232a42b 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -436,7 +436,7 @@ const CodeEditor = createClass({ render : function(){ return <> - +
; } From 283c2b5ae19d074d74391b769e5841770b425396 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Mon, 5 Feb 2024 21:18:36 -0600 Subject: [PATCH 046/140] Empty Tag multiline input --- shared/naturalcrit/markdown.js | 105 +++++++++++++++++++++++++-------- 1 file changed, 81 insertions(+), 24 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 151d7e958..b466ec8fb 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -256,41 +256,96 @@ const superSubScripts = { } }; -const definitionLists = { - name : 'definitionLists', +const inlineDefinitionLists = { + name : 'inlineDefinitionLists', // Inline because the styles for *this* set should be display: inline + level : 'block', + start(src) { return src.match(/^.*?::.*/m)?.index; }, // Hint to Marked.js to stop and check for a match + tokenizer(src, tokens) { + const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym; + let match; + let endIndex = 0; + const definitions = []; + while (match = regex.exec(src)) { + definitions.push({ + dt : this.lexer.inlineTokens(match[1].trim()), + dd : this.lexer.inlineTokens(match[2].trim()) + }); + endIndex = regex.lastIndex; + } + if(definitions.length) { + return { + type : 'inlineDefinitionLists', + raw : src.slice(0, endIndex), + definitions + }; + } + }, + renderer(token) { + return `
${token.definitions.reduce((html, def)=>{ + return `${html}
${this.parser.parseInline(def.dt)}
` + + `
${this.parser.parseInline(def.dd)}
\n`; + }, '')}
`; + } +}; + +const blockDefinitionLists = { + name : 'blockDefinitionLists', // Block because style display: block level : 'block', start(src) { return src.match(/^.*?::.*\n\n/m)?.index; }, // Hint to Marked.js to stop and check for a match tokenizer(src, tokens) { - const regex = /^([^:\n]*?)[\n]?::(.*)(?:\n|$)/ym; + const regex = /^([^:\n]*?)[\n]?::(.*)(?:\n|$)|^.*(?:\n|$)/ym; let match; let endIndex = 0; const allDefinitions = []; let currentDefinition = {}; + let inList = false; + let lastEmpty = false; while (match = regex.exec(src)) { endIndex += match[0].length; - if(match[1].trim()?.length) { - if(currentDefinition?.dt?.length) { - allDefinitions.push(currentDefinition); - currentDefinition = {}; + if(match[0].indexOf(':') > -1) { + inList = true; + if(match[1].trim()?.length) { + if(currentDefinition?.dt?.length) { + allDefinitions.push(currentDefinition); + currentDefinition = {}; + } + currentDefinition = { + dt : this.lexer.inlineTokens(match[1].trim()), + dd : [], + ddo : [] + }; + } else if(_.isEmpty(currentDefinition)) { + return; + } + const newDefinitions = _.flatten(match[2].split('::').filter((item)=>item).map((s)=>s.trim())); + if(newDefinitions?.length) { + currentDefinition.dd = currentDefinition.dd.concat(newDefinitions); + } else { + currentDefinition.dd.push(''); + } + lastEmpty = false; + } else if(inList) { + if(match[0].trim().length == 0) { + if(lastEmpty) { + break; + } else { + lastEmpty = true; + } + } else { + lastEmpty = false; + currentDefinition.dd[currentDefinition.dd.length - 1] = `${currentDefinition.dd[ currentDefinition.dd.length - 1 ]} ${match[0].trim()}`; } - currentDefinition = { - dt : this.lexer.inlineTokens(match[1].trim()), - dd : [] - }; - } else if(_.isEmpty(currentDefinition)) { - return; - } - const newDefinitions = match[2].split('::').filter((item)=>item).map((s)=>this.lexer.inlineTokens(s.trim())); - if(newDefinitions?.length) { - currentDefinition.dd.push(newDefinitions); - } else { - currentDefinition.dd.push([this.lexer.inlineTokens('')]); } } - if(currentDefinition.hasOwnProperty('dt')) { allDefinitions.push(currentDefinition); } + if(currentDefinition.hasOwnProperty('dt')) { + currentDefinition.dd.forEach((dd)=>{ + currentDefinition.ddo.push(this.lexer.inlineTokens(dd)); + }); + allDefinitions.push(currentDefinition); + } if(allDefinitions.length) { return { - type : 'definitionLists', + type : 'blockDefinitionLists', raw : src.slice(0, endIndex), definitions : allDefinitions }; @@ -299,18 +354,20 @@ const definitionLists = { renderer(token) { let returnVal = `
`; token.definitions.forEach((def)=>{ - let dds = def.dd.map((ddef)=>{ - return ddef.map((s)=>`
${this.parser.parseInline(s)}
`).join(''); + console.log(def.ddo); + let dds = def.ddo.map((s)=>{ + return `
${this.parser.parseInline(s)}
`; }).join('\n'); dds = dds.trim(); returnVal += `
${this.parser.parseInline(def.dt)}
${dds.indexOf('\n') > -1 ? '\n' : ''}${dds}\n`; }); returnVal = returnVal.trim(); + console.log(returnVal); return `${returnVal}
`; } }; -Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionLists, superSubScripts] }); +Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, blockDefinitionLists, superSubScripts] }); Marked.use(mustacheInjectBlock); Marked.use({ renderer: renderer, mangle: false }); Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartypantsLite()); From 703e207970d1c09b8a8581ec6117d7160c0bcd68 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Tue, 6 Feb 2024 21:47:15 -0600 Subject: [PATCH 047/140] I think I have all the desired modes in place. I feel like this is ugly code and maybe there are prettier ways to do it, but it functions as I *believe* is currently desired. --- shared/naturalcrit/markdown.js | 52 ++++++++++++++++++++++++++-------- themes/V3/5ePHB/style.less | 19 +++++++++++++ 2 files changed, 59 insertions(+), 12 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index b466ec8fb..f888cade8 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -300,12 +300,23 @@ const blockDefinitionLists = { let currentDefinition = {}; let inList = false; let lastEmpty = false; + let inlineDefinitions = false; while (match = regex.exec(src)) { + // If we aren't actively in a DL and we match just text, bail. + // If the last loop bailed with lastEmpty and we match just text, bail + if(((!inList) || (lastEmpty)) && (typeof match[1] == 'undefined') && (typeof match[2] == 'undefined')) { + break; + } endIndex += match[0].length; - if(match[0].indexOf(':') > -1) { + // Check to see if this a match containing the start of a DD. + if(match[0].indexOf('::') > -1) { inList = true; - if(match[1].trim()?.length) { + // Check for a DT value. + if(match[1]?.trim()?.length>0) { if(currentDefinition?.dt?.length) { + currentDefinition.dd.forEach((dd)=>{ + currentDefinition.ddo.push(this.lexer.inlineTokens(dd)); + }); allDefinitions.push(currentDefinition); currentDefinition = {}; } @@ -317,23 +328,42 @@ const blockDefinitionLists = { } else if(_.isEmpty(currentDefinition)) { return; } - const newDefinitions = _.flatten(match[2].split('::').filter((item)=>item).map((s)=>s.trim())); - if(newDefinitions?.length) { - currentDefinition.dd = currentDefinition.dd.concat(newDefinitions); + // Test for a DD value. + if(match[2].trim().length>0) { + if((match[1]?.length > 0) && (match[0].indexOf('\n') > match[1]?.length)) { // Inline Style DD + currentDefinition.dd = currentDefinition.dd.concat([match[2].trim()]); + currentDefinition.dd.forEach((dd)=>{ + currentDefinition.ddo.push(this.lexer.inlineTokens(dd)); + }); + allDefinitions.push(currentDefinition); + inlineDefinitions = true; + currentDefinition = {}; + continue; + } + // Multi-line style DDs + const newDefinitions = _.flatten(match[2].split('::').filter((item)=>item).map((s)=>s.trim())); + if(newDefinitions?.length) { + currentDefinition.dd = currentDefinition.dd.concat(newDefinitions); + } } else { currentDefinition.dd.push(''); } lastEmpty = false; - } else if(inList) { + } else if(inList) { // Regular line that might mark the end of a line. + if(inlineDefinitions) { + endIndex -= match[0].length; + break; + } if(match[0].trim().length == 0) { if(lastEmpty) { - break; + continue; } else { lastEmpty = true; } } else { lastEmpty = false; - currentDefinition.dd[currentDefinition.dd.length - 1] = `${currentDefinition.dd[ currentDefinition.dd.length - 1 ]} ${match[0].trim()}`; + const lastPos = typeof currentDefinition.dd.length !== 'undefined' ? currentDefinition.dd.length - 1 : 0; + currentDefinition.dd[lastPos] = `${currentDefinition.dd[lastPos]} ${match[0].trim()}`; } } } @@ -347,22 +377,20 @@ const blockDefinitionLists = { return { type : 'blockDefinitionLists', raw : src.slice(0, endIndex), + inlineDefinitions, definitions : allDefinitions }; } }, renderer(token) { - let returnVal = `
`; + let returnVal = ``; token.definitions.forEach((def)=>{ - console.log(def.ddo); let dds = def.ddo.map((s)=>{ return `
${this.parser.parseInline(s)}
`; }).join('\n'); - dds = dds.trim(); returnVal += `
${this.parser.parseInline(def.dt)}
${dds.indexOf('\n') > -1 ? '\n' : ''}${dds}\n`; }); returnVal = returnVal.trim(); - console.log(returnVal); return `${returnVal}
`; } }; diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 865cfef5a..16a0b1e4f 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -896,7 +896,13 @@ white-space: normal !important; } + + dd { + display: block + } + p + dl { margin-top : 0.17cm; } + dt { display : inline; margin-right : 5px; @@ -904,6 +910,19 @@ } } +// ***************************** +// * Inline Definition Lists +// *****************************/ +.inlineDL dd { + display: inline !important + } + + .inlineDL dd:after{ + display: block; + content: ''; + } + + // ***************************** // * WIDE // *****************************/ From 3ee9fe1c3fa5322d9617c8c87f894568b5203f0a Mon Sep 17 00:00:00 2001 From: David Bolack Date: Tue, 6 Feb 2024 22:13:44 -0600 Subject: [PATCH 048/140] Update tests. Prune no lionger valid cases. --- client/homebrew/editor/editor.jsx | 22 +++++----- client/homebrew/editor/editor.less | 10 +++++ tests/markdown/marked-extensions.test.js | 53 +++++++----------------- 3 files changed, 36 insertions(+), 49 deletions(-) diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index ad773c25a..0d1378439 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -151,21 +151,21 @@ const Editor = createClass({ // definition lists if(line.includes('::')){ - // const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym; - const regex = /^([^\n:]*?)::(.*)(?:\n|$)/ym; + if(/^:*$/.test(line) == true){ return }; + const regex = /^([^\n:]*?)(::[^\n]*)(?:\n|$)/ymd; // the `d` flag, for match indices, throws an ESLint error. let match; while ((match = regex.exec(line)) != null){ - - codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[0]) }, { line: lineNumber, ch: line.indexOf(match[0]) + match[0].length }, { className: 'define' }); - codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[1]) }, { line: lineNumber, ch: line.indexOf(match[1]) + match[1].length }, { className: 'term' }); - const matches = match[2].split('::').map((s)=>(s.trim())); - matches.forEach((m)=>{ - codeMirror.markText({ line: lineNumber, ch: line.indexOf(m) }, { line: lineNumber, ch: line.indexOf(m) + m.length }, { className: 'definition' }); - }); - // codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[2]) }, { line: lineNumber, ch: line.indexOf(match[2]) + match[2].length }, { className: 'definition' }); + codeMirror.markText({ line: lineNumber, ch: match.indices[0][0] }, { line: lineNumber, ch: match.indices[0][1] }, { className: 'dl-highlight' }); + codeMirror.markText({ line: lineNumber, ch: match.indices[1][0] }, { line: lineNumber, ch: match.indices[1][1] }, { className: 'dt-highlight' }); + codeMirror.markText({ line: lineNumber, ch: match.indices[2][0] }, { line: lineNumber, ch: match.indices[2][1] }, { className: 'dd-highlight' }); + const ddIndex = match.indices[2][0]; + let colons = /::/g; + let colonMatches; + while((colonMatches = colons.exec(match[2])) !== null){ + codeMirror.markText({ line: lineNumber, ch: colonMatches.index + ddIndex }, { line: lineNumber, ch: colonMatches.index + colonMatches[0].length + ddIndex }, { className: 'dl-colon-highlight'} ) + } } } - // Superscript if(line.includes('\^')) { const regex = /\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^/g; diff --git a/client/homebrew/editor/editor.less b/client/homebrew/editor/editor.less index b165f91db..d7950ead3 100644 --- a/client/homebrew/editor/editor.less +++ b/client/homebrew/editor/editor.less @@ -55,6 +55,16 @@ vertical-align : sub; font-size : 0.9em; } + .dl-highlight { + &.dl-colon-highlight { + font-weight : bold; + color : #949494; + background : #E5E5E5; + border-radius : 3px; + } + &.dt-highlight { color : rgb(96, 117, 143); } + &.dd-highlight { color : rgb(97, 57, 178); } + } } .brewJump { diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index 814aea993..5a8603ab8 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -6,49 +6,13 @@ describe('Dictionary Terms', ()=>{ test('Single Definition', function() { const source = 'My term :: My First Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); - }); - - test('Two Definitions', function() { - const source = 'My term :: My First Definition :: My Second Definition\n\n'; - const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
My Second Definition
'); - }); - - test('Three Definitions', function() { - const source = 'My term :: My First Definition :: My Second Definition :: My Third Definition\n\n'; - const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
My Second Definition
My Third Definition
'); - }); - - test('Multiline Definitions', function() { - const source = '**Example** :: V3 uses HTML *definition lists* to create "lists" with hanging indents.\n::Two\n::Three\n::Four\n\n'; - const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Example
\n
V3 uses HTML definition lists to create “lists” with hanging indents.
\n
Two
\n
Three
\n
Four
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); }); test('Multiple Definition Terms, single line, single definition', function() { const source = 'Term 1::Definition of Term 1\nTerm 2::Definition of Term 2\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
'); - }); - - test('Multiple Definition Terms, single line, multiple definitions', function() { - const source = 'Term 1::Definition 1 of Term 1::Definition 2 of Term 1\nTerm 2::Definition 1 of Term 2::Definition 2 of Term 2\n\n'; - const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition 1 of Term 1
Definition 2 of Term 1
\n
Term 2
Definition 1 of Term 2
Definition 2 of Term 2
'); - }); - - test('Multiple Definition Terms, single definitions, multiple lines', function() { - const source = 'Term 1::Definition 1 of Term 1\n::Definition 2 of Term 1\nTerm 2::Definition of Term 2\n\n'; - const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 of Term 1
\n
Definition 2 of Term 1
\n
Term 2
Definition of Term 2
'); - }); - - test('Multiple Definition Terms, multiple mixed-line definitions', function() { - const source = 'Term 1::Definition 1 of Term 1\n::Definition 2 of Term 1::Definition 3 of Term 1\nTerm 2::Definition of Term 2\n\n'; - const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 of Term 1
\n
Definition 2 of Term 1
Definition 3 of Term 1
\n
Term 2
Definition of Term 2
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
'); }); test('PANdoc style list - Single Term, Single Definition', function() { @@ -75,5 +39,18 @@ describe('Dictionary Terms', ()=>{ expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Definition 2
\n
Term 2
\n
Definition 1
\n
Definition 2
'); }); + test('PANdoc style list - Single Term, Single multiple line definition', function() { + const source = 'Term 1\n::Definition 1\nand more and\nmore and more\n\n'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition 1 and more and more and more
'); + + }); + + test('PANdoc style list - Multiple Term, Single multiple line definition', function() { + const source = 'Term 1\n::Definition 1\nand more and\nmore and more\n\n::Definition 2\n\n::Definition 3\n\n'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more and more
\n
Definition 2
\n
Definition 3
'); + + }); }); From 13fbcd0eb1b0991b9fa7798af946287882ddffa1 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Tue, 6 Feb 2024 23:29:59 -0600 Subject: [PATCH 049/140] Improve Regex to permit DTs with a final : --- shared/naturalcrit/markdown.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index f888cade8..9d981fd47 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -293,7 +293,7 @@ const blockDefinitionLists = { level : 'block', start(src) { return src.match(/^.*?::.*\n\n/m)?.index; }, // Hint to Marked.js to stop and check for a match tokenizer(src, tokens) { - const regex = /^([^:\n]*?)[\n]?::(.*)(?:\n|$)|^.*(?:\n|$)/ym; + const regex = /^([^\n]*?:?)\n?::(.*)(?:\n|$)|^.*(?:\n|$)/ym; let match; let endIndex = 0; const allDefinitions = []; From 9e8570c19ba00409d6d26b6a2cdd348752a4c79c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 7 Feb 2024 22:42:55 +0100 Subject: [PATCH 050/140] page counter rename --- themes/V3/5ePHB/style.less | 2 +- themes/V3/Blank/style.less | 23 ++++++++++++++++++++++- themes/V3/Journal/style.less | 2 +- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 6c6634ce7..59e010c91 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -411,7 +411,7 @@ color : var(--HB_Color_Footnotes); text-align : center; text-indent : 0; - &.auto::after { content : counter(phb-page-numbers); } + &.auto::after { content : counter(page-numbers); } } .footnote { position : absolute; diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index d31919fab..118ce0ef5 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -47,7 +47,7 @@ body { counter-reset : phb-page-numbers; } height : 279.4mm; padding : 1.4cm 1.9cm 1.7cm; overflow : hidden; - counter-increment : phb-page-numbers; + counter-increment : page-numbers; background-color : var(--HB_Color_Background); text-rendering : optimizeLegibility; contain : size; @@ -460,3 +460,24 @@ body { counter-reset : phb-page-numbers; } .homebreweryIcon.red { background-color : red; } .homebreweryIcon.gold { background-image : linear-gradient(to top left, brown 22.5%, gold 40%, white 60%, gold 67.5%, brown 82.5%); } } +//***************************** +//* Page Number +//*****************************/ + +.page { + + + .pageNumber { + position : absolute; + right : 2px; + bottom : 22px; + width : 50px; + font-size : 0.9em; + text-align : center; + &.auto::after { content : counter(page-numbers); } + } + + &:nth-child(even) { + .pageNumber { left : 2px; } + } +} diff --git a/themes/V3/Journal/style.less b/themes/V3/Journal/style.less index 2e2ada5c8..b9d83b3f1 100644 --- a/themes/V3/Journal/style.less +++ b/themes/V3/Journal/style.less @@ -383,7 +383,7 @@ text-align : center; text-indent : 0; &.auto::after { - content : counter(phb-page-numbers); + content : counter(page-numbers); } } .footnote{ From c9fc976c72da39193d6569b58b3fc79a5fa5fd72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 7 Feb 2024 22:43:43 +0100 Subject: [PATCH 051/140] counter left --- themes/V3/Blank/style.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index 118ce0ef5..4a84167ba 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -8,7 +8,7 @@ } @page { margin : 0; } -body { counter-reset : phb-page-numbers; } +body { counter-reset : page-numbers; } * { -webkit-print-color-adjust : exact; } //***************************** From 5e97121e5a567f83a4fa9e7a27472ccdd2c73262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 7 Feb 2024 22:48:32 +0100 Subject: [PATCH 052/140] pageNumber to blank --- themes/V3/5ePHB/style.less | 6 ------ themes/V3/Blank/style.less | 8 +++----- themes/V3/Journal/style.less | 8 -------- 3 files changed, 3 insertions(+), 19 deletions(-) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 59e010c91..bb406b152 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -403,15 +403,9 @@ } } .pageNumber { - position : absolute; right : 2px; bottom : 22px; - width : 50px; - font-size : 0.9em; color : var(--HB_Color_Footnotes); - text-align : center; - text-indent : 0; - &.auto::after { content : counter(page-numbers); } } .footnote { position : absolute; diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index 4a84167ba..1d6b1b0aa 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -465,12 +465,10 @@ body { counter-reset : page-numbers; } //*****************************/ .page { - - .pageNumber { position : absolute; - right : 2px; - bottom : 22px; + right : 30px; + bottom : 30px; width : 50px; font-size : 0.9em; text-align : center; @@ -478,6 +476,6 @@ body { counter-reset : page-numbers; } } &:nth-child(even) { - .pageNumber { left : 2px; } + .pageNumber { left : 30px; } } } diff --git a/themes/V3/Journal/style.less b/themes/V3/Journal/style.less index b9d83b3f1..b8ed3ce8f 100644 --- a/themes/V3/Journal/style.less +++ b/themes/V3/Journal/style.less @@ -374,17 +374,9 @@ } .pageNumber{ font-family : FrederickaTheGreat; - position : absolute; right : 3cm; bottom : 1.25cm; - width : 50px; - font-size : 0.9em; color : var(--HB_Color_HeaderText); - text-align : center; - text-indent : 0; - &.auto::after { - content : counter(page-numbers); - } } .footnote{ position : absolute; From 7f8b87bb852280374074d0dc849f6a6dfc69ae52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 7 Feb 2024 22:52:44 +0100 Subject: [PATCH 053/140] watermark now visible --- themes/V3/Blank/style.less | 1 - 1 file changed, 1 deletion(-) diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index 1d6b1b0aa..f8289bbee 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -166,7 +166,6 @@ body { counter-reset : page-numbers; } margin : 0; font-size : 120px; text-transform : uppercase; - mix-blend-mode : overlay; opacity : 30%; transform : rotate(-45deg); p { margin-bottom : none; } From f3148ed53cb5b283398278585c0d091f1f659565 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Wed, 7 Feb 2024 20:23:19 -0600 Subject: [PATCH 054/140] Fix Syntax Highlighting Update changelog to match PR target shifts. --- changelog.md | 33 ++++++++++++++++++++++--------- client/homebrew/editor/editor.jsx | 4 ++-- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/changelog.md b/changelog.md index 081bd85ea..fe3076059 100644 --- a/changelog.md +++ b/changelog.md @@ -80,7 +80,7 @@ pre { ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). -### Tuesday 07/11/2023 +### Tuesday 02/07/2024 {{ taskList @@ -88,22 +88,37 @@ For a full record of development, visit our [Github Page](https://github.com/nat * [x] Add user requested feature for definition lists with multiple definitions. -This implements issue [#2340](https://github.com/naturalcrit/homebrewery/issues/2340) by extending the existing syntax pattern. Additional definitions must be on the same line. +This implements issue [#2340](https://github.com/naturalcrit/homebrewery/issues/2340) by extending the existing syntax pattern. + +Multiple Definition Description (\) terms must go on the following line with a blank line between definition sets. Additionally, Descriptions may be multi-line, if desired. Multi-line descriptions will be concatenated into a single Description on render. + +The previous, inline system has not been removed, however, the two forms may not be intermixed. ``` -Dictionary Term :: Definition One :: Definition Two :: Definition Three +Dictionary Term +:: Definition One +:: Definition Two +:: Definition Three ``` Example: ``` -Egg::Came before the Chicken::Python Packaging Format::Over Easy isn't - Egg - Came before the Chicken - Python Packaging Format - Over Easy isn't +::Came before the Chicken +::Python Packaging Format +::Over +Easy +isn't ``` - +Results: +``` +
+
Egg
+
Came before the Chicken
+
Python Packaging Format
+
Over Easy isn't
+
+``` }} ### Friday 13/10/2023 - v3.10.0 diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 0d1378439..7a5f433f5 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -160,8 +160,8 @@ const Editor = createClass({ codeMirror.markText({ line: lineNumber, ch: match.indices[2][0] }, { line: lineNumber, ch: match.indices[2][1] }, { className: 'dd-highlight' }); const ddIndex = match.indices[2][0]; let colons = /::/g; - let colonMatches; - while((colonMatches = colons.exec(match[2])) !== null){ + let colonMatches = colons.exec(match[2]); + if(colonMatches !== null){ codeMirror.markText({ line: lineNumber, ch: colonMatches.index + ddIndex }, { line: lineNumber, ch: colonMatches.index + colonMatches[0].length + ddIndex }, { className: 'dl-colon-highlight'} ) } } From 26a41e6262dfb43a971da8d5e0540a50a68ff8ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Thu, 8 Feb 2024 11:33:11 +0100 Subject: [PATCH 055/140] FA to 6.5.1 --- client/homebrew/brewRenderer/brewRenderer.jsx | 2 +- client/template.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 9208a2b90..c32d5fa52 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -20,7 +20,7 @@ const PAGE_HEIGHT = 1056; const INITIAL_CONTENT = dedent` - + diff --git a/client/template.js b/client/template.js index e8ac8e22f..43e17b27d 100644 --- a/client/template.js +++ b/client/template.js @@ -12,7 +12,7 @@ const template = async function(name, title='', props = {}){ - + From 32b5bebbc46e88b4e7e6b1e94032c11201e5b7b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 9 Feb 2024 00:18:39 +0100 Subject: [PATCH 056/140] full functionality --- client/homebrew/navbar/newbrew.navitem.jsx | 100 +++++++++++++++++++-- 1 file changed, 93 insertions(+), 7 deletions(-) diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index cc833013d..94aa9fb85 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -1,12 +1,98 @@ const React = require('react'); +const _ = require('lodash'); const Nav = require('naturalcrit/nav/nav.jsx'); +const yaml = require('js-yaml'); +const { useRef } = React; + +const BREWKEY = 'homebrewery-new'; +const STYLEKEY = 'homebrewery-new-style'; +const METAKEY = 'homebrewery-new-meta'; + +const splitTextStyleAndMetadata = (brew)=>{ + brew.text = brew.text.replaceAll('\r\n', '\n'); + if(brew.text.startsWith('```metadata')) { + const index = brew.text.indexOf('```\n\n'); + const metadataSection = brew.text.slice(12, index - 1); + const metadata = yaml.load(metadataSection); + Object.assign(brew, _.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])); + brew.text = brew.text.slice(index + 5); + } + if(brew.text.startsWith('```css')) { + const index = brew.text.indexOf('```\n\n'); + brew.style = brew.text.slice(7, index - 1); + brew.text = brew.text.slice(index + 5); + } +}; + + +const handleFileChange = (e) => { + const file = e.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = (e) => { + const fileContent = e.target.result; + + const brew = { + text :fileContent, + style : '' + } + splitTextStyleAndMetadata(brew); + console.log(brew); + localStorage.setItem(BREWKEY, brew.text); + localStorage.setItem(STYLEKEY, brew.style); + localStorage.setItem(METAKEY, JSON.stringify({ + 'title': brew.title, + 'description': brew.description, + 'tags': brew.tags, + 'systems': brew.systems, + 'renderer': brew.renderer, + 'theme': brew.theme, + 'lang': brew.lang + })); + + //window.location.href = '/new'; + }; + reader.readAsText(file); + } +}; + module.exports = function(props){ - return - new - ; + const inputRef = useRef(null); + + return + + new + + + new + + + { inputRef.current.click(); }}> + + New From Local File + + + ; + }; + +/* + + new cloned + +*/ \ No newline at end of file From 2b81c26cffb38c76cce3cdf78becf70d2144569f Mon Sep 17 00:00:00 2001 From: David Bolack Date: Thu, 8 Feb 2024 19:23:33 -0600 Subject: [PATCH 057/140] Working, but ugly --- shared/naturalcrit/markdown.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 9d981fd47..46b1ff59e 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -301,6 +301,7 @@ const blockDefinitionLists = { let inList = false; let lastEmpty = false; let inlineDefinitions = false; + let appending = false; while (match = regex.exec(src)) { // If we aren't actively in a DL and we match just text, bail. // If the last loop bailed with lastEmpty and we match just text, bail @@ -308,9 +309,17 @@ const blockDefinitionLists = { break; } endIndex += match[0].length; + // Check to see if this a match containing the start of a DD. if(match[0].indexOf('::') > -1) { inList = true; + // Check and see if we are currently in line appending mode + if(appending) { + const lastPos = typeof currentDefinition.dd.length !== 'undefined' ? currentDefinition.dd.length - 1 : 0; + currentDefinition.dd[lastPos] = `${currentDefinition.dd[lastPos]} ${match[1]?.trim()}`; + match[1] = ''; + } + appending = false; // Check for a DT value. if(match[1]?.trim()?.length>0) { if(currentDefinition?.dt?.length) { @@ -341,7 +350,7 @@ const blockDefinitionLists = { continue; } // Multi-line style DDs - const newDefinitions = _.flatten(match[2].split('::').filter((item)=>item).map((s)=>s.trim())); + const newDefinitions = _.flatten(match[2].split('\n::').filter((item)=>item).map((s)=>s.trim())); if(newDefinitions?.length) { currentDefinition.dd = currentDefinition.dd.concat(newDefinitions); } @@ -364,6 +373,7 @@ const blockDefinitionLists = { lastEmpty = false; const lastPos = typeof currentDefinition.dd.length !== 'undefined' ? currentDefinition.dd.length - 1 : 0; currentDefinition.dd[lastPos] = `${currentDefinition.dd[lastPos]} ${match[0].trim()}`; + appending = true; } } } From 67b11d62ea20f63e65a64ef2e1690da6b4df4635 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Thu, 8 Feb 2024 19:35:43 -0600 Subject: [PATCH 058/140] Small DD appending mode fix --- shared/naturalcrit/markdown.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 46b1ff59e..5289dd645 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -313,7 +313,8 @@ const blockDefinitionLists = { // Check to see if this a match containing the start of a DD. if(match[0].indexOf('::') > -1) { inList = true; - // Check and see if we are currently in line appending mode + // Check and see if we are currently in line appending mode, if so, match[1] should be + // appended to the last entry instead of being used as the next DT. if(appending) { const lastPos = typeof currentDefinition.dd.length !== 'undefined' ? currentDefinition.dd.length - 1 : 0; currentDefinition.dd[lastPos] = `${currentDefinition.dd[lastPos]} ${match[1]?.trim()}`; @@ -359,6 +360,7 @@ const blockDefinitionLists = { } lastEmpty = false; } else if(inList) { // Regular line that might mark the end of a line. + appending = false; if(inlineDefinitions) { endIndex -= match[0].length; break; From 705d170b6e1fa922e1d820370e326e336e60520a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 9 Feb 2024 10:22:55 +0100 Subject: [PATCH 059/140] alert if wrong file, redirect if good --- client/homebrew/navbar/newbrew.navitem.jsx | 171 ++++++++++----------- 1 file changed, 84 insertions(+), 87 deletions(-) diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 94aa9fb85..6e63e7a8f 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -1,98 +1,95 @@ const React = require('react'); +const { useState, useRef } = React; const _ = require('lodash'); const Nav = require('naturalcrit/nav/nav.jsx'); const yaml = require('js-yaml'); -const { useRef } = React; const BREWKEY = 'homebrewery-new'; const STYLEKEY = 'homebrewery-new-style'; const METAKEY = 'homebrewery-new-meta'; -const splitTextStyleAndMetadata = (brew)=>{ - brew.text = brew.text.replaceAll('\r\n', '\n'); - if(brew.text.startsWith('```metadata')) { - const index = brew.text.indexOf('```\n\n'); - const metadataSection = brew.text.slice(12, index - 1); - const metadata = yaml.load(metadataSection); - Object.assign(brew, _.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])); - brew.text = brew.text.slice(index + 5); - } - if(brew.text.startsWith('```css')) { - const index = brew.text.indexOf('```\n\n'); - brew.style = brew.text.slice(7, index - 1); - brew.text = brew.text.slice(index + 5); - } +const NewBrew = () => { + const inputRef = useRef(null); + + const [brew, setBrew] = useState({ + text: '', + style: '' + }); + + const splitTextStyleAndMetadata = (brewContent) => { + let updatedBrew = { ...brewContent }; + updatedBrew.text = updatedBrew.text.replaceAll('\r\n', '\n'); + if (updatedBrew.text.startsWith('```metadata')) { + const index = updatedBrew.text.indexOf('```\n\n'); + const metadataSection = updatedBrew.text.slice(12, index - 1); + const metadata = yaml.load(metadataSection); + updatedBrew = { + ...updatedBrew, + ..._.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']) + }; + updatedBrew.text = updatedBrew.text.slice(index + 5); + } + if (updatedBrew.text.startsWith('```css')) { + const index = updatedBrew.text.indexOf('```\n\n'); + updatedBrew.style = updatedBrew.text.slice(7, index - 1); + updatedBrew.text = updatedBrew.text.slice(index + 5); + } + return updatedBrew; + }; + + + const handleFileChange = (e) => { + const file = e.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = (e) => { + const fileContent = e.target.result; + const newBrew = { + text: fileContent, + style: '' + }; + if(fileContent.startsWith('```metadata')) { + const updatedBrew = splitTextStyleAndMetadata(newBrew); + console.log(updatedBrew); + setBrew(updatedBrew); + localStorage.setItem(BREWKEY, updatedBrew.text); + localStorage.setItem(STYLEKEY, updatedBrew.style); + localStorage.setItem(METAKEY, JSON.stringify(_.pick(updatedBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); + + window.location.href = '/new'; + } else { + alert('This file is invalid, please, enter a valid file'); + } + }; + reader.readAsText(file); + } + }; + + return ( + + + new + + + new + + + { inputRef.current.click(); }}> + + New From Local File + + + ); }; - -const handleFileChange = (e) => { - const file = e.target.files[0]; - if (file) { - const reader = new FileReader(); - reader.onload = (e) => { - const fileContent = e.target.result; - - const brew = { - text :fileContent, - style : '' - } - splitTextStyleAndMetadata(brew); - console.log(brew); - localStorage.setItem(BREWKEY, brew.text); - localStorage.setItem(STYLEKEY, brew.style); - localStorage.setItem(METAKEY, JSON.stringify({ - 'title': brew.title, - 'description': brew.description, - 'tags': brew.tags, - 'systems': brew.systems, - 'renderer': brew.renderer, - 'theme': brew.theme, - 'lang': brew.lang - })); - - //window.location.href = '/new'; - }; - reader.readAsText(file); - } -}; - - -module.exports = function(props){ - const inputRef = useRef(null); - - return - - new - - - new - - - { inputRef.current.click(); }}> - - New From Local File - - - ; - -}; - -/* - - new cloned - -*/ \ No newline at end of file +module.exports = NewBrew; From 19bb9705b67f99defcc797be4e4daec2aa286eed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 9 Feb 2024 13:33:41 +0100 Subject: [PATCH 060/140] initial commit --- shared/naturalcrit/nav/nav.less | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/shared/naturalcrit/nav/nav.less b/shared/naturalcrit/nav/nav.less index e3a58a33a..8ac29f420 100644 --- a/shared/naturalcrit/nav/nav.less +++ b/shared/naturalcrit/nav/nav.less @@ -87,10 +87,15 @@ nav{ position : relative; display : block; width : 100%; - vertical-align : middle; - padding : 8px 5px; + padding : 5px 20px 5px 12px; border : 1px solid #888; border-bottom : 0; + i:before { + position:absolute; + right:12px; + top:50%; + translate: 0 -50%; + } } } } From 323d84974c09a72cc151f537f0046686e3d5dfd1 Mon Sep 17 00:00:00 2001 From: Gazook89 Date: Sat, 10 Feb 2024 22:29:16 -0600 Subject: [PATCH 061/140] Combine nav and navbar styles - moves all the nav.less styling to navbar.less in the `client` directory - deletes nav.less - changes the nav.jsx import of styles to navbar.less - stylelint navbar.less - added a couple comments about easy future changes. --- client/homebrew/navbar/navbar.less | 584 ++++++++++++++++------------- shared/naturalcrit/nav/nav.jsx | 2 +- shared/naturalcrit/nav/nav.less | 97 ----- 3 files changed, 332 insertions(+), 351 deletions(-) delete mode 100644 shared/naturalcrit/nav/nav.less diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index 036f52cf4..73671abbb 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -1,65 +1,339 @@ @import "naturalcrit/styles/colors.less"; + @navbarHeight : 28px; + @keyframes pinkColoring { - 0% {color : pink;} - 50% {color : pink;} - 75% {color : red;} - 100% {color : pink;} + 0% { color : pink; } + 50% { color : pink; } + 75% { color : red; } + 100% { color : pink; } } -.homebrew nav { - .homebrewLogo { - .animate(color); - font-family : CodeBold; - font-size : 12px; - color : white; - div { - margin-top : 2px; - margin-bottom : -2px; - } - &:hover { - color : @blue; - } + +@keyframes glideDropDown { + 0% { + background-color : #333333; + opacity : 0; + transform : translate(0px, -100%); } - .editTitle.navItem { - padding : 2px 12px; - input { - font-family : "Open Sans", sans-serif; - font-size : 12px; - font-weight : 800; - width : 250px; - margin : 0; - padding : 2px; - text-align : center; - color : white; - border : 1px solid @blue; - outline : none; - background-color : transparent; - } - .charCount { - display : inline-block; - margin-left : 8px; - text-align : right; - vertical-align : bottom; - color : #666; - &.max { - color : @red; + 100% { + background-color : #333333; + opacity : 1; + transform : translate(0px, 0px); + } +} + +.homebrew nav { + background-color : #333333; + .navContent { + position : relative; + z-index : 2; + display : flex; + justify-content : space-between; + .navSection { + display : flex; + align-items : center; + // "NaturalCrit" logo + .navLogo { + display : block; + margin-top : 0px; + margin-right : 8px; + margin-left : 8px; + color : white; + text-decoration : none; + &:hover { + .name { color : @orange; } + svg { fill : @orange; } + } + svg { + height : 13px; + margin-right : 0.2em; + cursor : pointer; + fill : white; + } + span.name { + font-family : 'CodeLight'; + font-size : 15px; + span.crit { font-family : 'CodeBold'; } + small { + font-family : 'Open Sans'; + font-size : 0.3em; + font-weight : 800; + text-transform : uppercase; + } + } + } + &:last-child .navItem { border-left : 1px solid #666666; } + .navItem { + #backgroundColorsHover; + .animate(background-color); + padding : 8px 12px; + font-size : 10px; + font-weight : 800; + line-height : 13px; + color : white; + text-decoration : none; + text-transform : uppercase; + cursor : pointer; + background-color : #333333; + i { + float : right; + margin-left : 5px; + font-size : 13px; + } + &.patreon { + border-right : 1px solid #666666; + border-left : 1px solid #666666; + &:hover i { color : red; } + i { + color : pink; + .animate(color); + animation-name : pinkColoring; + animation-duration : 2s; + } + } + &.editTitle { // this is not needed at all currently - you used to be able to edit the title via the navbar. + padding : 2px 12px; + input { + width : 250px; + padding : 2px; + margin : 0; + font-family : 'Open Sans', sans-serif; + font-size : 12px; + font-weight : 800; + color : white; + text-align : center; + background-color : transparent; + border : 1px solid @blue; + outline : none; + } + .charCount { + display : inline-block; + margin-left : 8px; + color : #666666; + text-align : right; + vertical-align : bottom; + &.max { color : @red; } + } + } + &.brewTitle { + flex-grow : 1; + font-size : 12px; + font-weight : 800; + color : white; + text-align : center; + text-transform : initial; + background-color : transparent; + } + // "The Homebrewery" logo + &.homebrewLogo { + .animate(color); + font-family : 'CodeBold'; + font-size : 12px; + color : white; + div { + margin-top : 2px; + margin-bottom : -2px; + } + &:hover { color : @blue; } + } + &.metadata { + position : relative; + display : flex; + flex-grow : 1; + align-items : center; + height : 100%; + padding : 0; + i { margin-right : 10px;} + .window { + position : absolute; + bottom : 0; + left : 50%; + z-index : -1; + display : flex; + flex-flow : row wrap; + align-content : baseline; + justify-content : flex-start; + width : 440px; + max-height : ~"calc(100vh - 28px)"; + padding : 0 10px 5px; + margin : 0 auto; + background-color : #333333; + border : 3px solid #444444; + border-top : unset; + border-radius : 0 0 5px 5px; + box-shadow : inset 0 7px 9px -7px #111111; + transition : transform 0.4s, opacity 0.4s; + &.active { + opacity : 1; + transform : translateX(-50%) translateY(100%); + } + &.inactive { + opacity : 0; + transform : translateX(-50%) translateY(0%); + } + .row { + display : flex; + flex-flow : row wrap; + width : 100%; + h4 { + box-sizing : border-box; + display : block; + flex-basis : 20%; + flex-grow : 1; + min-width : 76px; + padding : 5px 0; + color : #BBBBBB; + text-align : center; + } + p { + flex-basis : 80%; + flex-grow : 1; + padding : 5px 0; + font-family : 'Open Sans', sans-serif; + font-size : 10px; + font-weight : normal; + text-transform : initial; + .tag { + display : inline-block; + padding : 2px; + margin : 2px 2px; + background-color : #444444; + border : 2px solid grey; + border-radius : 5px; + } + a.userPageLink { + color : white; + text-decoration : none; + &:hover { text-decoration : underline; } + } + } + &:nth-of-type(even) { background-color : #555555; } + } + } + } + &.warning { + position : relative; + color : white; + background-color : @orange; + &:hover > .dropdown { visibility : visible; } + .dropdown { + position : absolute; + top : 28px; + left : 0; + z-index : 10000; + box-sizing : border-box; + display : block; + width : 100%; + padding : 13px 5px; + text-align : center; + visibility : hidden; + background-color : #333333; + } + } + &.account { + min-width : 100px; + &.username { text-transform : none;} + } + } + .navDropdownContainer { + position : relative; + .navDropdown { + position : absolute; + top : 28px; + left : 0px; + z-index : 10000; + width : 100%; + max-height : calc(100vh - 28px); + overflow : hidden auto; + .navItem { + position : relative; + display : block; + width : 100%; + padding : 8px 5px; + border : 1px solid #888888; + border-bottom : 0; + animation-name : glideDropDown; + animation-duration : 0.4s; + } + } + &.recent { + position : relative; + .navDropdown .navItem { + #backgroundColorsHover; + .animate(background-color); + position : relative; + box-sizing : border-box; + display : block; + max-height : ~"calc(100vh - 28px)"; // I don't think is correct syntax, but leaving it in for now... (Gazook89) + padding : 8px 5px 13px; + overflow : hidden auto; + color : white; + text-decoration : none; + background-color : #333333; + border-top : 1px solid #888888; + scrollbar-color : #666666 #333333; + scrollbar-width : thin; + .clear { + position : absolute; + top : 50%; + right : 0; + display : none; + width : 20px; + height : 100%; + background-color : #333333; + border-radius : 3px; + opacity : 70%; + transform : translateY(-50%); + &:hover { opacity : 100%; } + i { + width : 100%; + height : 100%; + margin : 0; + font-size : 10px; + text-align : center; + } + } + &:hover { + background-color : @blue; + .clear { + display : grid; + place-content : center; + } + } + .title { + display : inline-block; + width : 100%; + overflow : hidden auto; + text-overflow : ellipsis; + white-space : nowrap; + } + .time { + position : absolute; + right : 2px; + bottom : 2px; + font-size : 0.7em; + color : #888888; + } + &.header { + box-sizing : border-box; + display : block; + padding : 5px 0; + color : #BBBBBB; + text-align : center; + background-color : #333333; + border-top : 1px solid #888888; + &:nth-of-type(1) { background-color : darken(@teal, 20%); } + &:nth-of-type(2) { background-color : darken(@purple, 30%); } + } + } + } } } } - .brewTitle.navItem { - font-size : 12px; - font-weight : 800; - height : 100%; - text-align : center; - text-transform : initial; - color : white; - background-color : transparent; - flex-grow : 1; - } + + // this should likely be refactored into .navDropdownContainer .save-menu { - .dropdown { - z-index : 1000; - } + .dropdown { z-index : 1000; } .navItem i.fa-power-off { color : red; &.active { @@ -68,205 +342,9 @@ } } } - .patreon.navItem { - border-right : 1px solid #666; - border-left : 1px solid #666; - &:hover i { - color : red; - } - i { - .animate(color); - animation-name : pinkColoring; - animation-duration : 2s; - color : pink; - } - } - .recent.navDropdownContainer { - position : relative; - .navDropdown .navItem { - overflow : hidden auto; - max-height : ~"calc(100vh - 28px)"; - scrollbar-color : #666 #333; - scrollbar-width : thin; - - #backgroundColorsHover; - .animate(background-color); - position : relative; - display : block; - overflow : clip; - box-sizing : border-box; - padding : 8px 5px 13px; - text-decoration : none; - color : white; - border-top : 1px solid #888; - background-color : #333; - .clear { - position : absolute; - top : 50%; - right : 0; - display : none; - width : 20px; - height : 100%; - transform : translateY(-50%); - opacity : 70%; - border-radius : 3px; - background-color : #333; - &:hover { - opacity : 100%; - } - i { - font-size : 10px; - width : 100%; - height : 100%; - margin : 0; - text-align : center; - } - } - &:hover { - background-color : @blue; - .clear { - display : grid; - place-content : center; - } - } - .title { - display : inline-block; - overflow : hidden; - width : 100%; - white-space : nowrap; - text-overflow : ellipsis; - } - .time { - font-size : 0.7em; - position : absolute; - right : 2px; - bottom : 2px; - color : #888; - } - &.header { - display : block; - box-sizing : border-box; - padding : 5px 0; - text-align : center; - color : #BBB; - border-top : 1px solid #888; - background-color : #333; - &:nth-of-type(1) { - background-color : darken(@teal, 20%); - } - &:nth-of-type(2) { - background-color : darken(@purple, 30%); - } - } - } - } - .metadata.navItem { - position : relative; - display : flex; - align-items : center; - height : 100%; - padding : 0; - flex-grow : 1; - i { - margin-right : 10px; - } - .window { - position : absolute; - z-index : -1; - bottom : 0; - left : 50%; - display : flex; - justify-content : flex-start; - width : 440px; - max-height : ~"calc(100vh - 28px)"; - margin : 0 auto; - padding : 0 10px 5px; - transition : transform 0.4s, opacity 0.4s; - border : 3px solid #444; - border-top : unset; - border-radius : 0 0 5px 5px; - background-color : #333; - box-shadow : inset 0 7px 9px -7px #111; - flex-flow : row wrap; - align-content : baseline; - &.active { - transform : translateX(-50%) translateY(100%); - opacity : 1; - } - &.inactive { - transform : translateX(-50%) translateY(0%); - opacity : 0; - } - .row { - display : flex; - width : 100%; - flex-flow : row wrap; - h4 { - display : block; - box-sizing : border-box; - min-width : 76px; - padding : 5px 0; - text-align : center; - color : #BBB; - flex-basis : 20%; - flex-grow : 1; - } - p { - font-family : "Open Sans", sans-serif; - font-size : 10px; - font-weight : normal; - padding : 5px 0; - text-transform : initial; - flex-basis : 80%; - flex-grow : 1; - .tag { - display : inline-block; - margin : 2px 2px; - padding : 2px; - border : 2px solid grey; - border-radius : 5px; - background-color : #444; - } - a.userPageLink { - text-decoration : none; - color : white; - &:hover { - text-decoration : underline; - } - } - } - &:nth-of-type(even) { - background-color : #555; - } - } - } - } - .warning.navItem { - position : relative; - color : white; - background-color : @orange; - &:hover > .dropdown { - visibility : visible; - } - .dropdown { - position : absolute; - z-index : 10000; - top : 28px; - left : 0; - display : block; - visibility : hidden; - box-sizing : border-box; - width : 100%; - padding : 13px 5px; - text-align : center; - background-color : #333; - } - } - .account.navItem { - min-width : 100px; - } - .account.username.navItem { - text-transform : none; - } + + + + } diff --git a/shared/naturalcrit/nav/nav.jsx b/shared/naturalcrit/nav/nav.jsx index 3c7fd7c5e..04b7037dd 100644 --- a/shared/naturalcrit/nav/nav.jsx +++ b/shared/naturalcrit/nav/nav.jsx @@ -1,4 +1,4 @@ -require('./nav.less'); +require('client/homebrew/navbar/navbar.less'); const React = require('react'); const { useState, useRef, useEffect } = React; const createClass = require('create-react-class'); diff --git a/shared/naturalcrit/nav/nav.less b/shared/naturalcrit/nav/nav.less deleted file mode 100644 index e3a58a33a..000000000 --- a/shared/naturalcrit/nav/nav.less +++ /dev/null @@ -1,97 +0,0 @@ -@import '../styles/colors'; -@keyframes glideDropDown { - 0% {transform : translate(0px, -100%); - opacity : 0; - background-color: #333;} - 100% {transform : translate(0px, 0px); - opacity : 1; - background-color: #333;} -} -nav{ - background-color : #333; - .navContent{ - position : relative; - display : flex; - justify-content : space-between; - z-index : 2; - } - .navSection{ - display : flex; - align-items : center; - } - .navLogo{ - display : block; - margin-top : 0px; - margin-right : 8px; - margin-left : 8px; - color : white; - text-decoration : none; - &:hover{ - .name{ color : @orange; } - svg{ fill : @orange } - } - svg{ - height : 13px; - margin-right : 0.2em; - cursor : pointer; - fill : white; - } - span.name{ - font-family : 'CodeLight'; - font-size : 15px; - span.crit{ - font-family : 'CodeBold'; - } - small{ - font-family : 'Open Sans'; - font-size : 0.3em; - font-weight : 800; - text-transform : uppercase; - } - } - } - .navItem{ - #backgroundColorsHover; - .animate(background-color); - padding : 8px 12px; - cursor : pointer; - background-color : #333; - font-size : 10px; - font-weight : 800; - color : white; - text-decoration : none; - text-transform : uppercase; - line-height : 13px; - i{ - margin-left : 5px; - font-size : 13px; - float : right; - } - } - .navSection:last-child .navItem{ - border-left : 1px solid #666; - } - .navDropdownContainer{ - position: relative; - .navDropdown { - position : absolute; - top : 28px; - left : 0px; - z-index : 10000; - width : 100%; - overflow : hidden auto; - max-height : calc(100vh - 28px); - .navItem{ - animation-name: glideDropDown; - animation-duration: 0.4s; - position : relative; - display : block; - width : 100%; - vertical-align : middle; - padding : 8px 5px; - border : 1px solid #888; - border-bottom : 0; - } - } - } -} From 46a0a66fb6ebdf53f74a5bb039463b0835f9c2fe Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Thu, 22 Feb 2024 19:20:42 +1300 Subject: [PATCH 062/140] Use currentColor once instead of multiple border-color declarations --- .../homebrew/pages/basePages/listPage/brewItem/brewItem.less | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less index 46a347b3e..9bee4e5eb 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less @@ -63,6 +63,7 @@ white-space: nowrap; display: inline-block; font-weight: bold; + border-color: currentColor; cursor : pointer; &:before { font-family: 'Font Awesome 5 Free'; @@ -72,7 +73,6 @@ &.type { background-color: #0080003b; color: #008000; - border-color: #008000; &:before{ content: '\f0ad'; } @@ -80,7 +80,6 @@ &.group { background-color: #5050503b; color: #000000; - border-color: #000000; &:before{ content: '\f500'; } @@ -88,7 +87,6 @@ &.meta { background-color: #0000803b; color: #000080; - border-color: #000080; &:before{ content: '\f05a'; } @@ -96,7 +94,6 @@ &.system { background-color: #8000003b; color: #800000; - border-color: #800000; &:before{ content: '\f518'; } From 43209186ee52cf71bb9150e05ab8237d6334def9 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Thu, 22 Feb 2024 19:27:17 +1300 Subject: [PATCH 063/140] Remove obsolete styling from tags-container --- client/homebrew/pages/basePages/listPage/listPage.less | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.less b/client/homebrew/pages/basePages/listPage/listPage.less index bf2c89e83..0aa4a278d 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.less +++ b/client/homebrew/pages/basePages/listPage/listPage.less @@ -126,18 +126,11 @@ } .tags-container { - font-family : 'Open Sans', sans-serif; - position : sticky; - top : 0; - left : 0; - width : 100%; height : 30px; background-color : #555; border-top : 1px solid #666; - border-bottom : 1px solid #666; + border-bottom : 1px solid #666; color : white; - text-align : center; - z-index : 1; display : flex; justify-content : center; align-items : center; From ad5ad05b7baeb309e1af36c900b0cfa05f692ef8 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Thu, 22 Feb 2024 20:02:09 +1300 Subject: [PATCH 064/140] Simplify syntax --- themes/fonts/5e/dicefont.less | 186 +++++++++++++++++----------------- 1 file changed, 93 insertions(+), 93 deletions(-) diff --git a/themes/fonts/5e/dicefont.less b/themes/fonts/5e/dicefont.less index 031fcc600..887a7c27c 100644 --- a/themes/fonts/5e/dicefont.less +++ b/themes/fonts/5e/dicefont.less @@ -22,97 +22,97 @@ -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; font-smooth: antialiased; - &.df-F:before { content: '\f190'; } - &.df-F-minus:before { content: '\f191'; } - &.df-F-plus:before { content: '\f192'; } - &.df-F-zero:before { content: '\f193'; } - &.df-d10:before { content: '\f194'; } - &.df-d10-0:before { content: '\f100'; } - &.df-d10-1:before { content: '\f101'; } - &.df-d10-10:before { content: '\f102'; } - &.df-d10-2:before { content: '\f103'; } - &.df-d10-3:before { content: '\f104'; } - &.df-d10-4:before { content: '\f105'; } - &.df-d10-5:before { content: '\f106'; } - &.df-d10-6:before { content: '\f107'; } - &.df-d10-7:before { content: '\f108'; } - &.df-d10-8:before { content: '\f109'; } - &.df-d10-9:before { content: '\f10a'; } - &.df-d12:before { content: '\f195'; } - &.df-d12-1:before { content: '\f10b'; } - &.df-d12-10:before { content: '\f10c'; } - &.df-d12-11:before { content: '\f10d'; } - &.df-d12-12:before { content: '\f10e'; } - &.df-d12-2:before { content: '\f10f'; } - &.df-d12-3:before { content: '\f110'; } - &.df-d12-4:before { content: '\f111'; } - &.df-d12-5:before { content: '\f112'; } - &.df-d12-6:before { content: '\f113'; } - &.df-d12-7:before { content: '\f114'; } - &.df-d12-8:before { content: '\f115'; } - &.df-d12-9:before { content: '\f116'; } - &.df-d2:before { content: '\f196'; } - &.df-d2-1:before { content: '\f117'; } - &.df-d2-2:before { content: '\f118'; } - &.df-d20:before { content: '\f197'; } - &.df-d20-1:before { content: '\f119'; } - &.df-d20-10:before { content: '\f11a'; } - &.df-d20-11:before { content: '\f11b'; } - &.df-d20-12:before { content: '\f11c'; } - &.df-d20-13:before { content: '\f11d'; } - &.df-d20-14:before { content: '\f11e'; } - &.df-d20-15:before { content: '\f11f'; } - &.df-d20-16:before { content: '\f120'; } - &.df-d20-17:before { content: '\f121'; } - &.df-d20-18:before { content: '\f122'; } - &.df-d20-19:before { content: '\f123'; } - &.df-d20-2:before { content: '\f124'; } - &.df-d20-20:before { content: '\f125'; } - &.df-d20-3:before { content: '\f126'; } - &.df-d20-4:before { content: '\f127'; } - &.df-d20-5:before { content: '\f128'; } - &.df-d20-6:before { content: '\f129'; } - &.df-d20-7:before { content: '\f12a'; } - &.df-d20-8:before { content: '\f12b'; } - &.df-d20-9:before { content: '\f12c'; } - &.df-d4:before { content: '\f198'; } - &.df-d4-1:before { content: '\f12d'; } - &.df-d4-2:before { content: '\f12e'; } - &.df-d4-3:before { content: '\f12f'; } - &.df-d4-4:before { content: '\f130'; } - &.df-d6:before { content: '\f199'; } - &.df-d6-1:before { content: '\f131'; } - &.df-d6-2:before { content: '\f132'; } - &.df-d6-3:before { content: '\f133'; } - &.df-d6-4:before { content: '\f134'; } - &.df-d6-5:before { content: '\f135'; } - &.df-d6-6:before { content: '\f136'; } - &.df-d8:before { content: '\f19a'; } - &.df-d8-1:before { content: '\f137'; } - &.df-d8-2:before { content: '\f138'; } - &.df-d8-3:before { content: '\f139'; } - &.df-d8-4:before { content: '\f13a'; } - &.df-d8-5:before { content: '\f13b'; } - &.df-d8-6:before { content: '\f13c'; } - &.df-d8-7:before { content: '\f13d'; } - &.df-d8-8:before { content: '\f13e'; } - &.df-dot-d6:before { content: '\f19b'; } - &.df-dot-d6-1:before { content: '\f13f'; } - &.df-dot-d6-2:before { content: '\f140'; } - &.df-dot-d6-3:before { content: '\f141'; } - &.df-dot-d6-4:before { content: '\f142'; } - &.df-dot-d6-5:before { content: '\f143'; } - &.df-dot-d6-6:before { content: '\f18f'; } - &.df-small-dot-d6-1:before { content: '\f183'; } - &.df-small-dot-d6-2:before { content: '\f184'; } - &.df-small-dot-d6-3:before { content: '\f185'; } - &.df-small-dot-d6-4:before { content: '\f186'; } - &.df-small-dot-d6-5:before { content: '\f187'; } - &.df-small-dot-d6-6:before { content: '\f188'; } - &.df-solid-small-dot-d6-1:before { content: '\f189'; } - &.df-solid-small-dot-d6-2:before { content: '\f18a'; } - &.df-solid-small-dot-d6-3:before { content: '\f18b'; } - &.df-solid-small-dot-d6-4:before { content: '\f18c'; } - &.df-solid-small-dot-d6-5:before { content: '\f18d'; } - &.df-solid-small-dot-d6-6:before { content: '\f18e'; } + &.F:before { content: '\f190'; } + &.F-minus:before { content: '\f191'; } + &.F-plus:before { content: '\f192'; } + &.F-zero:before { content: '\f193'; } + &.d10:before { content: '\f194'; } + &.d10-0:before { content: '\f100'; } + &.d10-1:before { content: '\f101'; } + &.d10-10:before { content: '\f102'; } + &.d10-2:before { content: '\f103'; } + &.d10-3:before { content: '\f104'; } + &.d10-4:before { content: '\f105'; } + &.d10-5:before { content: '\f106'; } + &.d10-6:before { content: '\f107'; } + &.d10-7:before { content: '\f108'; } + &.d10-8:before { content: '\f109'; } + &.d10-9:before { content: '\f10a'; } + &.d12:before { content: '\f195'; } + &.d12-1:before { content: '\f10b'; } + &.d12-10:before { content: '\f10c'; } + &.d12-11:before { content: '\f10d'; } + &.d12-12:before { content: '\f10e'; } + &.d12-2:before { content: '\f10f'; } + &.d12-3:before { content: '\f110'; } + &.d12-4:before { content: '\f111'; } + &.d12-5:before { content: '\f112'; } + &.d12-6:before { content: '\f113'; } + &.d12-7:before { content: '\f114'; } + &.d12-8:before { content: '\f115'; } + &.d12-9:before { content: '\f116'; } + &.d2:before { content: '\f196'; } + &.d2-1:before { content: '\f117'; } + &.d2-2:before { content: '\f118'; } + &.d20:before { content: '\f197'; } + &.d20-1:before { content: '\f119'; } + &.d20-10:before { content: '\f11a'; } + &.d20-11:before { content: '\f11b'; } + &.d20-12:before { content: '\f11c'; } + &.d20-13:before { content: '\f11d'; } + &.d20-14:before { content: '\f11e'; } + &.d20-15:before { content: '\f11f'; } + &.d20-16:before { content: '\f120'; } + &.d20-17:before { content: '\f121'; } + &.d20-18:before { content: '\f122'; } + &.d20-19:before { content: '\f123'; } + &.d20-2:before { content: '\f124'; } + &.d20-20:before { content: '\f125'; } + &.d20-3:before { content: '\f126'; } + &.d20-4:before { content: '\f127'; } + &.d20-5:before { content: '\f128'; } + &.d20-6:before { content: '\f129'; } + &.d20-7:before { content: '\f12a'; } + &.d20-8:before { content: '\f12b'; } + &.d20-9:before { content: '\f12c'; } + &.d4:before { content: '\f198'; } + &.d4-1:before { content: '\f12d'; } + &.d4-2:before { content: '\f12e'; } + &.d4-3:before { content: '\f12f'; } + &.d4-4:before { content: '\f130'; } + &.d6:before { content: '\f199'; } + &.d6-1:before { content: '\f131'; } + &.d6-2:before { content: '\f132'; } + &.d6-3:before { content: '\f133'; } + &.d6-4:before { content: '\f134'; } + &.d6-5:before { content: '\f135'; } + &.d6-6:before { content: '\f136'; } + &.d8:before { content: '\f19a'; } + &.d8-1:before { content: '\f137'; } + &.d8-2:before { content: '\f138'; } + &.d8-3:before { content: '\f139'; } + &.d8-4:before { content: '\f13a'; } + &.d8-5:before { content: '\f13b'; } + &.d8-6:before { content: '\f13c'; } + &.d8-7:before { content: '\f13d'; } + &.d8-8:before { content: '\f13e'; } + &.dot-d6:before { content: '\f19b'; } + &.dot-d6-1:before { content: '\f13f'; } + &.dot-d6-2:before { content: '\f140'; } + &.dot-d6-3:before { content: '\f141'; } + &.dot-d6-4:before { content: '\f142'; } + &.dot-d6-5:before { content: '\f143'; } + &.dot-d6-6:before { content: '\f18f'; } + &.small-dot-d6-1:before { content: '\f183'; } + &.small-dot-d6-2:before { content: '\f184'; } + &.small-dot-d6-3:before { content: '\f185'; } + &.small-dot-d6-4:before { content: '\f186'; } + &.small-dot-d6-5:before { content: '\f187'; } + &.small-dot-d6-6:before { content: '\f188'; } + &.solid-small-dot-d6-1:before { content: '\f189'; } + &.solid-small-dot-d6-2:before { content: '\f18a'; } + &.solid-small-dot-d6-3:before { content: '\f18b'; } + &.solid-small-dot-d6-4:before { content: '\f18c'; } + &.solid-small-dot-d6-5:before { content: '\f18d'; } + &.solid-small-dot-d6-6:before { content: '\f18e'; } } \ No newline at end of file From 7d755fe2a349f646db9dafa4339a8155836f3fe8 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Fri, 23 Feb 2024 11:35:57 -0600 Subject: [PATCH 065/140] Fix syntax highlighting on sub and superscript I did not test this very robustly, it seems. --- client/homebrew/editor/editor.jsx | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index d79d2ce4e..3fa936ab7 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -160,21 +160,25 @@ const Editor = createClass({ } } - // Superscript - if(line.includes('\^')) { - const regex = /\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^/g; - let match; - while ((match = regex.exec(line)) != null) { - codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[1]) - 1 }, { line: lineNumber, ch: line.indexOf(match[1]) + match[1].length + 1 }, { className: 'superscript' }); - } - } - // Subscript if(line.includes('^^')) { + //const regex = /\^\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^\^/g; const regex = /\^\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^\^/g; let match; while ((match = regex.exec(line)) != null) { - codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[1]) - 2 }, { line: lineNumber, ch: line.indexOf(match[1]) + match[1].length + 2 }, { className: 'subscript' }); + if(line.indexOf(match[0]) - 1 != '^') { + codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[0]) }, { line: lineNumber, ch: line.indexOf(match[0]) + match[0].length }, { className: 'subscript' }); + } + } + } + + // Superscript + if(line.includes('^')) { + //const regex = /\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^/g; + const regex = /\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^/g; + let match; + while ((match = regex.exec(line)) != null) { + codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[0]) }, { line: lineNumber, ch: line.indexOf(match[0]) + match[0].length }, { className: 'superscript' }); } } From bf874c55af870b4d911fb71ad23ada036314c9f6 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Fri, 23 Feb 2024 14:46:13 -0600 Subject: [PATCH 066/140] Add a column break before the Tables header on page 2 Small formatting fix. --- client/homebrew/pages/homePage/welcome_msg.md | 1 + 1 file changed, 1 insertion(+) diff --git a/client/homebrew/pages/homePage/welcome_msg.md b/client/homebrew/pages/homePage/welcome_msg.md index 9df769903..c7d46149e 100644 --- a/client/homebrew/pages/homePage/welcome_msg.md +++ b/client/homebrew/pages/homePage/welcome_msg.md @@ -143,6 +143,7 @@ Much nicer than `




` ### Column Breaks Column and page breaks with `\column` and `\page`. +\column ### Tables Tables now allow column & row spanning between cells. This is included in some updated snippets, but a simplified example is given below. From da8836ba9911fe0df4a0e2ce36ca22cd96b5c31d Mon Sep 17 00:00:00 2001 From: Rodrigo Kuerten Date: Fri, 23 Feb 2024 22:07:28 -0300 Subject: [PATCH 067/140] Added new theme --- themes/codeMirror/customThemes/darkvision.css | 111 ++++++++++++++++++ themes/codeMirror/editorThemes.json | 1 + 2 files changed, 112 insertions(+) create mode 100644 themes/codeMirror/customThemes/darkvision.css diff --git a/themes/codeMirror/customThemes/darkvision.css b/themes/codeMirror/customThemes/darkvision.css new file mode 100644 index 000000000..6662202a2 --- /dev/null +++ b/themes/codeMirror/customThemes/darkvision.css @@ -0,0 +1,111 @@ +.CodeMirror { + background: #0C0C0C; + color: #B9BDB6; +} + +/* Brew BG */ +.brewRenderer { + background-color: #0C0C0C; +} + +/* Blinking cursor and selection */ +.cm-s-darkvision .CodeMirror-cursor { + border-left: 1px solid #B9BDB6; +} +.cm-s-darkvision .CodeMirror-selected { + background: #E0E8FF40; +} + +/* Line number stuff */ +.cm-s-darkvision .CodeMirror-gutter-elt { + color: #81969A; +} +.cm-s-darkvision .CodeMirror-linenumber { + background-color: #0C0C0C; +} +.cm-s-darkvision .CodeMirror-gutter { + background-color: #0C0C0C; +} + +/* column splits */ +.cm-s-darkvision .editor .codeEditor .columnSplit { + font-style: italic; + color: inherit; + background-color:#1F5763; + border-bottom: #299 solid 1px; +} + +/* # headings */ +.cm-s-darkvision .cm-header { + color: #C51B1B; + -webkit-text-stroke-width: 0.1px; +} +/* bold points */ +.cm-s-darkvision .cm-strong { + font-weight: bold; + color: #309DD2; +} +/* Link headings */ +.cm-s-darkvision .cm-link { + color: #DD6300; +} +/* links */ +.cm-s-darkvision .cm-string { + color: #5CE638; +} +/*@import*/ +.cm-s-darkvision .cm-def { + color:#2986CC; +} +/* Bullets and such */ +.cm-s-darkvision .cm-variable-2 { + color: #3CBF30; +} +/* blocks */ +.editor .codeEditor .block:not(.cm-comment) { + color: magenta !important; +} + +/* definition lists */ +.editor .codeEditor .define.definition { + color: #FFAA3E !important; +} +.editor .codeEditor .define.term { + color: #7290d9 !important; +} + +/* Tags (divs) */ +.cm-s-darkvision .cm-tag { + color: #E3FF00; +} +.cm-s-darkvision .cm-attribute { + color: #E3FF00; +} +.cm-s-darkvision .cm-atom { + color:#CF7EA9; +} +.cm-s-darkvision .cm-qualifier { + color:#EE1919; +} +.cm-s-darkvision .cm-comment { + color:#BBC700; +} +.cm-s-darkvision .cm-keyword { + color:#CC66FF; +} +.cm-s-darkvision .cm-property.cm-error { + color:#C50202; +} +.cm-s-darkvision .CodeMirror-foldmarker { + color:#F0FF00; +} + +/* New page */ +.editor .codeEditor .pageLine { + background: #000; + color:#000; + border-bottom: 1px solid #FFF; +} +.cm-s-darkvision .cm-builtin { + color:#FFF; +} \ No newline at end of file diff --git a/themes/codeMirror/editorThemes.json b/themes/codeMirror/editorThemes.json index 384ce4602..679c6874b 100644 --- a/themes/codeMirror/editorThemes.json +++ b/themes/codeMirror/editorThemes.json @@ -16,6 +16,7 @@ "colorforth", "darcula", "darkbrewery-v301", +"darkvision", "dracula", "duotone-dark", "duotone-light", From a2b97abb2ed0674471857ba91d810c01e4b06819 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 25 Feb 2024 11:47:34 +1300 Subject: [PATCH 068/140] Remove missed console.log debugging lines --- client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx | 1 - client/homebrew/pages/basePages/listPage/listPage.jsx | 2 -- 2 files changed, 3 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index e21f6e8a3..869fb3044 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -46,7 +46,6 @@ const BrewItem = createClass({ }, updateFilter : function(type, term){ - // console.log(`BrewItem: TYPE: ${type}; TERM: ${term}`); this.props.updateListFilter(type, term); }, diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 261d6ec6b..096c6bbb7 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -130,7 +130,6 @@ const ListPage = createClass({ }, handleFilterTextChange : function(e){ - // console.log(e); this.setState({ filterString : e.target.value, }); @@ -194,7 +193,6 @@ const ListPage = createClass({ renderTagsOptions : function(){ if(this.state.filterTags?.length == 0) return; - console.log('renderTags'); return
{_.map(this.state.filterTags, (tag, idx)=>{ const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/); From 254b0852ca993d0dcfeafb596cca4a6a543bd789 Mon Sep 17 00:00:00 2001 From: Rodrigo Kuerten Date: Sat, 24 Feb 2024 20:57:26 -0300 Subject: [PATCH 069/140] Cleaned up css, added missing variables --- themes/codeMirror/customThemes/darkvision.css | 206 +++++++++--------- 1 file changed, 108 insertions(+), 98 deletions(-) diff --git a/themes/codeMirror/customThemes/darkvision.css b/themes/codeMirror/customThemes/darkvision.css index 6662202a2..4c74d105e 100644 --- a/themes/codeMirror/customThemes/darkvision.css +++ b/themes/codeMirror/customThemes/darkvision.css @@ -8,104 +8,114 @@ background-color: #0C0C0C; } -/* Blinking cursor and selection */ -.cm-s-darkvision .CodeMirror-cursor { - border-left: 1px solid #B9BDB6; -} -.cm-s-darkvision .CodeMirror-selected { - background: #E0E8FF40; +.cm-s-darkvision { + /* Blinking cursor and selection */ + .CodeMirror-cursor { + border-left: 1px solid #B9BDB6; + } + .CodeMirror-selected { + background: #E0E8FF40; + } + + /* Line number stuff */ + .CodeMirror-gutter-elt { + color: #81969A; + } + .CodeMirror-linenumber { + background-color: #0C0C0C; + } + .CodeMirror-gutter { + background-color: #0C0C0C; + } + + /* column splits */ + .editor .codeEditor .columnSplit { + font-style: italic; + color: inherit; + background-color:#1F5763; + border-bottom: #299 solid 1px; + } + + /* # headings */ + .cm-header { + color: #C51B1B; + -webkit-text-stroke-width: 0.1px; + } + /* bold points */ + .cm-strong { + font-weight: bold; + color: #309DD2; + } + /* Link headings */ + .cm-link { + color: #DD6300; + } + /* links */ + .cm-string { + color: #5CE638; + } + /*@import*/ + .cm-def { + color: #2986CC; + } + /* Bullets and such */ + .cm-variable-2 { + color: #3CBF30; + } + + /* Tags (divs) */ + .cm-tag { + color: #E3FF00; + } + .cm-attribute { + color: #E3FF00; + } + .cm-atom { + color: #CF7EA9; + } + .cm-qualifier { + color: #EE1919; + } + .cm-comment { + color: #BBC700; + } + .cm-keyword { + color: #CC66FF; + } + .cm-property { + color: aqua; + } + .cm-error { + color: #C50202; + } + .CodeMirror-foldmarker { + color: #F0FF00; + } + /* New page */ + .cm-builtin { + color: #FFF; + } } -/* Line number stuff */ -.cm-s-darkvision .CodeMirror-gutter-elt { - color: #81969A; +.editor .codeEditor { + /* blocks */ + .block:not(.cm-comment) { + color: magenta; + } + /* definition lists */ + .define.definition { + color: #FFAA3E; + } + .define.term { + color: #7290d9; + } + .define:not(.term):not(.definition) { + background: #333; + } + /* New page */ + .pageLine { + background: #000; + color: #000; + border-bottom: 1px solid #FFF; + } } -.cm-s-darkvision .CodeMirror-linenumber { - background-color: #0C0C0C; -} -.cm-s-darkvision .CodeMirror-gutter { - background-color: #0C0C0C; -} - -/* column splits */ -.cm-s-darkvision .editor .codeEditor .columnSplit { - font-style: italic; - color: inherit; - background-color:#1F5763; - border-bottom: #299 solid 1px; -} - -/* # headings */ -.cm-s-darkvision .cm-header { - color: #C51B1B; - -webkit-text-stroke-width: 0.1px; -} -/* bold points */ -.cm-s-darkvision .cm-strong { - font-weight: bold; - color: #309DD2; -} -/* Link headings */ -.cm-s-darkvision .cm-link { - color: #DD6300; -} -/* links */ -.cm-s-darkvision .cm-string { - color: #5CE638; -} -/*@import*/ -.cm-s-darkvision .cm-def { - color:#2986CC; -} -/* Bullets and such */ -.cm-s-darkvision .cm-variable-2 { - color: #3CBF30; -} -/* blocks */ -.editor .codeEditor .block:not(.cm-comment) { - color: magenta !important; -} - -/* definition lists */ -.editor .codeEditor .define.definition { - color: #FFAA3E !important; -} -.editor .codeEditor .define.term { - color: #7290d9 !important; -} - -/* Tags (divs) */ -.cm-s-darkvision .cm-tag { - color: #E3FF00; -} -.cm-s-darkvision .cm-attribute { - color: #E3FF00; -} -.cm-s-darkvision .cm-atom { - color:#CF7EA9; -} -.cm-s-darkvision .cm-qualifier { - color:#EE1919; -} -.cm-s-darkvision .cm-comment { - color:#BBC700; -} -.cm-s-darkvision .cm-keyword { - color:#CC66FF; -} -.cm-s-darkvision .cm-property.cm-error { - color:#C50202; -} -.cm-s-darkvision .CodeMirror-foldmarker { - color:#F0FF00; -} - -/* New page */ -.editor .codeEditor .pageLine { - background: #000; - color:#000; - border-bottom: 1px solid #FFF; -} -.cm-s-darkvision .cm-builtin { - color:#FFF; -} \ No newline at end of file From 802da2920b53cd1aa9b616ee463c7dc80a088013 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 25 Feb 2024 22:28:44 +1300 Subject: [PATCH 070/140] Initial functionality pass --- client/homebrew/pages/errorPage/errors/errorIndex.js | 10 ++++++++++ server/homebrew.api.js | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/client/homebrew/pages/errorPage/errors/errorIndex.js b/client/homebrew/pages/errorPage/errors/errorIndex.js index c2de04142..7c7a3ae7f 100644 --- a/client/homebrew/pages/errorPage/errors/errorIndex.js +++ b/client/homebrew/pages/errorPage/errors/errorIndex.js @@ -122,6 +122,16 @@ const errorIndex = (props)=>{ An error occurred while attempting to remove the user from the Homebrewery document author list! **Brew ID:** ${props.brew.brewId}`, + + // Brew locked by Administrators error + '100' : dedent` + ## This brew has been locked. + + Please contact the Administrators to unlock this document. + + **Brew ID:** ${props.brew.brewId} + + **Brew Title:** ${props.brew.brewTitle}`, }; }; diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 20e13ec71..e55bf20a0 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -54,6 +54,13 @@ const api = { }); stub = stub?.toObject(); + if(stub.lock?.state) { + // State 1 : Locked for everything + // State 2 : Edit only + if(stub.lock.state == 1 || (stub.lock.state == 2 && accessType != 'edit')) + throw { HBErrorCode: '100', code: stub.lock.code, message: stub.lock.message, brewId: accessType === 'edit' ? stub.editId : stub.shareId, brewTitle: stub.title }; + } + // If there is a google id, try to find the google brew if(!stubOnly && (googleId || stub?.googleId)) { let googleError; From 05f88dfd0070f08109a52f68dcc7da6904921730 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Sun, 25 Feb 2024 09:19:31 -0600 Subject: [PATCH 071/140] Extended Definition List cleanup Remove redundant inlineBlock extension Add missing trim on multiline definitions Fix editor regex for colon terminated terms. --- changelog.md | 44 -------------------------------------------- 1 file changed, 44 deletions(-) diff --git a/changelog.md b/changelog.md index 8bc8719e7..e86c2ea0f 100644 --- a/changelog.md +++ b/changelog.md @@ -84,49 +84,6 @@ pre { ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). -<<<<<<< HEAD -### Tuesday 02/07/2024 - -{{ taskList - -##### abquintic - -* [x] Add user requested feature for definition lists with multiple definitions. - -This implements issue [#2340](https://github.com/naturalcrit/homebrewery/issues/2340) by extending the existing syntax pattern. - -Multiple Definition Description (\) terms must go on the following line with a blank line between definition sets. Additionally, Descriptions may be multi-line, if desired. Multi-line descriptions will be concatenated into a single Description on render. - -The previous, inline system has not been removed, however, the two forms may not be intermixed. - -``` -Dictionary Term -:: Definition One -:: Definition Two -:: Definition Three -``` -Example: -``` -Egg -::Came before the Chicken -::Python Packaging Format -::Over -Easy -isn't -``` - -Results: -``` -
-
Egg
-
Came before the Chicken
-
Python Packaging Format
-
Over Easy isn't
-
-``` -}} - -======= ### Wednesday 21/2/2024 - v3.11.0 {{taskList @@ -300,7 +257,6 @@ There are $[TableNum] tables in this document. *(note: final value of `$[TableNu \page ->>>>>>> master ### Friday 13/10/2023 - v3.10.0 {{taskList From 26263c0bf876397a339e60197546bf0821ffb4f3 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 26 Feb 2024 13:01:13 +1300 Subject: [PATCH 072/140] Remove unused function parameter `type` --- .../homebrew/pages/basePages/listPage/brewItem/brewItem.jsx | 2 +- client/homebrew/pages/basePages/listPage/listPage.jsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index 869fb3044..0369305d5 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -137,7 +137,7 @@ const BrewItem = createClass({ {brew.tags.map((tag, idx)=>{ const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/); - return {this.updateFilter('tag', tag);}}>{matches[2]}; + return {this.updateFilter(tag);}}>{matches[2]}; })}
: <> diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 096c6bbb7..2717152ec 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -137,7 +137,7 @@ const ListPage = createClass({ return; }, - updateListFilter : function(type, term){ + updateListFilter : function(term){ this.updateUrl(this.state.filterString, this.state.sortType, this.state.sortDir, term); }, @@ -196,7 +196,7 @@ const ListPage = createClass({ return
{_.map(this.state.filterTags, (tag, idx)=>{ const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/); - return {this.updateListFilter('tag', tag);}}>{matches[2]}; + return {this.updateListFilter(tag);}}>{matches[2]}; })}
; }, From 9d38c937b4d1d925ad4d67a038c941203a74225a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 03:43:17 +0000 Subject: [PATCH 073/140] Bump eslint from 8.56.0 to 8.57.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 34 +++++++++++++++++----------------- package.json | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 770ff6716..9f39b3bd5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,7 +48,7 @@ "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" }, "devDependencies": { - "eslint": "^8.56.0", + "eslint": "^8.57.0", "eslint-plugin-jest": "^27.9.0", "eslint-plugin-react": "^7.33.2", "jest": "^29.7.0", @@ -1958,9 +1958,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1978,13 +1978,13 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -2005,9 +2005,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { @@ -5588,16 +5588,16 @@ } }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", diff --git a/package.json b/package.json index 884d293ec..b44d1cc4d 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" }, "devDependencies": { - "eslint": "^8.56.0", + "eslint": "^8.57.0", "eslint-plugin-jest": "^27.9.0", "eslint-plugin-react": "^7.33.2", "jest": "^29.7.0", From f9d8344dbac3a23bcb1d6d3653add157d5120cd3 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 26 Feb 2024 21:16:37 +1300 Subject: [PATCH 074/140] Remove unnecessary function --- client/homebrew/pages/basePages/listPage/listPage.jsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 2717152ec..2385b4490 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -83,7 +83,7 @@ const ListPage = createClass({ if(!brews || !brews.length) return
No Brews.
; return _.map(brews, (brew, idx)=>{ - return ; + return { this.updateUrl(this.state.filterString, this.state.sortType, this.state.sortDir, tag); }}/>; }); }, @@ -137,10 +137,6 @@ const ListPage = createClass({ return; }, - updateListFilter : function(term){ - this.updateUrl(this.state.filterString, this.state.sortType, this.state.sortDir, term); - }, - updateUrl : function(filterTerm, sortType, sortDir, filterTag=''){ const url = new URL(window.location.href); const urlParams = new URLSearchParams(url.search); @@ -196,7 +192,7 @@ const ListPage = createClass({ return
{_.map(this.state.filterTags, (tag, idx)=>{ const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/); - return {this.updateListFilter(tag);}}>{matches[2]}; + return { this.updateUrl(this.state.filterString, this.state.sortType, this.state.sortDir, tag); }}>{matches[2]}; })}
; }, From 713865fb406e4347184aec6e14dffa4d54e958c3 Mon Sep 17 00:00:00 2001 From: Rodrigo Kuerten Date: Tue, 27 Feb 2024 10:21:53 -0300 Subject: [PATCH 075/140] Remove background-attachment property --- themes/V3/5ePHB/style.less | 1 - 1 file changed, 1 deletion(-) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 23c3992fd..c155d1c09 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -307,7 +307,6 @@ margin-left : -0.16cm; background-color : var(--HB_Color_MonsterStatBackground); background-image : @monsterBlockBackground; - background-attachment : unset; background-blend-mode : overlay; border-style : solid; border-width : 7px 6px; From b5301ff9784a97b1751112550d776c9b97d5b38f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 27 Feb 2024 21:53:44 +0100 Subject: [PATCH 076/140] requested changes --- client/homebrew/navbar/navbar.less | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index 73671abbb..5af996238 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -247,9 +247,10 @@ overflow : hidden auto; .navItem { position : relative; - display : block; + display : flex; + justify-content : space-between; + align-items : center; width : 100%; - padding : 8px 5px; border : 1px solid #888888; border-bottom : 0; animation-name : glideDropDown; From 1d317788fe3727030f007fa69f7aa055f6a60bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 27 Feb 2024 22:12:32 +0100 Subject: [PATCH 077/140] fix undefined class --- client/homebrew/navbar/account.navitem.jsx | 2 +- client/homebrew/navbar/help.navitem.jsx | 2 +- client/homebrew/pages/editPage/editPage.jsx | 2 +- client/homebrew/pages/sharePage/sharePage.jsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/homebrew/navbar/account.navitem.jsx b/client/homebrew/navbar/account.navitem.jsx index 6b412c368..b3b6d06b0 100644 --- a/client/homebrew/navbar/account.navitem.jsx +++ b/client/homebrew/navbar/account.navitem.jsx @@ -61,7 +61,7 @@ const Account = createClass({ render : function(){ // Logged in if(global.account){ - return + return + return need help? diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index d5af310b5..3329d1ba6 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -362,7 +362,7 @@ const EditPage = createClass({ } - + share diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index 981ad0126..c8fad41c4 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -60,7 +60,7 @@ const SharePage = createClass({ {this.props.brew.shareId && <> - + source From c4499fcc26b59bb39ef861db1528293e5245bde8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 27 Feb 2024 22:12:40 +0100 Subject: [PATCH 078/140] min-width for elements --- client/homebrew/navbar/navbar.less | 1 + 1 file changed, 1 insertion(+) diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index 5af996238..e818147e2 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -237,6 +237,7 @@ } .navDropdownContainer { position : relative; + min-width: 110px; .navDropdown { position : absolute; top : 28px; From 0310eee6856e16ad5d905bdcf6aa1753a6f92219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 27 Feb 2024 22:18:04 +0100 Subject: [PATCH 079/140] increase minimum width --- client/homebrew/navbar/navbar.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index e818147e2..008f25d65 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -237,7 +237,7 @@ } .navDropdownContainer { position : relative; - min-width: 110px; + min-width: 120px; .navDropdown { position : absolute; top : 28px; From 0d1d3a180dcc717a8e8111fbada868a4116709a0 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Wed, 28 Feb 2024 16:02:35 +1300 Subject: [PATCH 080/140] Handle missing lock property --- server/homebrew.api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index e55bf20a0..d0c741a43 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -54,7 +54,7 @@ const api = { }); stub = stub?.toObject(); - if(stub.lock?.state) { + if(stub?.lock?.state) { // State 1 : Locked for everything // State 2 : Edit only if(stub.lock.state == 1 || (stub.lock.state == 2 && accessType != 'edit')) From 774b555a61dc15b3938fde3a35b57f4b5606b496 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Thu, 29 Feb 2024 17:17:38 -0500 Subject: [PATCH 081/140] Rework to fix 5eCleric's tests --- client/homebrew/editor/editor.jsx | 32 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 3fa936ab7..4f3ef44f5 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -160,25 +160,21 @@ const Editor = createClass({ } } - // Subscript - if(line.includes('^^')) { - //const regex = /\^\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^\^/g; - const regex = /\^\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^\^/g; - let match; - while ((match = regex.exec(line)) != null) { - if(line.indexOf(match[0]) - 1 != '^') { - codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[0]) }, { line: lineNumber, ch: line.indexOf(match[0]) + match[0].length }, { className: 'subscript' }); - } - } - } - - // Superscript + // Subscript & Superscript if(line.includes('^')) { - //const regex = /\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^/g; - const regex = /\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^/g; - let match; - while ((match = regex.exec(line)) != null) { - codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[0]) }, { line: lineNumber, ch: line.indexOf(match[0]) + match[0].length }, { className: 'superscript' }); + let startIndex = line.indexOf('^'); + const superRegex = /\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^/gy; + const subRegex = /\^\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^\^/gy; + + while (startIndex >= 0) { + superRegex.lastIndex = subRegex.lastIndex = startIndex; + let isSuper = false; + let match = subRegex.exec(line) || superRegex.exec(line); + if (match) { + isSuper = !subRegex.lastIndex; + codeMirror.markText({ line: lineNumber, ch: match.index }, { line: lineNumber, ch: match.index + match[0].length }, { className: isSuper ? 'superscript' : 'subscript' }); + } + startIndex = line.indexOf('^', Math.max(startIndex + 1, subRegex.lastIndex, superRegex.lastIndex)); } } From 50f069e68896f7e843781db203c85e0973eda3b8 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Fri, 1 Mar 2024 01:24:50 -0500 Subject: [PATCH 082/140] Fix some nesting of styles The values from nav.less were mistakenly nested inside each other which was adding too much specificity. --- client/homebrew/navbar/navbar.less | 585 ++++++++++++++--------------- 1 file changed, 290 insertions(+), 295 deletions(-) diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index 73671abbb..ccbdf1f7a 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -29,322 +29,317 @@ z-index : 2; display : flex; justify-content : space-between; - .navSection { + } + .navSection { + display : flex; + align-items : center; + &:last-child .navItem { border-left : 1px solid #666666; } + } + // "NaturalCrit" logo + .navLogo { + display : block; + margin-top : 0px; + margin-right : 8px; + margin-left : 8px; + color : white; + text-decoration : none; + &:hover { + .name { color : @orange; } + svg { fill : @orange; } + } + svg { + height : 13px; + margin-right : 0.2em; + cursor : pointer; + fill : white; + } + span.name { + font-family : 'CodeLight'; + font-size : 15px; + span.crit { font-family : 'CodeBold'; } + small { + font-family : 'Open Sans'; + font-size : 0.3em; + font-weight : 800; + text-transform : uppercase; + } + } + } + .navItem { + #backgroundColorsHover; + .animate(background-color); + padding : 8px 12px; + font-size : 10px; + font-weight : 800; + line-height : 13px; + color : white; + text-decoration : none; + text-transform : uppercase; + cursor : pointer; + background-color : #333333; + i { + float : right; + margin-left : 5px; + font-size : 13px; + } + &.patreon { + border-right : 1px solid #666666; + border-left : 1px solid #666666; + &:hover i { color : red; } + i { + color : pink; + .animate(color); + animation-name : pinkColoring; + animation-duration : 2s; + } + } + &.editTitle { // this is not needed at all currently - you used to be able to edit the title via the navbar. + padding : 2px 12px; + input { + width : 250px; + padding : 2px; + margin : 0; + font-family : 'Open Sans', sans-serif; + font-size : 12px; + font-weight : 800; + color : white; + text-align : center; + background-color : transparent; + border : 1px solid @blue; + outline : none; + } + .charCount { + display : inline-block; + margin-left : 8px; + color : #666666; + text-align : right; + vertical-align : bottom; + &.max { color : @red; } + } + } + &.brewTitle { + flex-grow : 1; + font-size : 12px; + font-weight : 800; + color : white; + text-align : center; + text-transform : initial; + background-color : transparent; + } + // "The Homebrewery" logo + &.homebrewLogo { + .animate(color); + font-family : 'CodeBold'; + font-size : 12px; + color : white; + div { + margin-top : 2px; + margin-bottom : -2px; + } + &:hover { color : @blue; } + } + &.metadata { + position : relative; display : flex; + flex-grow : 1; align-items : center; - // "NaturalCrit" logo - .navLogo { - display : block; - margin-top : 0px; - margin-right : 8px; - margin-left : 8px; - color : white; - text-decoration : none; - &:hover { - .name { color : @orange; } - svg { fill : @orange; } + height : 100%; + padding : 0; + i { margin-right : 10px;} + .window { + position : absolute; + bottom : 0; + left : 50%; + z-index : -1; + display : flex; + flex-flow : row wrap; + align-content : baseline; + justify-content : flex-start; + width : 440px; + max-height : ~"calc(100vh - 28px)"; + padding : 0 10px 5px; + margin : 0 auto; + background-color : #333333; + border : 3px solid #444444; + border-top : unset; + border-radius : 0 0 5px 5px; + box-shadow : inset 0 7px 9px -7px #111111; + transition : transform 0.4s, opacity 0.4s; + &.active { + opacity : 1; + transform : translateX(-50%) translateY(100%); } - svg { - height : 13px; - margin-right : 0.2em; - cursor : pointer; - fill : white; + &.inactive { + opacity : 0; + transform : translateX(-50%) translateY(0%); } - span.name { - font-family : 'CodeLight'; - font-size : 15px; - span.crit { font-family : 'CodeBold'; } - small { - font-family : 'Open Sans'; - font-size : 0.3em; - font-weight : 800; - text-transform : uppercase; + .row { + display : flex; + flex-flow : row wrap; + width : 100%; + h4 { + box-sizing : border-box; + display : block; + flex-basis : 20%; + flex-grow : 1; + min-width : 76px; + padding : 5px 0; + color : #BBBBBB; + text-align : center; } + p { + flex-basis : 80%; + flex-grow : 1; + padding : 5px 0; + font-family : 'Open Sans', sans-serif; + font-size : 10px; + font-weight : normal; + text-transform : initial; + .tag { + display : inline-block; + padding : 2px; + margin : 2px 2px; + background-color : #444444; + border : 2px solid grey; + border-radius : 5px; + } + a.userPageLink { + color : white; + text-decoration : none; + &:hover { text-decoration : underline; } + } + } + &:nth-of-type(even) { background-color : #555555; } } } - &:last-child .navItem { border-left : 1px solid #666666; } + } + &.warning { + position : relative; + color : white; + background-color : @orange; + &:hover > .dropdown { visibility : visible; } + .dropdown { + position : absolute; + top : 28px; + left : 0; + z-index : 10000; + box-sizing : border-box; + display : block; + width : 100%; + padding : 13px 5px; + text-align : center; + visibility : hidden; + background-color : #333333; + } + } + &.account { + min-width : 100px; + &.username { text-transform : none;} + } + } + .navDropdownContainer { + position : relative; + .navDropdown { + position : absolute; + top : 28px; + left : 0px; + z-index : 10000; + width : 100%; + max-height : calc(100vh - 28px); + overflow : hidden auto; .navItem { + position : relative; + display : block; + width : 100%; + padding : 8px 5px; + border : 1px solid #888888; + border-bottom : 0; + animation-name : glideDropDown; + animation-duration : 0.4s; + } + } + &.recent { + position : relative; + .navDropdown .navItem { #backgroundColorsHover; .animate(background-color); - padding : 8px 12px; - font-size : 10px; - font-weight : 800; - line-height : 13px; + position : relative; + box-sizing : border-box; + display : block; + max-height : ~"calc(100vh - 28px)"; // I don't think is correct syntax, but leaving it in for now... (Gazook89) + padding : 8px 5px 13px; + overflow : hidden auto; color : white; text-decoration : none; - text-transform : uppercase; - cursor : pointer; background-color : #333333; - i { - float : right; - margin-left : 5px; - font-size : 13px; - } - &.patreon { - border-right : 1px solid #666666; - border-left : 1px solid #666666; - &:hover i { color : red; } + border-top : 1px solid #888888; + scrollbar-color : #666666 #333333; + scrollbar-width : thin; + .clear { + position : absolute; + top : 50%; + right : 0; + display : none; + width : 20px; + height : 100%; + background-color : #333333; + border-radius : 3px; + opacity : 70%; + transform : translateY(-50%); + &:hover { opacity : 100%; } i { - color : pink; - .animate(color); - animation-name : pinkColoring; - animation-duration : 2s; + width : 100%; + height : 100%; + margin : 0; + font-size : 10px; + text-align : center; } } - &.editTitle { // this is not needed at all currently - you used to be able to edit the title via the navbar. - padding : 2px 12px; - input { - width : 250px; - padding : 2px; - margin : 0; - font-family : 'Open Sans', sans-serif; - font-size : 12px; - font-weight : 800; - color : white; - text-align : center; - background-color : transparent; - border : 1px solid @blue; - outline : none; - } - .charCount { - display : inline-block; - margin-left : 8px; - color : #666666; - text-align : right; - vertical-align : bottom; - &.max { color : @red; } + &:hover { + background-color : @blue; + .clear { + display : grid; + place-content : center; } } - &.brewTitle { - flex-grow : 1; - font-size : 12px; - font-weight : 800; - color : white; + .title { + display : inline-block; + width : 100%; + overflow : hidden auto; + text-overflow : ellipsis; + white-space : nowrap; + } + .time { + position : absolute; + right : 2px; + bottom : 2px; + font-size : 0.7em; + color : #888888; + } + &.header { + box-sizing : border-box; + display : block; + padding : 5px 0; + color : #BBBBBB; text-align : center; - text-transform : initial; - background-color : transparent; - } - // "The Homebrewery" logo - &.homebrewLogo { - .animate(color); - font-family : 'CodeBold'; - font-size : 12px; - color : white; - div { - margin-top : 2px; - margin-bottom : -2px; - } - &:hover { color : @blue; } - } - &.metadata { - position : relative; - display : flex; - flex-grow : 1; - align-items : center; - height : 100%; - padding : 0; - i { margin-right : 10px;} - .window { - position : absolute; - bottom : 0; - left : 50%; - z-index : -1; - display : flex; - flex-flow : row wrap; - align-content : baseline; - justify-content : flex-start; - width : 440px; - max-height : ~"calc(100vh - 28px)"; - padding : 0 10px 5px; - margin : 0 auto; - background-color : #333333; - border : 3px solid #444444; - border-top : unset; - border-radius : 0 0 5px 5px; - box-shadow : inset 0 7px 9px -7px #111111; - transition : transform 0.4s, opacity 0.4s; - &.active { - opacity : 1; - transform : translateX(-50%) translateY(100%); - } - &.inactive { - opacity : 0; - transform : translateX(-50%) translateY(0%); - } - .row { - display : flex; - flex-flow : row wrap; - width : 100%; - h4 { - box-sizing : border-box; - display : block; - flex-basis : 20%; - flex-grow : 1; - min-width : 76px; - padding : 5px 0; - color : #BBBBBB; - text-align : center; - } - p { - flex-basis : 80%; - flex-grow : 1; - padding : 5px 0; - font-family : 'Open Sans', sans-serif; - font-size : 10px; - font-weight : normal; - text-transform : initial; - .tag { - display : inline-block; - padding : 2px; - margin : 2px 2px; - background-color : #444444; - border : 2px solid grey; - border-radius : 5px; - } - a.userPageLink { - color : white; - text-decoration : none; - &:hover { text-decoration : underline; } - } - } - &:nth-of-type(even) { background-color : #555555; } - } - } - } - &.warning { - position : relative; - color : white; - background-color : @orange; - &:hover > .dropdown { visibility : visible; } - .dropdown { - position : absolute; - top : 28px; - left : 0; - z-index : 10000; - box-sizing : border-box; - display : block; - width : 100%; - padding : 13px 5px; - text-align : center; - visibility : hidden; - background-color : #333333; - } - } - &.account { - min-width : 100px; - &.username { text-transform : none;} - } - } - .navDropdownContainer { - position : relative; - .navDropdown { - position : absolute; - top : 28px; - left : 0px; - z-index : 10000; - width : 100%; - max-height : calc(100vh - 28px); - overflow : hidden auto; - .navItem { - position : relative; - display : block; - width : 100%; - padding : 8px 5px; - border : 1px solid #888888; - border-bottom : 0; - animation-name : glideDropDown; - animation-duration : 0.4s; - } - } - &.recent { - position : relative; - .navDropdown .navItem { - #backgroundColorsHover; - .animate(background-color); - position : relative; - box-sizing : border-box; - display : block; - max-height : ~"calc(100vh - 28px)"; // I don't think is correct syntax, but leaving it in for now... (Gazook89) - padding : 8px 5px 13px; - overflow : hidden auto; - color : white; - text-decoration : none; - background-color : #333333; - border-top : 1px solid #888888; - scrollbar-color : #666666 #333333; - scrollbar-width : thin; - .clear { - position : absolute; - top : 50%; - right : 0; - display : none; - width : 20px; - height : 100%; - background-color : #333333; - border-radius : 3px; - opacity : 70%; - transform : translateY(-50%); - &:hover { opacity : 100%; } - i { - width : 100%; - height : 100%; - margin : 0; - font-size : 10px; - text-align : center; - } - } - &:hover { - background-color : @blue; - .clear { - display : grid; - place-content : center; - } - } - .title { - display : inline-block; - width : 100%; - overflow : hidden auto; - text-overflow : ellipsis; - white-space : nowrap; - } - .time { - position : absolute; - right : 2px; - bottom : 2px; - font-size : 0.7em; - color : #888888; - } - &.header { - box-sizing : border-box; - display : block; - padding : 5px 0; - color : #BBBBBB; - text-align : center; - background-color : #333333; - border-top : 1px solid #888888; - &:nth-of-type(1) { background-color : darken(@teal, 20%); } - &:nth-of-type(2) { background-color : darken(@purple, 30%); } - } - } + background-color : #333333; + border-top : 1px solid #888888; + &:nth-of-type(1) { background-color : darken(@teal, 20%); } + &:nth-of-type(2) { background-color : darken(@purple, 30%); } } } } } - - // this should likely be refactored into .navDropdownContainer - .save-menu { - .dropdown { z-index : 1000; } - .navItem i.fa-power-off { - color : red; - &.active { - color : rgb(0, 182, 52); - filter : drop-shadow(0 0 2px rgba(0, 182, 52, 0.765)); - } - } - } - - - - - +} + +// this should likely be refactored into .navDropdownContainer +.save-menu { + .dropdown { z-index : 1000; } + .navItem i.fa-power-off { + color : red; + &.active { + color : rgb(0, 182, 52); + filter : drop-shadow(0 0 2px rgba(0, 182, 52, 0.765)); + } + } } From 59e87697ff1029c6c843deddea7edcc285e4efea Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Fri, 1 Mar 2024 01:27:46 -0500 Subject: [PATCH 083/140] linting --- client/homebrew/navbar/navbar.less | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index ccbdf1f7a..4983aa696 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -1,4 +1,4 @@ -@import "naturalcrit/styles/colors.less"; +@import 'naturalcrit/styles/colors.less'; @navbarHeight : 28px; @@ -156,7 +156,7 @@ align-content : baseline; justify-content : flex-start; width : 440px; - max-height : ~"calc(100vh - 28px)"; + max-height : ~'calc(100vh - 28px)'; padding : 0 10px 5px; margin : 0 auto; background-color : #333333; @@ -266,7 +266,7 @@ position : relative; box-sizing : border-box; display : block; - max-height : ~"calc(100vh - 28px)"; // I don't think is correct syntax, but leaving it in for now... (Gazook89) + max-height : ~'calc(100vh - 28px)'; padding : 8px 5px 13px; overflow : hidden auto; color : white; From 3314471d731c8176cbb3c3e9d113555126f61805 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 03:47:01 +0000 Subject: [PATCH 084/140] Bump mongoose from 8.2.0 to 8.2.1 Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.2.0 to 8.2.1. - [Release notes](https://github.com/Automattic/mongoose/releases) - [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md) - [Commits](https://github.com/Automattic/mongoose/compare/8.2.0...8.2.1) --- updated-dependencies: - dependency-name: mongoose dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9f39b3bd5..faf0deb76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "marked-smartypants-lite": "^1.0.2", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.2.0", + "mongoose": "^8.2.1", "nanoid": "3.3.4", "nconf": "^0.12.1", "react": "^18.2.0", @@ -10459,9 +10459,9 @@ } }, "node_modules/mongoose": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.0.tgz", - "integrity": "sha512-la93n6zCYRbPS+c5N9oTDAktvREy5OT9OCljp1Tah0y3+p8UPMTAoabWaLZMdzYruOtF9/9GRf6MasaZjiZP1A==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.1.tgz", + "integrity": "sha512-UgZZbXSJH0pdU936qj3FyVI+sBsMoGowFnL5R/RYrA50ayn6+ZYdVr8ehsRgNxRcMYwoNld5XzHIfkFRJTePEw==", "dependencies": { "bson": "^6.2.0", "kareem": "2.5.1", diff --git a/package.json b/package.json index b44d1cc4d..5ffc3c7ea 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "marked-smartypants-lite": "^1.0.2", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.2.0", + "mongoose": "^8.2.1", "nanoid": "3.3.4", "nconf": "^0.12.1", "react": "^18.2.0", From 1e1505c63f0b0aa8c99e32bb020a1402262d557c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 5 Mar 2024 08:27:56 +0100 Subject: [PATCH 085/140] towards a more traditional approach --- client/homebrew/navbar/newbrew.navitem.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 6e63e7a8f..3a941a205 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -9,7 +9,7 @@ const STYLEKEY = 'homebrewery-new-style'; const METAKEY = 'homebrewery-new-meta'; const NewBrew = () => { - const inputRef = useRef(null); + const [brew, setBrew] = useState({ text: '', @@ -84,8 +84,8 @@ const NewBrew = () => { { inputRef.current.click(); }}> - + onClick={() => { document.getElementById('uploadTxt').click(); }}> + New From Local File From cf1617f2a386a3086a49b99602f770c63635a316 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 17:10:23 +0000 Subject: [PATCH 086/140] Bump eslint-plugin-react from 7.33.2 to 7.34.0 Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.2 to 7.34.0. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.2...v7.34.0) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 739 ++++++++++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 451 insertions(+), 290 deletions(-) diff --git a/package-lock.json b/package-lock.json index faf0deb76..f378aa8f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,7 @@ "devDependencies": { "eslint": "^8.57.0", "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react": "^7.34.0", "jest": "^29.7.0", "jest-expect-message": "^1.1.3", "postcss-less": "^6.0.0", @@ -3371,13 +3371,16 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3389,15 +3392,15 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -3424,15 +3427,34 @@ "node": ">=0.10.0" } }, + "node_modules/array.prototype.findlast": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz", + "integrity": "sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -3442,30 +3464,44 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", - "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -3585,10 +3621,13 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -4337,12 +4376,18 @@ "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==" }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5123,12 +5168,29 @@ "node": ">=0.10.0" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -5452,50 +5514,52 @@ } }, "node_modules/es-abstract": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", - "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.1", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "safe-array-concat": "^1.0.0", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.10" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -5504,49 +5568,72 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-iterator-helpers": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.13.tgz", - "integrity": "sha512-LK3VGwzvaPWobO8xzXXGRUOGw8Dcjyfk62CsY/wfHN75CwsJPbuypOYJxK6g5RyEL8YDjIWcl6jgd8foO6mmrA==", + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz", + "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==", "dev": true, "dependencies": { "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.21.3", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.4", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.2", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", + "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.0", - "safe-array-concat": "^1.0.0" + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -5668,27 +5755,29 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.34.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.0.tgz", + "integrity": "sha512-MeVXdReleBTdkz/bvcQMSnCXGi+c9kvy51IpinjnJgutl3YTHWsDdke7Z1ufZpGfDG8xduBDKyjtB9JH1eBKIQ==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.0.17", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.10" }, "engines": { "node": ">=4" @@ -5710,12 +5799,12 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -6518,20 +6607,23 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -6597,14 +6689,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6632,13 +6728,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -6846,7 +6943,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -6915,21 +7011,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -6949,12 +7044,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -7032,6 +7127,17 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hexoid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", @@ -7363,13 +7469,13 @@ } }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -7407,14 +7513,16 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7498,11 +7606,11 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7647,9 +7755,9 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" @@ -7736,12 +7844,15 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7789,16 +7900,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -7994,16 +8101,16 @@ } }, "node_modules/iterator.prototype": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.0.tgz", - "integrity": "sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", "dev": true, "dependencies": { - "define-properties": "^1.1.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", - "has-tostringtag": "^1.0.0", - "reflect.getprototypeof": "^1.0.3" + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" } }, "node_modules/jest": { @@ -11002,9 +11109,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11030,13 +11137,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -11048,28 +11155,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -11079,13 +11186,13 @@ } }, "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", "dev": true, "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11103,14 +11210,14 @@ } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -11482,6 +11589,15 @@ "node": ">=0.10.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -12043,15 +12159,16 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.3.tgz", - "integrity": "sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz", + "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0", + "get-intrinsic": "^1.2.3", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -12127,14 +12244,15 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -12343,13 +12461,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -12394,15 +12512,18 @@ } }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12496,6 +12617,37 @@ "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -13149,18 +13301,19 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", "side-channel": "^1.0.4" }, "funding": { @@ -13168,14 +13321,14 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -13185,28 +13338,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13950,29 +14103,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -13982,16 +14136,17 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -14001,14 +14156,20 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14856,16 +15017,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.1" }, "engines": { "node": ">= 0.4" diff --git a/package.json b/package.json index 5ffc3c7ea..91eb1c047 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "devDependencies": { "eslint": "^8.57.0", "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react": "^7.34.0", "jest": "^29.7.0", "jest-expect-message": "^1.1.3", "postcss-less": "^6.0.0", From dbfc1e7d2890ad6240a1e60f4e390f913baea6ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 17:19:12 +0000 Subject: [PATCH 087/140] Bump react-router-dom from 6.22.1 to 6.22.2 Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.22.1 to 6.22.2. - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.2/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router-dom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 26 +++++++++++++------------- package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index f378aa8f3..e48628d1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-frame-component": "^4.1.3", - "react-router-dom": "6.22.1", + "react-router-dom": "6.22.2", "sanitize-filename": "1.6.3", "superagent": "^8.1.2", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" @@ -2838,9 +2838,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.1.tgz", - "integrity": "sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.2.tgz", + "integrity": "sha512-+Rnav+CaoTE5QJc4Jcwh5toUpnVLKYbpU6Ys0zqbakqbaLQHeglLVHPfxOiQqdNmUy5C2lXz5dwC6tQNX2JW2Q==", "engines": { "node": ">=14.0.0" } @@ -11995,11 +11995,11 @@ "dev": true }, "node_modules/react-router": { - "version": "6.22.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.1.tgz", - "integrity": "sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ==", + "version": "6.22.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.2.tgz", + "integrity": "sha512-YD3Dzprzpcq+tBMHBS822tCjnWD3iIZbTeSXMY9LPSG541EfoBGyZ3bS25KEnaZjLcmQpw2AVLkFyfgXY8uvcw==", "dependencies": { - "@remix-run/router": "1.15.1" + "@remix-run/router": "1.15.2" }, "engines": { "node": ">=14.0.0" @@ -12009,12 +12009,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.22.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.1.tgz", - "integrity": "sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw==", + "version": "6.22.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.2.tgz", + "integrity": "sha512-WgqxD2qySEIBPZ3w0sHH+PUAiamDeszls9tzqMPBDA1YYVucTBXLU7+gtRfcSnhe92A3glPnvSxK2dhNoAVOIQ==", "dependencies": { - "@remix-run/router": "1.15.1", - "react-router": "6.22.1" + "@remix-run/router": "1.15.2", + "react-router": "6.22.2" }, "engines": { "node": ">=14.0.0" diff --git a/package.json b/package.json index 91eb1c047..6873787e8 100644 --- a/package.json +++ b/package.json @@ -112,7 +112,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-frame-component": "^4.1.3", - "react-router-dom": "6.22.1", + "react-router-dom": "6.22.2", "sanitize-filename": "1.6.3", "superagent": "^8.1.2", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" From 1e4a00ce56a1e72e9691656b2eabb63b35e9bc2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 17:23:13 +0000 Subject: [PATCH 088/140] Bump express from 4.18.2 to 4.18.3 Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.18.3. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.18.2...4.18.3) --- updated-dependencies: - dependency-name: express dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 47 +++++------------------------------------------ package.json | 2 +- 2 files changed, 6 insertions(+), 43 deletions(-) diff --git a/package-lock.json b/package-lock.json index e48628d1c..9313c67db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "create-react-class": "^15.7.0", "dedent-tabs": "^0.10.3", "expr-eval": "^2.0.2", - "express": "^4.18.2", + "express": "^4.18.3", "express-async-handler": "^1.2.0", "express-static-gzip": "2.1.7", "fs-extra": "11.2.0", @@ -6132,13 +6132,13 @@ "integrity": "sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==" }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -6185,29 +6185,6 @@ "serve-static": "^1.14.1" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, "node_modules/express/node_modules/cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", @@ -6229,20 +6206,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", diff --git a/package.json b/package.json index 6873787e8..81a15d996 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "create-react-class": "^15.7.0", "dedent-tabs": "^0.10.3", "expr-eval": "^2.0.2", - "express": "^4.18.2", + "express": "^4.18.3", "express-async-handler": "^1.2.0", "express-static-gzip": "2.1.7", "fs-extra": "11.2.0", From e472465ce7d637b906b576aa19edee591c444d73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 17:36:12 +0000 Subject: [PATCH 089/140] Bump @babel/core from 7.23.9 to 7.24.0 Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.9 to 7.24.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.24.0/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 62 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9313c67db..4625107a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.23.9", + "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.23.9", "@babel/preset-env": "^7.23.9", "@babel/preset-react": "^7.23.3", @@ -107,20 +107,20 @@ } }, "node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -450,13 +450,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", - "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", "dependencies": { - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -476,9 +476,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1746,22 +1746,22 @@ } }, "node_modules/@babel/template": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", - "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dependencies": { "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9" + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/generator": "^7.23.6", @@ -1769,8 +1769,8 @@ "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1779,9 +1779,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", diff --git a/package.json b/package.json index 81a15d996..2c2628c86 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ ] }, "dependencies": { - "@babel/core": "^7.23.9", + "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.23.9", "@babel/preset-env": "^7.23.9", "@babel/preset-react": "^7.23.3", From cfdc3e68707f8e5c9e44ce482264b445888c5746 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 17:40:24 +0000 Subject: [PATCH 090/140] Bump @babel/preset-env from 7.23.9 to 7.24.0 Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.9 to 7.24.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.24.0/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4625107a8..b0bda2b8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "dependencies": { "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.23.9", - "@babel/preset-env": "^7.23.9", + "@babel/preset-env": "^7.24.0", "@babel/preset-react": "^7.23.3", "@googleapis/drive": "^8.7.0", "body-parser": "^1.20.2", @@ -340,9 +340,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "engines": { "node": ">=6.9.0" } @@ -1242,13 +1242,13 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", + "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.23.3" }, @@ -1605,13 +1605,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", - "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", @@ -1664,7 +1664,7 @@ "@babel/plugin-transform-new-target": "^7.23.3", "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", "@babel/plugin-transform-object-super": "^7.23.3", "@babel/plugin-transform-optional-catch-binding": "^7.23.4", "@babel/plugin-transform-optional-chaining": "^7.23.4", diff --git a/package.json b/package.json index 2c2628c86..75b36082b 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "dependencies": { "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.23.9", - "@babel/preset-env": "^7.23.9", + "@babel/preset-env": "^7.24.0", "@babel/preset-react": "^7.23.3", "@googleapis/drive": "^8.7.0", "body-parser": "^1.20.2", From b50353c8c4f3860873f1c9d68ed23b6e774b3c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 14:02:09 +0100 Subject: [PATCH 091/140] rename nav buttons per req --- client/homebrew/navbar/newbrew.navitem.jsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 3a941a205..642e341e2 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -74,19 +74,21 @@ const NewBrew = () => { new - new + from blank { document.getElementById('uploadTxt').click(); }}> - New From Local File + from file ); From 25945fc0dfae7cdd83104cdf7f12d77bb314b010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 14:06:57 +0100 Subject: [PATCH 092/140] getting rid of state as per req --- client/homebrew/navbar/newbrew.navitem.jsx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 642e341e2..d393501cb 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -10,11 +10,7 @@ const METAKEY = 'homebrewery-new-meta'; const NewBrew = () => { - - const [brew, setBrew] = useState({ - text: '', - style: '' - }); + const splitTextStyleAndMetadata = (brewContent) => { let updatedBrew = { ...brewContent }; @@ -50,8 +46,6 @@ const NewBrew = () => { }; if(fileContent.startsWith('```metadata')) { const updatedBrew = splitTextStyleAndMetadata(newBrew); - console.log(updatedBrew); - setBrew(updatedBrew); localStorage.setItem(BREWKEY, updatedBrew.text); localStorage.setItem(STYLEKEY, updatedBrew.style); localStorage.setItem(METAKEY, JSON.stringify(_.pick(updatedBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); From 99daaf55374769e9d7789b20411e89c83bdb6a14 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:05:23 +0000 Subject: [PATCH 093/140] Bump @babel/plugin-transform-runtime from 7.23.9 to 7.24.0 Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.23.9 to 7.24.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.24.0/packages/babel-plugin-transform-runtime) --- updated-dependencies: - dependency-name: "@babel/plugin-transform-runtime" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index b0bda2b8d..4ab132c11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.24.0", - "@babel/plugin-transform-runtime": "^7.23.9", + "@babel/plugin-transform-runtime": "^7.24.0", "@babel/preset-env": "^7.24.0", "@babel/preset-react": "^7.23.3", "@googleapis/drive": "^8.7.0", @@ -1456,12 +1456,12 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz", - "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", + "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", "dependencies": { "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "babel-plugin-polyfill-corejs2": "^0.4.8", "babel-plugin-polyfill-corejs3": "^0.9.0", "babel-plugin-polyfill-regenerator": "^0.5.5", diff --git a/package.json b/package.json index 75b36082b..9b9b17ca0 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ }, "dependencies": { "@babel/core": "^7.24.0", - "@babel/plugin-transform-runtime": "^7.23.9", + "@babel/plugin-transform-runtime": "^7.24.0", "@babel/preset-env": "^7.24.0", "@babel/preset-react": "^7.23.3", "@googleapis/drive": "^8.7.0", From 6eecd9cee40c08bdaf32de787114ecb237e7ecf6 Mon Sep 17 00:00:00 2001 From: Rodrigo Kuerten Date: Wed, 6 Mar 2024 13:46:13 -0300 Subject: [PATCH 094/140] Updated Table of Contents snippet --- themes/V3/5ePHB/snippets/tableOfContents.gen.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/V3/5ePHB/snippets/tableOfContents.gen.js b/themes/V3/5ePHB/snippets/tableOfContents.gen.js index 97d82ed40..03f90d5fa 100644 --- a/themes/V3/5ePHB/snippets/tableOfContents.gen.js +++ b/themes/V3/5ePHB/snippets/tableOfContents.gen.js @@ -78,7 +78,7 @@ module.exports = function(props){ return dedent` {{toc,wide - # Table Of Contents + # Contents ${markdown} }} From f93af38fa6c03590a6d3694d9840de468a89fe68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 18:09:26 +0100 Subject: [PATCH 095/140] split-style-and-metadata moved to helpers.js --- client/homebrew/navbar/newbrew.navitem.jsx | 45 +++++----------------- server/app.js | 17 +------- shared/helpers.js | 22 +++++++++++ 3 files changed, 33 insertions(+), 51 deletions(-) create mode 100644 shared/helpers.js diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index d393501cb..7e5c63101 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -1,39 +1,13 @@ const React = require('react'); -const { useState, useRef } = React; const _ = require('lodash'); const Nav = require('naturalcrit/nav/nav.jsx'); -const yaml = require('js-yaml'); +const { splitTextStyleAndMetadata } = require('../../../shared/helpers.js'); // Importing the function from helpers.js const BREWKEY = 'homebrewery-new'; const STYLEKEY = 'homebrewery-new-style'; const METAKEY = 'homebrewery-new-meta'; -const NewBrew = () => { - - - - const splitTextStyleAndMetadata = (brewContent) => { - let updatedBrew = { ...brewContent }; - updatedBrew.text = updatedBrew.text.replaceAll('\r\n', '\n'); - if (updatedBrew.text.startsWith('```metadata')) { - const index = updatedBrew.text.indexOf('```\n\n'); - const metadataSection = updatedBrew.text.slice(12, index - 1); - const metadata = yaml.load(metadataSection); - updatedBrew = { - ...updatedBrew, - ..._.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']) - }; - updatedBrew.text = updatedBrew.text.slice(index + 5); - } - if (updatedBrew.text.startsWith('```css')) { - const index = updatedBrew.text.indexOf('```\n\n'); - updatedBrew.style = updatedBrew.text.slice(7, index - 1); - updatedBrew.text = updatedBrew.text.slice(index + 5); - } - return updatedBrew; - }; - - +const NewBrew = () => { const handleFileChange = (e) => { const file = e.target.files[0]; if (file) { @@ -44,14 +18,13 @@ const NewBrew = () => { text: fileContent, style: '' }; - if(fileContent.startsWith('```metadata')) { - const updatedBrew = splitTextStyleAndMetadata(newBrew); - localStorage.setItem(BREWKEY, updatedBrew.text); - localStorage.setItem(STYLEKEY, updatedBrew.style); - localStorage.setItem(METAKEY, JSON.stringify(_.pick(updatedBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); - - window.location.href = '/new'; - } else { + if(fileContent.startsWith('```metadata')) { + splitTextStyleAndMetadata(newBrew); // Modify newBrew directly + localStorage.setItem(BREWKEY, newBrew.text); + localStorage.setItem(STYLEKEY, newBrew.style); + localStorage.setItem(METAKEY, JSON.stringify(_.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); + window.location.href = '/new'; + } else { alert('This file is invalid, please, enter a valid file'); } }; diff --git a/server/app.js b/server/app.js index fc5d4a035..4c72b4924 100644 --- a/server/app.js +++ b/server/app.js @@ -17,21 +17,8 @@ const asyncHandler = require('express-async-handler'); const { DEFAULT_BREW } = require('./brewDefaults.js'); -const splitTextStyleAndMetadata = (brew)=>{ - brew.text = brew.text.replaceAll('\r\n', '\n'); - if(brew.text.startsWith('```metadata')) { - const index = brew.text.indexOf('```\n\n'); - const metadataSection = brew.text.slice(12, index - 1); - const metadata = yaml.load(metadataSection); - Object.assign(brew, _.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])); - brew.text = brew.text.slice(index + 5); - } - if(brew.text.startsWith('```css')) { - const index = brew.text.indexOf('```\n\n'); - brew.style = brew.text.slice(7, index - 1); - brew.text = brew.text.slice(index + 5); - } -}; +const { splitTextStyleAndMetadata } = require('../shared/helpers.js'); + const sanitizeBrew = (brew, accessType)=>{ brew._id = undefined; diff --git a/shared/helpers.js b/shared/helpers.js new file mode 100644 index 000000000..5abb93fea --- /dev/null +++ b/shared/helpers.js @@ -0,0 +1,22 @@ +const _ = require('lodash'); +const yaml = require('js-yaml'); + +const splitTextStyleAndMetadata = (brew) => { + brew.text = brew.text.replaceAll('\r\n', '\n'); + if (brew.text.startsWith('```metadata')) { + const index = brew.text.indexOf('```\n\n'); + const metadataSection = brew.text.slice(12, index - 1); + const metadata = yaml.load(metadataSection); + Object.assign(brew, _.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])); + brew.text = brew.text.slice(index + 5); + } + if (brew.text.startsWith('```css')) { + const index = brew.text.indexOf('```\n\n'); + brew.style = brew.text.slice(7, index - 1); + brew.text = brew.text.slice(index + 5); + } +}; + +module.exports = { + splitTextStyleAndMetadata +}; From e494899f8b973bd191acfc6d48e42e6033e15d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 18:12:21 +0100 Subject: [PATCH 096/140] icons --- client/homebrew/navbar/newbrew.navitem.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 7e5c63101..319ef3392 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -37,7 +37,7 @@ const NewBrew = () => { + icon='fa-solid fa-plus-square'> new { href='/new' newTab={true} color='purple' - icon='fas fa-plus-square'> + icon='fa-solid fa-file'> from blank { document.getElementById('uploadTxt').click(); }}> from file From 83d2a604e18b275ce8ac5159d6fec482d659b6ee Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Wed, 6 Mar 2024 12:28:43 -0500 Subject: [PATCH 097/140] Clean up some spacing --- themes/V3/Blank/style.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index f8289bbee..3e5b2290f 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -459,10 +459,10 @@ body { counter-reset : page-numbers; } .homebreweryIcon.red { background-color : red; } .homebreweryIcon.gold { background-image : linear-gradient(to top left, brown 22.5%, gold 40%, white 60%, gold 67.5%, brown 82.5%); } } + //***************************** //* Page Number //*****************************/ - .page { .pageNumber { position : absolute; From 3482330629ca4fa016aaefa2676d2d4afdfb658d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 19:05:58 +0100 Subject: [PATCH 098/140] adjust to work with overflow --- client/homebrew/navbar/navbar.less | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index 4983aa696..d41f39f7f 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -242,16 +242,17 @@ .navDropdown { position : absolute; top : 28px; - left : 0px; + right : 0px; z-index : 10000; - width : 100%; + width : fit-content; max-height : calc(100vh - 28px); overflow : hidden auto; .navItem { position : relative; - display : block; + display : flex; + justify-content : space-between; + align-items : center; width : 100%; - padding : 8px 5px; border : 1px solid #888888; border-bottom : 0; animation-name : glideDropDown; From c7a2e849272eb86e8fd392cc0e7a9735e5554817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 19:13:35 +0100 Subject: [PATCH 099/140] no wrapping text --- client/homebrew/navbar/navbar.less | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index d41f39f7f..601310a71 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -240,19 +240,23 @@ .navDropdownContainer { position : relative; .navDropdown { - position : absolute; - top : 28px; - right : 0px; - z-index : 10000; - width : fit-content; - max-height : calc(100vh - 28px); - overflow : hidden auto; + position: absolute; + top: 28px; + right: 0px; + z-index: 10000; + width: fit-content; + max-height: calc(100vh - 28px); + overflow: hidden auto; + display: flex; + flex-direction: column; + align-items: flex-end; .navItem { position : relative; display : flex; justify-content : space-between; align-items : center; width : 100%; + text-wrap : nowrap; border : 1px solid #888888; border-bottom : 0; animation-name : glideDropDown; From 7483b4afc6fa5c2f0dc276e17f0e793891e0aa37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 19:16:48 +0100 Subject: [PATCH 100/140] quickfix --- client/homebrew/navbar/navbar.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index 601310a71..9c153e381 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -244,7 +244,8 @@ top: 28px; right: 0px; z-index: 10000; - width: fit-content; + width: max-content; + min-width:100%; max-height: calc(100vh - 28px); overflow: hidden auto; display: flex; @@ -256,7 +257,6 @@ justify-content : space-between; align-items : center; width : 100%; - text-wrap : nowrap; border : 1px solid #888888; border-bottom : 0; animation-name : glideDropDown; From b2b276c3a3ad799d014f41b8ae658affd8cd7777 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 19:21:11 +0100 Subject: [PATCH 101/140] classname to new dropdown --- client/homebrew/navbar/newbrew.navitem.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 319ef3392..4a1c3424a 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -33,7 +33,7 @@ const NewBrew = () => { }; return ( - + Date: Wed, 6 Mar 2024 19:30:23 +0100 Subject: [PATCH 102/140] initial commit --- client/homebrew/brewRenderer/brewRenderer.less | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/client/homebrew/brewRenderer/brewRenderer.less b/client/homebrew/brewRenderer/brewRenderer.less index 17aa146fb..d0551747c 100644 --- a/client/homebrew/brewRenderer/brewRenderer.less +++ b/client/homebrew/brewRenderer/brewRenderer.less @@ -14,6 +14,19 @@ box-shadow : 1px 4px 14px #000000; } } + + &::-webkit-scrollbar { + width: 20px; + z-index: 2; + + } + + &::-webkit-scrollbar-thumb { + width:20px; + background-color: #d3c1af; + border-right: 7px solid #2C3E50; + } + } .pane { position : relative; } .pageInfo { From dbe60e3ff183a63e121bfa0f613692b755b1c1ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 19:43:44 +0100 Subject: [PATCH 103/140] dropdown classes fix --- client/homebrew/navbar/account.navitem.jsx | 2 +- client/homebrew/navbar/help.navitem.jsx | 2 +- client/homebrew/navbar/newbrew.navitem.jsx | 2 +- client/homebrew/navbar/recent.navitem.jsx | 2 +- client/homebrew/pages/editPage/editPage.jsx | 4 ++-- client/homebrew/pages/sharePage/sharePage.jsx | 2 +- shared/naturalcrit/nav/nav.jsx | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/client/homebrew/navbar/account.navitem.jsx b/client/homebrew/navbar/account.navitem.jsx index b3b6d06b0..6b412c368 100644 --- a/client/homebrew/navbar/account.navitem.jsx +++ b/client/homebrew/navbar/account.navitem.jsx @@ -61,7 +61,7 @@ const Account = createClass({ render : function(){ // Logged in if(global.account){ - return + return + return need help? diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 4a1c3424a..319ef3392 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -33,7 +33,7 @@ const NewBrew = () => { }; return ( - + + return {this.props.text} diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 3329d1ba6..5ed13012a 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -355,14 +355,14 @@ const EditPage = createClass({ {this.renderGoogleDriveIcon()} {this.state.error ? : - + {this.renderSaveButton()} {this.renderAutoSaveButton()} } - + share diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index c8fad41c4..981ad0126 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -60,7 +60,7 @@ const SharePage = createClass({ {this.props.brew.shareId && <> - + source diff --git a/shared/naturalcrit/nav/nav.jsx b/shared/naturalcrit/nav/nav.jsx index 04b7037dd..fb77780c0 100644 --- a/shared/naturalcrit/nav/nav.jsx +++ b/shared/naturalcrit/nav/nav.jsx @@ -104,7 +104,7 @@ const Nav = { }); return ( -
handleDropdown(true) : undefined } onMouseLeave = { props.trigger.includes('hover') ? ()=>handleDropdown(false) : undefined } From 58422569c9d0a33d99f6d62c48cb06f37f0483a1 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Wed, 6 Mar 2024 15:32:38 -0500 Subject: [PATCH 104/140] Extra classes were needed for .recent and .save .save has special styling for the "on" button. .recent has special styling for the dividers between Edited and Viewed --- client/homebrew/navbar/navbar.less | 3 ++- client/homebrew/navbar/recent.navitem.jsx | 2 +- client/homebrew/pages/editPage/editPage.jsx | 2 +- shared/naturalcrit/nav/nav.jsx | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less index 9c153e381..d0f2f77e8 100644 --- a/client/homebrew/navbar/navbar.less +++ b/client/homebrew/navbar/navbar.less @@ -271,7 +271,8 @@ position : relative; box-sizing : border-box; display : block; - max-height : ~'calc(100vh - 28px)'; + max-width : 15em; + max-height : ~'calc(100vh - 28px)'; padding : 8px 5px 13px; overflow : hidden auto; color : white; diff --git a/client/homebrew/navbar/recent.navitem.jsx b/client/homebrew/navbar/recent.navitem.jsx index d57a636f9..431bdd8df 100644 --- a/client/homebrew/navbar/recent.navitem.jsx +++ b/client/homebrew/navbar/recent.navitem.jsx @@ -165,7 +165,7 @@ const RecentItems = createClass({ }, render : function(){ - return + return {this.props.text} diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 5ed13012a..d5af310b5 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -355,7 +355,7 @@ const EditPage = createClass({ {this.renderGoogleDriveIcon()} {this.state.error ? : - + {this.renderSaveButton()} {this.renderAutoSaveButton()} diff --git a/shared/naturalcrit/nav/nav.jsx b/shared/naturalcrit/nav/nav.jsx index fb77780c0..beb3d9cc4 100644 --- a/shared/naturalcrit/nav/nav.jsx +++ b/shared/naturalcrit/nav/nav.jsx @@ -104,7 +104,7 @@ const Nav = { }); return ( -
handleDropdown(true) : undefined } onMouseLeave = { props.trigger.includes('hover') ? ()=>handleDropdown(false) : undefined } From 9f95947d160cbc63efb246a7dd3dc053fd925349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 22:34:44 +0100 Subject: [PATCH 105/140] initial commit --- themes/V3/5ePHB/style.less | 2 -- themes/V3/Blank/style.less | 5 +++-- themes/fonts/5e/fonts.less | 2 -- themes/fonts/{5e => icon fonts}/dicefont.less | 0 themes/fonts/{5e => icon fonts}/dicefont.woff | Bin themes/fonts/{5e => icon fonts}/dicefont.woff2 | Bin themes/fonts/{5e => icon fonts}/dicefont_license.md | 0 7 files changed, 3 insertions(+), 6 deletions(-) rename themes/fonts/{5e => icon fonts}/dicefont.less (100%) rename themes/fonts/{5e => icon fonts}/dicefont.woff (100%) rename themes/fonts/{5e => icon fonts}/dicefont.woff2 (100%) rename themes/fonts/{5e => icon fonts}/dicefont_license.md (100%) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index ed3e8604c..a24022434 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -1,5 +1,3 @@ -@import (less) './themes/fonts/5e/fonts.less'; -@import (less) './themes/assets/assets.less'; @import (less) './themes/fonts/icon fonts/font-icons.less'; :root { diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index 3e5b2290f..bc5c84e6d 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -1,5 +1,6 @@ -@import (less) './themes/fonts/5e/fonts.less'; -@import (less) './themes/assets/assets.less'; +@import (less) '../../fonts/5e/fonts.less'; +@import (less) '../../assets/assets.less'; +@import (less) '../../fonts/icon\ fonts/dicefont.less'; :root { //Colors diff --git a/themes/fonts/5e/fonts.less b/themes/fonts/5e/fonts.less index b59fe1671..8f089b51c 100644 --- a/themes/fonts/5e/fonts.less +++ b/themes/fonts/5e/fonts.less @@ -1,5 +1,3 @@ -@import url('./dicefont.less'); - /* Main Font, serif */ @font-face { font-family: BookInsanityRemake; diff --git a/themes/fonts/5e/dicefont.less b/themes/fonts/icon fonts/dicefont.less similarity index 100% rename from themes/fonts/5e/dicefont.less rename to themes/fonts/icon fonts/dicefont.less diff --git a/themes/fonts/5e/dicefont.woff b/themes/fonts/icon fonts/dicefont.woff similarity index 100% rename from themes/fonts/5e/dicefont.woff rename to themes/fonts/icon fonts/dicefont.woff diff --git a/themes/fonts/5e/dicefont.woff2 b/themes/fonts/icon fonts/dicefont.woff2 similarity index 100% rename from themes/fonts/5e/dicefont.woff2 rename to themes/fonts/icon fonts/dicefont.woff2 diff --git a/themes/fonts/5e/dicefont_license.md b/themes/fonts/icon fonts/dicefont_license.md similarity index 100% rename from themes/fonts/5e/dicefont_license.md rename to themes/fonts/icon fonts/dicefont_license.md From f903e97562ebe46a1647e49698a51be2decafb57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 23:03:44 +0100 Subject: [PATCH 106/140] back to original links --- themes/V3/Blank/style.less | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index bc5c84e6d..1d8ca6ee4 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -1,6 +1,6 @@ -@import (less) '../../fonts/5e/fonts.less'; -@import (less) '../../assets/assets.less'; -@import (less) '../../fonts/icon\ fonts/dicefont.less'; +@import (less) './themes/fonts/5e/fonts.less'; +@import (less) './themes/assets/assets.less'; +@import (less) './themes/fonts/icon fonts/dicefont.less'; :root { //Colors From 4cc2acc9e6f7563e315206ee56b18a70d4f637ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 6 Mar 2024 23:12:12 +0100 Subject: [PATCH 107/140] quickfix --- themes/V3/5ePHB/style.less | 1 + 1 file changed, 1 insertion(+) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index a24022434..758489961 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -1,3 +1,4 @@ +@import (less) './themes/assets/assets.less'; @import (less) './themes/fonts/icon fonts/font-icons.less'; :root { From 08a3d7367b6a039f49b3c06cb13ec826533cbe60 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 03:15:21 +0000 Subject: [PATCH 108/140] Bump react-router-dom from 6.22.2 to 6.22.3 Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.22.2 to 6.22.3. - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.3/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router-dom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 26 +++++++++++++------------- package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4ab132c11..29ea015b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-frame-component": "^4.1.3", - "react-router-dom": "6.22.2", + "react-router-dom": "6.22.3", "sanitize-filename": "1.6.3", "superagent": "^8.1.2", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" @@ -2838,9 +2838,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.2.tgz", - "integrity": "sha512-+Rnav+CaoTE5QJc4Jcwh5toUpnVLKYbpU6Ys0zqbakqbaLQHeglLVHPfxOiQqdNmUy5C2lXz5dwC6tQNX2JW2Q==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", + "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==", "engines": { "node": ">=14.0.0" } @@ -11958,11 +11958,11 @@ "dev": true }, "node_modules/react-router": { - "version": "6.22.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.2.tgz", - "integrity": "sha512-YD3Dzprzpcq+tBMHBS822tCjnWD3iIZbTeSXMY9LPSG541EfoBGyZ3bS25KEnaZjLcmQpw2AVLkFyfgXY8uvcw==", + "version": "6.22.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.3.tgz", + "integrity": "sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==", "dependencies": { - "@remix-run/router": "1.15.2" + "@remix-run/router": "1.15.3" }, "engines": { "node": ">=14.0.0" @@ -11972,12 +11972,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.22.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.2.tgz", - "integrity": "sha512-WgqxD2qySEIBPZ3w0sHH+PUAiamDeszls9tzqMPBDA1YYVucTBXLU7+gtRfcSnhe92A3glPnvSxK2dhNoAVOIQ==", + "version": "6.22.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.3.tgz", + "integrity": "sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==", "dependencies": { - "@remix-run/router": "1.15.2", - "react-router": "6.22.2" + "@remix-run/router": "1.15.3", + "react-router": "6.22.3" }, "engines": { "node": ">=14.0.0" diff --git a/package.json b/package.json index 9b9b17ca0..e0c65e306 100644 --- a/package.json +++ b/package.json @@ -112,7 +112,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-frame-component": "^4.1.3", - "react-router-dom": "6.22.2", + "react-router-dom": "6.22.3", "sanitize-filename": "1.6.3", "superagent": "^8.1.2", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" From f6c0b0d6fc0a3351c394dd1a175e3a3828b43d01 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Thu, 7 Mar 2024 23:46:10 -0500 Subject: [PATCH 109/140] Simplification of CSS --- package.json | 2 +- shared/naturalcrit/markdown.js | 8 ++-- tests/markdown/marked-extensions.test.js | 15 +++----- themes/V3/5ePHB/style.less | 48 +----------------------- 4 files changed, 12 insertions(+), 61 deletions(-) diff --git a/package.json b/package.json index 972d82138..8cee4082a 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "test:mustache-syntax:inline": "jest '.*(mustache-syntax).*' -t '^Inline:.*' --verbose --noStackTrace", "test:mustache-syntax:block": "jest '.*(mustache-syntax).*' -t '^Block:.*' --verbose --noStackTrace", "test:mustache-syntax:injection": "jest '.*(mustache-syntax).*' -t '^Injection:.*' --verbose --noStackTrace", - "test:marked-extensions": "jest '.*(marked-extensions).*' --verbose --noStackTrace", + "test:marked-extensions": "jest tests/markdown/marked-extensions.test.js --verbose --noStackTrace", "test:route": "jest tests/routes/static-pages.test.js --verbose", "phb": "node scripts/phb.js", "prod": "set NODE_ENV=production && npm run build", diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 227b9ad35..defd4100e 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -401,12 +401,12 @@ const definitionLists = { } }, renderer(token) { - let returnVal = ``; + let returnVal = `
`; token.definitions.forEach((def)=>{ let dds = def.ddo.map((s)=>{ - return `
${this.parser.parseInline(s).trim()}
`; - }).join('\n'); - returnVal += `
${this.parser.parseInline(def.dt)}
${dds.indexOf('\n') > -1 ? '\n' : ''}${dds}\n`; + return `${token.inlineDefinitions ? '' : '\n'}
${this.parser.parseInline(s).trim()}
`; + }).join(''); + returnVal += `
${this.parser.parseInline(def.dt)}
${dds}\n`; }); returnVal = returnVal.trim(); return `${returnVal}
`; diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index 5a8603ab8..6d3be056f 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -2,23 +2,23 @@ const Markdown = require('naturalcrit/markdown.js'); -describe('Dictionary Terms', ()=>{ +describe('Definition Terms', ()=>{ test('Single Definition', function() { const source = 'My term :: My First Definition\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); }); test('Multiple Definition Terms, single line, single definition', function() { const source = 'Term 1::Definition of Term 1\nTerm 2::Definition of Term 2\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
'); }); test('PANdoc style list - Single Term, Single Definition', function() { const source = 'Term 1\n::Definition 1\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition 1
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
'); }); test('PANdoc style list - Single Term, Plural Definitions', function() { @@ -30,7 +30,7 @@ describe('Dictionary Terms', ()=>{ test('PANdoc style list - Multiple Term, Single Definitions', function() { const source = 'Term 1\n::Definition 1\nTerm 2\n::Definition 1\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition 1
\n
Term 2
Definition 1
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Term 2
\n
Definition 1
'); }); test('PANdoc style list - Multiple Term, Plural Definitions', function() { @@ -42,15 +42,12 @@ describe('Dictionary Terms', ()=>{ test('PANdoc style list - Single Term, Single multiple line definition', function() { const source = 'Term 1\n::Definition 1\nand more and\nmore and more\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition 1 and more and more and more
'); - + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more and more
'); }); test('PANdoc style list - Multiple Term, Single multiple line definition', function() { const source = 'Term 1\n::Definition 1\nand more and\nmore and more\n\n::Definition 2\n\n::Definition 3\n\n'; const rendered = Markdown.render(source); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more and more
\n
Definition 2
\n
Definition 3
'); - }); - }); diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 50cb5c977..ed3e8604c 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -319,30 +319,6 @@ padding : 0px; margin-bottom : 0.325cm; - dl { - padding: 0px; - } - - dt::before { - display: block; - } - - dt:nth-child(1n+2)::before { - content: ""; - display: block; - } - - dt { - display: inline; - margin-right : 5px; - margin-left : 0em; - padding: 0px; - } - - dd { - display: inline; - } - //Headers h2 { margin : 0; @@ -886,36 +862,14 @@ dl { line-height : 1.25em; & + * { margin-top : 0.17cm; } - white-space: normal !important; - } - - dd { - display: block - } - p + dl { margin-top : 0.17cm; } - - dt { - display : inline; + dt { margin-right : 5px; margin-left : -1em; } } -// ***************************** -// * Inline Definition Lists -// *****************************/ -.inlineDL dd { - display: inline !important - } - - .inlineDL dd:after{ - display: block; - content: ''; - } - - // ***************************** // * WIDE // *****************************/ From 54d881642d72a4a84c8dabb86aaee842c0b1928f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 8 Mar 2024 10:09:29 +0100 Subject: [PATCH 110/140] listpage, editor --- .../homebrew/brewRenderer/brewRenderer.less | 4 +--- client/homebrew/homebrew.less | 11 +++++++++++ shared/naturalcrit/codeEditor/codeEditor.less | 19 ++++++++++++++++++- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.less b/client/homebrew/brewRenderer/brewRenderer.less index d0551747c..ee66945f4 100644 --- a/client/homebrew/brewRenderer/brewRenderer.less +++ b/client/homebrew/brewRenderer/brewRenderer.less @@ -17,14 +17,12 @@ &::-webkit-scrollbar { width: 20px; - z-index: 2; } &::-webkit-scrollbar-thumb { width:20px; - background-color: #d3c1af; - border-right: 7px solid #2C3E50; + background: linear-gradient(90deg, #d3c1af 15px, #00000000 15px); } } diff --git a/client/homebrew/homebrew.less b/client/homebrew/homebrew.less index f4834a25c..4e282ecaf 100644 --- a/client/homebrew/homebrew.less +++ b/client/homebrew/homebrew.less @@ -15,6 +15,17 @@ } &.listPage .content { overflow-y : scroll; + + &::-webkit-scrollbar { + width: 20px; + z-index: 2; + + } + + &::-webkit-scrollbar-thumb { + width:20px; + background: linear-gradient(90deg, #d3c1af 15px, #00000000 15px); + } } } } \ No newline at end of file diff --git a/shared/naturalcrit/codeEditor/codeEditor.less b/shared/naturalcrit/codeEditor/codeEditor.less index 80af543d9..2568d0725 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.less +++ b/shared/naturalcrit/codeEditor/codeEditor.less @@ -17,13 +17,30 @@ text-shadow: none; font-weight: 600; color: grey; -} + } .sourceMoveFlash .CodeMirror-line{ animation-name: sourceMoveAnimation; animation-duration: 0.4s; } + .CodeMirror-sizer { + padding-right: 0 !important; + //this setting must be !important, because CodeMirror sets it inline. Achieves overlay scrollbar + } + + .CodeMirror-vscrollbar { + + &::-webkit-scrollbar { + width: 20px; + } + + &::-webkit-scrollbar-thumb { + width: 20px; + background: linear-gradient(90deg, #85858599 15px, #80808000 15px); + } + } + //.cm-tab { // background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAQAAACOs/baAAAARUlEQVR4nGJgIAG8JkXxUAcCtDWemcGR1lY4MvgzCEKY7jSBjgxBDAG09UEQzAe0AMwMHrSOAwEGRtpaMIwAAAAA//8DAG4ID9EKs6YqAAAAAElFTkSuQmCC) no-repeat right; //} From d0000cee115f75ca8fcd9b0f7c6dc926e8b476b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 8 Mar 2024 10:13:04 +0100 Subject: [PATCH 111/140] linting --- client/homebrew/brewRenderer/brewRenderer.less | 2 -- client/homebrew/homebrew.less | 3 --- shared/naturalcrit/codeEditor/codeEditor.less | 2 -- 3 files changed, 7 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.less b/client/homebrew/brewRenderer/brewRenderer.less index ee66945f4..edc8d503b 100644 --- a/client/homebrew/brewRenderer/brewRenderer.less +++ b/client/homebrew/brewRenderer/brewRenderer.less @@ -17,9 +17,7 @@ &::-webkit-scrollbar { width: 20px; - } - &::-webkit-scrollbar-thumb { width:20px; background: linear-gradient(90deg, #d3c1af 15px, #00000000 15px); diff --git a/client/homebrew/homebrew.less b/client/homebrew/homebrew.less index 4e282ecaf..ed86a8c28 100644 --- a/client/homebrew/homebrew.less +++ b/client/homebrew/homebrew.less @@ -18,10 +18,7 @@ &::-webkit-scrollbar { width: 20px; - z-index: 2; - } - &::-webkit-scrollbar-thumb { width:20px; background: linear-gradient(90deg, #d3c1af 15px, #00000000 15px); diff --git a/shared/naturalcrit/codeEditor/codeEditor.less b/shared/naturalcrit/codeEditor/codeEditor.less index 2568d0725..8ffbcad91 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.less +++ b/shared/naturalcrit/codeEditor/codeEditor.less @@ -30,11 +30,9 @@ } .CodeMirror-vscrollbar { - &::-webkit-scrollbar { width: 20px; } - &::-webkit-scrollbar-thumb { width: 20px; background: linear-gradient(90deg, #85858599 15px, #80808000 15px); From e36a638ae588dcf04eee6676023e2984949f788d Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sat, 9 Mar 2024 16:41:05 -0500 Subject: [PATCH 112/140] Add more tests --- tests/markdown/marked-extensions.test.js | 34 +++++++++++++++--------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index 6d3be056f..b4e5dee5c 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -2,52 +2,60 @@ const Markdown = require('naturalcrit/markdown.js'); -describe('Definition Terms', ()=>{ - test('Single Definition', function() { +describe('Inline Definition Lists', ()=>{ + test('Single Definition Term', function() { const source = 'My term :: My First Definition\n\n'; const rendered = Markdown.render(source); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); }); - test('Multiple Definition Terms, single line, single definition', function() { + test('Multiple Definition Terms', function() { const source = 'Term 1::Definition of Term 1\nTerm 2::Definition of Term 2\n\n'; const rendered = Markdown.render(source); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
'); }); +}); - test('PANdoc style list - Single Term, Single Definition', function() { +describe('Multiline Definition Lists', ()=>{ + test('Single Term, Single Definition', function() { const source = 'Term 1\n::Definition 1\n\n'; const rendered = Markdown.render(source); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
'); }); - test('PANdoc style list - Single Term, Plural Definitions', function() { + test('Single Term, Plural Definitions', function() { const source = 'Term 1\n::Definition 1\n::Definition 2\n\n'; const rendered = Markdown.render(source); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Definition 2
'); }); - test('PANdoc style list - Multiple Term, Single Definitions', function() { - const source = 'Term 1\n::Definition 1\nTerm 2\n::Definition 1\n\n'; + test('Multiple Term, Single Definitions', function() { + const source = 'Term 1\n::Definition 1\n\nTerm 2\n::Definition 1\n\n'; const rendered = Markdown.render(source); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Term 2
\n
Definition 1
'); }); - test('PANdoc style list - Multiple Term, Plural Definitions', function() { - const source = 'Term 1\n::Definition 1\n::Definition 2\nTerm 2\n::Definition 1\n::Definition 2\n\n'; + test('Multiple Term, Plural Definitions', function() { + const source = 'Term 1\n::Definition 1\n::Definition 2\n\nTerm 2\n::Definition 1\n::Definition 2\n\n'; const rendered = Markdown.render(source); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Definition 2
\n
Term 2
\n
Definition 1
\n
Definition 2
'); }); - test('PANdoc style list - Single Term, Single multiple line definition', function() { + test('Single Term, Single multi-line definition', function() { const source = 'Term 1\n::Definition 1\nand more and\nmore and more\n\n'; const rendered = Markdown.render(source); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more and more
'); }); - test('PANdoc style list - Multiple Term, Single multiple line definition', function() { - const source = 'Term 1\n::Definition 1\nand more and\nmore and more\n\n::Definition 2\n\n::Definition 3\n\n'; + test('Single Term, Plural multi-line definitions', function() { + const source = 'Term 1\n::Definition 1\nand more and more\n::Definition 2\n\n::Definition 3\n\n'; const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more and more
\n
Definition 2
\n
Definition 3
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Definition 2
\n
Definition 3
'); + }); + + test('Multiple Term, Single multi-line definition', function() { + const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n\n::Definition 2\n\n'; + const rendered = Markdown.render(source); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Term 2
\n
Definition 1
\n
Definition 2
'); }); }); From f3b17f46154105a36158171c3e3a834e9527bedc Mon Sep 17 00:00:00 2001 From: David Bolack Date: Sat, 9 Mar 2024 19:40:54 -0600 Subject: [PATCH 113/140] Fix bad merge --- shared/naturalcrit/markdown.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 227b9ad35..6c9cdc5cb 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -413,8 +413,6 @@ const definitionLists = { } }; -Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionLists, superSubScripts] }); - //v=====--------------------< Variable Handling >-------------------=====v// 242 lines const replaceVar = function(input, hoist=false, allowUnresolved=false) { const regex = /([!$]?)\[((?!\s*\])(?:\\.|[^\[\]\\])+)\]/g; @@ -660,7 +658,7 @@ function MarkedVariables() { //^=====--------------------< Variable Handling >-------------------=====^// Marked.use(MarkedVariables()); -Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, superSubScripts] }); +Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionLists, superSubScripts] }); Marked.use(mustacheInjectBlock); Marked.use({ renderer: renderer, tokenizer: tokenizer, mangle: false }); Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartypantsLite()); From d7756230fb3dc58ac27138d9dbe5a9c6f7d49d53 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Thu, 14 Mar 2024 00:02:18 -0400 Subject: [PATCH 114/140] More tests. Split into two extensions Split into two extensions as single-line and multiline are different syntaxes. Simplified a lot of logic and probably cleaner as their own NPM packages (eventually). --- shared/naturalcrit/markdown.js | 153 ++++++++--------------- tests/markdown/marked-extensions.test.js | 44 +++++-- 2 files changed, 86 insertions(+), 111 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 4bc14e19a..01fdbac96 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -294,117 +294,74 @@ const superSubScripts = { } }; -const definitionLists = { - name : 'definitionLists', // Block because style display: block +const definitionListsInline = { + name : 'definitionListsInline', level : 'block', - start(src) { return src.match(/^.*?::.*\n\n/m)?.index; }, // Hint to Marked.js to stop and check for a match + start(src) { return src.match(/^[^\n]*?::[^\n]*/m)?.index; }, // Hint to Marked.js to stop and check for a match tokenizer(src, tokens) { - const regex = /^([^\n]*?:?)\n?::(.*)(?:\n|$)|^.*(?:\n|$)/ym; + const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym; let match; let endIndex = 0; - const allDefinitions = []; - let currentDefinition = {}; - let inList = false; - let lastEmpty = false; - let inlineDefinitions = false; - let appending = false; + const definitions = []; while (match = regex.exec(src)) { - // If we aren't actively in a DL and we match just text, bail. - // If the last loop bailed with lastEmpty and we match just text, bail - if(((!inList) || (lastEmpty)) && (typeof match[1] == 'undefined') && (typeof match[2] == 'undefined')) { - break; - } - endIndex += match[0].length; - - // Check to see if this a match containing the start of a DD. - if(match[0].indexOf('::') > -1) { - inList = true; - // Check and see if we are currently in line appending mode, if so, match[1] should be - // appended to the last entry instead of being used as the next DT. - if(appending) { - const lastPos = typeof currentDefinition.dd.length !== 'undefined' ? currentDefinition.dd.length - 1 : 0; - currentDefinition.dd[lastPos] = `${currentDefinition.dd[lastPos]} ${match[1]?.trim()}`; - match[1] = ''; - } - appending = false; - // Check for a DT value. - if(match[1]?.trim()?.length>0) { - if(currentDefinition?.dt?.length) { - currentDefinition.dd.forEach((dd)=>{ - currentDefinition.ddo.push(this.lexer.inlineTokens(dd)); - }); - allDefinitions.push(currentDefinition); - currentDefinition = {}; - } - currentDefinition = { - dt : this.lexer.inlineTokens(match[1].trim()), - dd : [], - ddo : [] - }; - } else if(_.isEmpty(currentDefinition)) { - return; - } - // Test for a DD value. - if(match[2].trim().length>0) { - if((match[1]?.length > 0) && (match[0].indexOf('\n') > match[1]?.length)) { // Inline Style DD - currentDefinition.dd = currentDefinition.dd.concat([match[2].trim()]); - currentDefinition.dd.forEach((dd)=>{ - currentDefinition.ddo.push(this.lexer.inlineTokens(dd)); - }); - allDefinitions.push(currentDefinition); - inlineDefinitions = true; - currentDefinition = {}; - continue; - } - // Multi-line style DDs - const newDefinitions = _.flatten(match[2].split('\n::').filter((item)=>item).map((s)=>s.trim())); - if(newDefinitions?.length) { - currentDefinition.dd = currentDefinition.dd.concat(newDefinitions); - } - } else { - currentDefinition.dd.push(''); - } - lastEmpty = false; - } else if(inList) { // Regular line that might mark the end of a line. - appending = false; - if(inlineDefinitions) { - endIndex -= match[0].length; - break; - } - if(match[0].trim().length == 0) { - if(lastEmpty) { - continue; - } else { - lastEmpty = true; - } - } else { - lastEmpty = false; - const lastPos = typeof currentDefinition.dd.length !== 'undefined' ? currentDefinition.dd.length - 1 : 0; - currentDefinition.dd[lastPos] = `${currentDefinition.dd[lastPos]} ${match[0].trim()}`; - appending = true; - } - } - } - if(currentDefinition.hasOwnProperty('dt')) { - currentDefinition.dd.forEach((dd)=>{ - currentDefinition.ddo.push(this.lexer.inlineTokens(dd)); + definitions.push({ + dt : this.lexer.inlineTokens(match[1].trim()), + dd : this.lexer.inlineTokens(match[2].trim()) }); - allDefinitions.push(currentDefinition); + endIndex = regex.lastIndex; } - if(allDefinitions.length) { + if(definitions.length) { return { - type : 'definitionLists', - raw : src.slice(0, endIndex), - inlineDefinitions, - definitions : allDefinitions + type : 'definitionListsInline', + raw : src.slice(0, endIndex), + definitions + }; + } + }, + renderer(token) { + return `
${token.definitions.reduce((html, def)=>{ + return `${html}
${this.parser.parseInline(def.dt)}
` + + `
${this.parser.parseInline(def.dd)}
`; + }, '')}
`; + } +}; + +const definitionListsMultiline = { + name : 'definitionListsMultiline', + level : 'block', + start(src) { return src.match(/^[^\n]*\n::/m)?.index; }, // Hint to Marked.js to stop and check for a match + tokenizer(src, tokens) { + const regex = /(\n?\n?(?!::)[^\n]+?(?=\n::))|\n::(.(?:.|\n)*?(?=(?:\n::)|(?:\n\n)|$))/y; + let match; + let endIndex = 0; + const definitions = []; + while (match = regex.exec(src)) { + if(match[1]) { + definitions.push({ + dt : this.lexer.inlineTokens(match[1].trim()), + dds : [] + }); + } + if(match[2]) { + definitions[definitions.length - 1].dds.push( + this.lexer.inlineTokens(match[2].trim().replace(/\s/g,' ')) + ) + } + endIndex = regex.lastIndex; + } + if(definitions.length) { + return { + type : 'definitionListsMultiline', + raw : src.slice(0, endIndex), + definitions }; } }, renderer(token) { let returnVal = `
`; token.definitions.forEach((def)=>{ - let dds = def.ddo.map((s)=>{ - return `${token.inlineDefinitions ? '' : '\n'}
${this.parser.parseInline(s).trim()}
`; + let dds = def.dds.map((s)=>{ + return `\n
${this.parser.parseInline(s).trim()}
`; }).join(''); returnVal += `
${this.parser.parseInline(def.dt)}
${dds}\n`; }); @@ -658,7 +615,7 @@ function MarkedVariables() { //^=====--------------------< Variable Handling >-------------------=====^// Marked.use(MarkedVariables()); -Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionLists, superSubScripts] }); +Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionListsInline, definitionListsMultiline, superSubScripts] }); Marked.use(mustacheInjectBlock); Marked.use({ renderer: renderer, tokenizer: tokenizer, mangle: false }); Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartypantsLite()); diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index b4e5dee5c..8d6c3c1c4 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -3,59 +3,77 @@ const Markdown = require('naturalcrit/markdown.js'); describe('Inline Definition Lists', ()=>{ + test('No Term 1 Definition', function() { + const source = ':: My First Definition\n\n'; + const rendered = Markdown.render(source).trim(); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My First Definition
'); + }); + test('Single Definition Term', function() { const source = 'My term :: My First Definition\n\n'; - const rendered = Markdown.render(source); + const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); }); test('Multiple Definition Terms', function() { const source = 'Term 1::Definition of Term 1\nTerm 2::Definition of Term 2\n\n'; - const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
'); + const rendered = Markdown.render(source).trim(); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2
Definition of Term 2
'); }); }); describe('Multiline Definition Lists', ()=>{ test('Single Term, Single Definition', function() { const source = 'Term 1\n::Definition 1\n\n'; - const rendered = Markdown.render(source); + const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
'); }); test('Single Term, Plural Definitions', function() { const source = 'Term 1\n::Definition 1\n::Definition 2\n\n'; - const rendered = Markdown.render(source); + const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Definition 2
'); }); test('Multiple Term, Single Definitions', function() { const source = 'Term 1\n::Definition 1\n\nTerm 2\n::Definition 1\n\n'; - const rendered = Markdown.render(source); + const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Term 2
\n
Definition 1
'); }); test('Multiple Term, Plural Definitions', function() { const source = 'Term 1\n::Definition 1\n::Definition 2\n\nTerm 2\n::Definition 1\n::Definition 2\n\n'; - const rendered = Markdown.render(source); + const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1
\n
Definition 2
\n
Term 2
\n
Definition 1
\n
Definition 2
'); }); test('Single Term, Single multi-line definition', function() { const source = 'Term 1\n::Definition 1\nand more and\nmore and more\n\n'; - const rendered = Markdown.render(source); + const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more and more
'); }); test('Single Term, Plural multi-line definitions', function() { - const source = 'Term 1\n::Definition 1\nand more and more\n::Definition 2\n\n::Definition 3\n\n'; - const rendered = Markdown.render(source); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Definition 2
\n
Definition 3
'); + const source = 'Term 1\n::Definition 1\nand more and more\n::Definition 2\nand more\nand more\n::Definition 3\n\n'; + const rendered = Markdown.render(source).trim(); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Definition 2 and more and more
\n
Definition 3
'); }); test('Multiple Term, Single multi-line definition', function() { - const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n\n::Definition 2\n\n'; - const rendered = Markdown.render(source); + const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n::Definition 2\n\n'; + const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Term 2
\n
Definition 1
\n
Definition 2
'); }); + + test('Multiple Term, Single multi-line definition, followed by an inline dl', function() { + const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n::Definition 2\n\n::Inline Definition (no term)'; + const rendered = Markdown.render(source).trim(); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Term 2
\n
Definition 1
\n
Definition 2
Inline Definition (no term)
'); + }); + + test('Multiple Term, Single multi-line definition, followed by paragraph', function() { + const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n::Definition 2\n\nParagraph'; + const rendered = Markdown.render(source).trim(); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Term 2
\n
Definition 1
\n
Definition 2

Paragraph

'); + }); }); From f37da196496dbbaa25bf0d6a97fc4fa6232c5c18 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Thu, 14 Mar 2024 00:03:28 -0400 Subject: [PATCH 115/140] lint --- shared/naturalcrit/markdown.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 01fdbac96..f82ec3c32 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -344,8 +344,8 @@ const definitionListsMultiline = { } if(match[2]) { definitions[definitions.length - 1].dds.push( - this.lexer.inlineTokens(match[2].trim().replace(/\s/g,' ')) - ) + this.lexer.inlineTokens(match[2].trim().replace(/\s/g, ' ')) + ); } endIndex = regex.lastIndex; } @@ -360,7 +360,7 @@ const definitionListsMultiline = { renderer(token) { let returnVal = `
`; token.definitions.forEach((def)=>{ - let dds = def.dds.map((s)=>{ + const dds = def.dds.map((s)=>{ return `\n
${this.parser.parseInline(s).trim()}
`; }).join(''); returnVal += `
${this.parser.parseInline(def.dt)}
${dds}\n`; From 21c0916693e8f1b0408b449d51c679e8c018f688 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 17 Mar 2024 21:34:31 +1300 Subject: [PATCH 116/140] Switch to boolean lock state --- server/homebrew.api.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index d0c741a43..567dc9cf7 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -54,11 +54,8 @@ const api = { }); stub = stub?.toObject(); - if(stub?.lock?.state) { - // State 1 : Locked for everything - // State 2 : Edit only - if(stub.lock.state == 1 || (stub.lock.state == 2 && accessType != 'edit')) - throw { HBErrorCode: '100', code: stub.lock.code, message: stub.lock.message, brewId: accessType === 'edit' ? stub.editId : stub.shareId, brewTitle: stub.title }; + if(stub?.lock?.locked && accessType != 'edit') { + throw { HBErrorCode: '100', code: stub.lock.code, message: stub.lock.message, brewId: stub.shareId, brewTitle: stub.title }; } // If there is a google id, try to find the google brew From 7f168f35b894dd07d6f5f68b9d26d3afc4d7c2d6 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 17 Mar 2024 21:35:03 +1300 Subject: [PATCH 117/140] Add test for locked brew --- server/homebrew.api.spec.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/server/homebrew.api.spec.js b/server/homebrew.api.spec.js index 55a8c414f..8a4748e38 100644 --- a/server/homebrew.api.spec.js +++ b/server/homebrew.api.spec.js @@ -117,7 +117,7 @@ describe('Tests for api', ()=>{ id : '123456789012345678901234567890123abcdefghijkl' } }); - + expect(googleId).toEqual('123456789012345678901234567890123'); expect(id).toEqual('abcdefghijkl'); }); @@ -128,7 +128,7 @@ describe('Tests for api', ()=>{ id : '123456789012345678901234567890123abcdefghij' } }); - + expect(googleId).toEqual('123456789012345678901234567890123'); expect(id).toEqual('abcdefghij'); }); @@ -298,6 +298,18 @@ describe('Tests for api', ()=>{ expect(model.get).toHaveBeenCalledWith({ shareId: '1' }); expect(google.getGoogleBrew).toHaveBeenCalledWith('2', '1', 'share'); }); + + it('access is denied to a locked brew', async()=>{ + const lockBrew = { title: 'test brew', shareId: '1', lock: { locked: true, code: 404, message: 'brew locked' } }; + model.get = jest.fn(()=>toBrewPromise(lockBrew)); + api.getId = jest.fn(()=>({ id: '1', googleId: undefined })); + + const fn = api.getBrew('share', false); + const req = { brew: {} }; + const next = jest.fn(); + + await expect(fn(req, null, next)).rejects.toEqual({ 'HBErrorCode': '100', 'brewId': '1', 'brewTitle': 'test brew', 'code': 404, 'message': 'brew locked' }); + }); }); describe('mergeBrewText', ()=>{ From b727c56e56e2d560564a32bcbde69c88c67091b4 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 18 Mar 2024 16:52:43 -0400 Subject: [PATCH 118/140] Fix Dicefont --- themes/V3/5ePHB/style.less | 1 + themes/fonts/icon fonts/dicefont.less | 15 ++++++--------- themes/fonts/icon fonts/dicefont.woff | Bin 5436 -> 0 bytes themes/fonts/icon fonts/font-icons.less | 6 +++--- 4 files changed, 10 insertions(+), 12 deletions(-) delete mode 100644 themes/fonts/icon fonts/dicefont.woff diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 758489961..a529d591f 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -1,5 +1,6 @@ @import (less) './themes/assets/assets.less'; @import (less) './themes/fonts/icon fonts/font-icons.less'; +@import (less) './themes/fonts/icon fonts/dicefont.less'; :root { //Colors diff --git a/themes/fonts/icon fonts/dicefont.less b/themes/fonts/icon fonts/dicefont.less index 887a7c27c..b3e199962 100644 --- a/themes/fonts/icon fonts/dicefont.less +++ b/themes/fonts/icon fonts/dicefont.less @@ -1,13 +1,10 @@ -/* - Icon Font: dicefont -*/ +/* Icon Font: dicefont */ @font-face { - font-family: 'DiceFont'; - src: url('../../../fonts/5e/dicefont.woff2') format('woff2'), - url('../../../fonts/5e/dicefont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} + font-family : 'DiceFont'; + font-style : normal; + font-weight : normal; + src: url('../../../fonts/icon fonts/dicefont.woff2'); +} .df { display: inline-block; diff --git a/themes/fonts/icon fonts/dicefont.woff b/themes/fonts/icon fonts/dicefont.woff deleted file mode 100644 index d6f54f38e4ed8cac6ca23368944b9556a4e4f0a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5436 zcmZu#cQjm4_nk3X^lp@47=j>-gb+jxqD%A=ql@066J3bj>x8I57$s!%7Bw+yw5ZXd z_g=oq_xt|*oxApXYoD|4J@>7*)_v=3FAW6+01$u;S_uH@zx%86f7kyn6cn`8usSHV z#)t)T%5;dj#w!6K005YW<;qwfG;vJ6SvZ=x001}~Sgwk#y*&7M9&h340mbI9c>wNz zK?#(%F>}XqS}>Lq{=?lJ0A%CfV+{a+L;(PD4FKT9?~&OHBU>voOYAy=Sd9P{B22EY z1Z}ZNYz~3t5G*)AYrsZZM-OjoZu_4GiyuUz_{R>;7FZpQ2bOpL18|XM+tJJ$+ZPyw z<*Zmh0X2YfCo@MY0D$T}mSg7wn_0hdSh+a6W9Lz00W8GsDW{NQqsM#30%3_j0G12w z&|C-CBBl)AGQrY|mG^BVa@KC!!Vh@=$UxIWfqbL@(#3n5fdAPnWS=8HA};C-mIB_K*na3dHOz?chs{olITb(d&xaB6VyNF+Qq zIJg6%{LU)D($)-tFh^Kf2LTm;__%~h?rLVX2+ecR?1T0@5Q%RL0fWD^T|x@Cpdb#w z2t{J@-(FKcp?v_H@}P5E5QrKCV%6=71=#`faS}BlM01IGbd25np`Sy@9olfFMMxDw%}w1- zqd;>?8%KLh7eY@#9|)!c=YfY9zziM?#SDFngpB%(fsD;eI835U(M-F{+|0hr;}9~4 z8zc$R3^`?yW=Ub`VZ~+DX03$MK$D>D&~r9hnp%f&m51Q>r@0bJ#KDaOP*kthFd%li~2SgmrqMoXWdc3%QX*kgX)YPW;#7?35|H>C88@g;aTzG3iI&Z)Hk-NO*WjF z8fBm2Y9!5n8c!=ss8 zFS`qSuKOVtE?xow(W0to%U-DKgJeOi?pI$$V^*G*lk~ZQ-E%mUWJTZsq*S=isi}N1 z#_L+Tixe16s+zvaN%y|KLTcsv?Ru?5$PKfe&J@m8g@hyin;7>-HMV;{Cgd{W6VN17 zAR(G$9yPs37qTL${A1qIVK2scKko~WtR-g^+SK?iOvv2~D2Vk_(nZlNg$C>(Un>|I zsK5;qE&X{zOn)k6SxUdq_LJ|87uI2B&?6co@(r>+e=s#RcHKgiwC9NFxEXdDD%8{O z_RBf{<9cLqM#4`W?f~Z{N~*A-5#!{MeMvzGjLAsj;3JY;-Vx{KDHO^~Nia`j|C|N2 z;jj`bzQbKop}OGei)#O^Cbn}DV=D|BiBkSRNW|W)WS$+J(yk<^tf@4D__0Qet}{$} zNtoELwM`jGUJDk_w>>5$J1KgSB)D=|v;D*8aM^Dkvo9G`Y8t}V7b=W^n33xjTk99= zypS72>B@kZbn)o>DYFYw6bA-re6%{bZ4%rRUdvTz)vFfd8+cVVbs4vy-mQ&xMr7V# z^w%H+m>7tJ=-p%UwjW9KzF9IqaMrIo_ysqbQYRlMx(oN;5}fQ;j%LTtiMHBYS!^N? zo~WmKLT-J0%$L_vDR$&G4CLcnIK#fYYdswJ{ch5#k;e9q3Btx$+%g_f7wrhtrKIZf-lklNc`NK_aatXPMBeJp%V?7_5%!MVEJ>!%Po{`f`a!E#Mp8vu(J< z$Ds!MwhmGo6{pc@uCjwwU%!tw@Mo!NJN4t0L&vw;z=B|2>JD>{*i6p(FSyt~c{~bT;qRVNxzZS*A z8l0_WNrGPFXT1oQyZvIdt_gCHAJElo#W;U=v=E3DeS2+s=X)!)zO;A7w&V`nvB}MnM^HtqP??p~jXqN4JmaSmnO+7thv6{IRTT*PmV~Ioce57yV$FWND8aT*H;SYxc#lGmQXK5JBxfh z%fDK_)btLZPK?C;;^G~wEoxrdIr2TM*bZKbmdfk=+by+=6W?tatu(W5XoJVm$;WPX zCRP?hnfy2Ffr^z9x{Hm>tk2z;WtQ$U4lkjXhJ~pZ&Etz(RjyQwFe!Za z#c#=}WP^tlWYJlL9(q5lgibQ#a>9IgB5EaR{9&I>Vg;%Dw|vXeL-c%Mnr=MutVJ_! zu2L-m3>{vb7a0#uP>a&DhzI45wTqG*O9y5n{<3r-Q=n{oyCn0xzlJ7RqPrdS?AJ|_ zrl-q%aB-xzQtVf7f=mz5*DD-_Bkg(wxVaI&4G~cm@hV`ZbL07v?VIEhfZ6K5I1THO<=7DxN*BuHv1T z+g{*fyx&?5MrZr5E%$vrNjC7^z2Me5Ht=;cLC ztD2y)sf$?=apFu_I6Yp3*i0DoBLz6FVv4=#`0{HXDn-^FB;Y4&OxUN!=V%T`yhj-8BX}{~eC=LcBX^*t<3( zX!bxHv9)DS5j%-VAj2yXfiMc3CWUha6k zgz-!|Ld8P{qpB{dccOCX3fH%U727u&-Sb$z%5Tub@zr!B3*?{iuFd8krDr$Z3j9TEv1y_G0>B_opym!u6`-|(HR#BgGZ`dT(CwfB!G?H(t5pRopj1pRA)WK(@Hg7!*-i>@W((oywQYiR{O zqc#8WsL%{PlJv*-u^jTAF#24%Sz}V3Iio|$YcLDPN0KbLL7Ih?$FErUP99|`BS@20 zG`XDUoT`vni`3D8h7W&nO*P9)#ydZEy5tLz*yQK+fd`{CB~y85gfR5P;p}txW22D_ z<0{49x32wWHS=~_9a+A{;gM4kgtKS*s6zPL@_5new*2g|Lkq8C%v_6tYf(b0OWjIHN`95I3^r4@H%n0t8w`#7N?tfj?ZJgxl0dEY&B%1eG%B<_SwYbZqbmSw| ztNM(2O4+N2FHH30>SLLA?Db03U*WkyGH*7o2HfPOf-44p(Rg&W)^|8Or-lbBv)%pP z1??7>Y@|=TTKN#-JIq3dK?={Dy4Y^{A_UH6Hmat2IRkD!et?PhKEBEZ6b-W|Dvu2# zQLii&CND&8#ZT_esq{2s@Kgcm!L8{lImMN>>(d{XMP;ma3ts=QOcrm zu)!Ds!Ot~b>G37)XoS-^N{mOEm`$^tei5mPyy0(G`SzN?iNNb^cf((qKoE!T&^#XH z8>sp#aiJQE7*bSu{HjN~WB2S>WNeBGOgg3UqglK<9{Ul;p3lg-# z^5hnO&3aEgo1an7(?D^vY^};hz}V&Cxvg4xW$N5O#_O*u14h3pKAZaQ%hFGsb7C^) zRnIUse~$_(^3ULbm<;oJ^X0^7F~HX}8)bvqgJz!3lBm<^Etr(gU#qa^l?T_Q?L1sP zOYx?rQ&Zly$3+|hGx3RJF&~4DuzwW8C|3Lc0DCaC5t8~#tUQFwR{ zr~t!|-7s^hbH9G%X8tCRu&1wCABRq#IEb>bVAk^QFXsu^+O zs{kMm(&ze-)jf`H6q~*iq;e40h*`{-r%Z&dKF0SaKNkr~^BXmleKNez)R|_jls>fei)etc8WgU9NrJ+lXY~GyM z6w{BG01>n=2M2FXV>}aP(skRt_BNXL+CZ$b@KLPK5fCqF*CkC6zOdO_ot<$1%QX9! zv=JinePGNM&2D%N9S*GH>1IG?-J7vBKD6w^1TMed-}XBN7g__FGx7G{3xJI^J~;^X z*1Cldh_2EIi1OGR`}3}QcUB#exF?UjsR=KBJvE&CfGej-TfO>wxtju}#Et9&>ng)Z z8_y;L!ic*K&+8=!ue^7a&()&k1YZtfOq?8!i_Ai4ZH>bq!Dyru)v557$l)hle*u)a z5BB>EjhiN^CjBK|ZSMzBt0>f`eeLh#)dg9746n17jk2{rZ!$BIHKaoBu{3V4n283TxG>m4Pb)7Pk7nOj8f)$0}f0a)( zS{^Av(NQm-S8L%5@z#GfR%ILSd}$k&I!tt9xai#ZHptP*LoUEljjAmo>5)gob-PCbI0GNv#H%HrMT&_sk(Wc stvo9=v(UbR^{9YYKN9DkKZihA0z!;-E^eTg|9rj}e1LQto+JS9AEW9Zm;e9( diff --git a/themes/fonts/icon fonts/font-icons.less b/themes/fonts/icon fonts/font-icons.less index f8eb19f11..be8efa734 100644 --- a/themes/fonts/icon fonts/font-icons.less +++ b/themes/fonts/icon fonts/font-icons.less @@ -1,6 +1,6 @@ -/* Main Font, serif */ +/* Icon Font: Elderberry Inn */ @font-face { - font-family : 'Eldeberry-Inn'; + font-family : 'Elderberry-Inn'; font-style : normal; font-weight : normal; src : url('../../../fonts/icon fonts/Elderberry-Inn-Icons.woff2'); @@ -10,7 +10,7 @@ span.ei { display : inline-block; margin-right : 3px; - font-family : 'Eldeberry-Inn'; + font-family : 'Elderberry-Inn'; line-height : 1; vertical-align : baseline; -moz-osx-font-smoothing : grayscale; From 7e48696fb578ede875075784069f250518ab0ae2 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 18 Mar 2024 16:55:08 -0400 Subject: [PATCH 119/140] lint --- themes/fonts/icon fonts/dicefont.less | 211 +++++++++++++------------- 1 file changed, 105 insertions(+), 106 deletions(-) diff --git a/themes/fonts/icon fonts/dicefont.less b/themes/fonts/icon fonts/dicefont.less index b3e199962..78a88f03a 100644 --- a/themes/fonts/icon fonts/dicefont.less +++ b/themes/fonts/icon fonts/dicefont.less @@ -3,113 +3,112 @@ font-family : 'DiceFont'; font-style : normal; font-weight : normal; - src: url('../../../fonts/icon fonts/dicefont.woff2'); + src : url('../../../fonts/icon fonts/dicefont.woff2'); } .df { - display: inline-block; - font-family: 'DiceFont'; - font-style: normal; - font-weight: normal; - font-variant: normal; - line-height: 1; - text-decoration: inherit; - text-rendering: optimizeLegibility; - text-transform: none; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-smooth: antialiased; - &.F:before { content: '\f190'; } - &.F-minus:before { content: '\f191'; } - &.F-plus:before { content: '\f192'; } - &.F-zero:before { content: '\f193'; } - &.d10:before { content: '\f194'; } - &.d10-0:before { content: '\f100'; } - &.d10-1:before { content: '\f101'; } - &.d10-10:before { content: '\f102'; } - &.d10-2:before { content: '\f103'; } - &.d10-3:before { content: '\f104'; } - &.d10-4:before { content: '\f105'; } - &.d10-5:before { content: '\f106'; } - &.d10-6:before { content: '\f107'; } - &.d10-7:before { content: '\f108'; } - &.d10-8:before { content: '\f109'; } - &.d10-9:before { content: '\f10a'; } - &.d12:before { content: '\f195'; } - &.d12-1:before { content: '\f10b'; } - &.d12-10:before { content: '\f10c'; } - &.d12-11:before { content: '\f10d'; } - &.d12-12:before { content: '\f10e'; } - &.d12-2:before { content: '\f10f'; } - &.d12-3:before { content: '\f110'; } - &.d12-4:before { content: '\f111'; } - &.d12-5:before { content: '\f112'; } - &.d12-6:before { content: '\f113'; } - &.d12-7:before { content: '\f114'; } - &.d12-8:before { content: '\f115'; } - &.d12-9:before { content: '\f116'; } - &.d2:before { content: '\f196'; } - &.d2-1:before { content: '\f117'; } - &.d2-2:before { content: '\f118'; } - &.d20:before { content: '\f197'; } - &.d20-1:before { content: '\f119'; } - &.d20-10:before { content: '\f11a'; } - &.d20-11:before { content: '\f11b'; } - &.d20-12:before { content: '\f11c'; } - &.d20-13:before { content: '\f11d'; } - &.d20-14:before { content: '\f11e'; } - &.d20-15:before { content: '\f11f'; } - &.d20-16:before { content: '\f120'; } - &.d20-17:before { content: '\f121'; } - &.d20-18:before { content: '\f122'; } - &.d20-19:before { content: '\f123'; } - &.d20-2:before { content: '\f124'; } - &.d20-20:before { content: '\f125'; } - &.d20-3:before { content: '\f126'; } - &.d20-4:before { content: '\f127'; } - &.d20-5:before { content: '\f128'; } - &.d20-6:before { content: '\f129'; } - &.d20-7:before { content: '\f12a'; } - &.d20-8:before { content: '\f12b'; } - &.d20-9:before { content: '\f12c'; } - &.d4:before { content: '\f198'; } - &.d4-1:before { content: '\f12d'; } - &.d4-2:before { content: '\f12e'; } - &.d4-3:before { content: '\f12f'; } - &.d4-4:before { content: '\f130'; } - &.d6:before { content: '\f199'; } - &.d6-1:before { content: '\f131'; } - &.d6-2:before { content: '\f132'; } - &.d6-3:before { content: '\f133'; } - &.d6-4:before { content: '\f134'; } - &.d6-5:before { content: '\f135'; } - &.d6-6:before { content: '\f136'; } - &.d8:before { content: '\f19a'; } - &.d8-1:before { content: '\f137'; } - &.d8-2:before { content: '\f138'; } - &.d8-3:before { content: '\f139'; } - &.d8-4:before { content: '\f13a'; } - &.d8-5:before { content: '\f13b'; } - &.d8-6:before { content: '\f13c'; } - &.d8-7:before { content: '\f13d'; } - &.d8-8:before { content: '\f13e'; } - &.dot-d6:before { content: '\f19b'; } - &.dot-d6-1:before { content: '\f13f'; } - &.dot-d6-2:before { content: '\f140'; } - &.dot-d6-3:before { content: '\f141'; } - &.dot-d6-4:before { content: '\f142'; } - &.dot-d6-5:before { content: '\f143'; } - &.dot-d6-6:before { content: '\f18f'; } - &.small-dot-d6-1:before { content: '\f183'; } - &.small-dot-d6-2:before { content: '\f184'; } - &.small-dot-d6-3:before { content: '\f185'; } - &.small-dot-d6-4:before { content: '\f186'; } - &.small-dot-d6-5:before { content: '\f187'; } - &.small-dot-d6-6:before { content: '\f188'; } - &.solid-small-dot-d6-1:before { content: '\f189'; } - &.solid-small-dot-d6-2:before { content: '\f18a'; } - &.solid-small-dot-d6-3:before { content: '\f18b'; } - &.solid-small-dot-d6-4:before { content: '\f18c'; } - &.solid-small-dot-d6-5:before { content: '\f18d'; } - &.solid-small-dot-d6-6:before { content: '\f18e'; } + display : inline-block; + font-family : 'DiceFont'; + font-style : normal; + font-weight : normal; + font-variant : normal; + line-height : 1; + text-decoration : inherit; + text-transform : none; + text-rendering : optimizeLegibility; + -moz-osx-font-smoothing : grayscale; + -webkit-font-smoothing : antialiased; + &.F::before { content : '\f190'; } + &.F-minus::before { content : '\f191'; } + &.F-plus::before { content : '\f192'; } + &.F-zero::before { content : '\f193'; } + &.d10::before { content : '\f194'; } + &.d10-0::before { content : '\f100'; } + &.d10-1::before { content : '\f101'; } + &.d10-10::before { content : '\f102'; } + &.d10-2::before { content : '\f103'; } + &.d10-3::before { content : '\f104'; } + &.d10-4::before { content : '\f105'; } + &.d10-5::before { content : '\f106'; } + &.d10-6::before { content : '\f107'; } + &.d10-7::before { content : '\f108'; } + &.d10-8::before { content : '\f109'; } + &.d10-9::before { content : '\f10a'; } + &.d12::before { content : '\f195'; } + &.d12-1::before { content : '\f10b'; } + &.d12-10::before { content : '\f10c'; } + &.d12-11::before { content : '\f10d'; } + &.d12-12::before { content : '\f10e'; } + &.d12-2::before { content : '\f10f'; } + &.d12-3::before { content : '\f110'; } + &.d12-4::before { content : '\f111'; } + &.d12-5::before { content : '\f112'; } + &.d12-6::before { content : '\f113'; } + &.d12-7::before { content : '\f114'; } + &.d12-8::before { content : '\f115'; } + &.d12-9::before { content : '\f116'; } + &.d2::before { content : '\f196'; } + &.d2-1::before { content : '\f117'; } + &.d2-2::before { content : '\f118'; } + &.d20::before { content : '\f197'; } + &.d20-1::before { content : '\f119'; } + &.d20-10::before { content : '\f11a'; } + &.d20-11::before { content : '\f11b'; } + &.d20-12::before { content : '\f11c'; } + &.d20-13::before { content : '\f11d'; } + &.d20-14::before { content : '\f11e'; } + &.d20-15::before { content : '\f11f'; } + &.d20-16::before { content : '\f120'; } + &.d20-17::before { content : '\f121'; } + &.d20-18::before { content : '\f122'; } + &.d20-19::before { content : '\f123'; } + &.d20-2::before { content : '\f124'; } + &.d20-20::before { content : '\f125'; } + &.d20-3::before { content : '\f126'; } + &.d20-4::before { content : '\f127'; } + &.d20-5::before { content : '\f128'; } + &.d20-6::before { content : '\f129'; } + &.d20-7::before { content : '\f12a'; } + &.d20-8::before { content : '\f12b'; } + &.d20-9::before { content : '\f12c'; } + &.d4::before { content : '\f198'; } + &.d4-1::before { content : '\f12d'; } + &.d4-2::before { content : '\f12e'; } + &.d4-3::before { content : '\f12f'; } + &.d4-4::before { content : '\f130'; } + &.d6::before { content : '\f199'; } + &.d6-1::before { content : '\f131'; } + &.d6-2::before { content : '\f132'; } + &.d6-3::before { content : '\f133'; } + &.d6-4::before { content : '\f134'; } + &.d6-5::before { content : '\f135'; } + &.d6-6::before { content : '\f136'; } + &.d8::before { content : '\f19a'; } + &.d8-1::before { content : '\f137'; } + &.d8-2::before { content : '\f138'; } + &.d8-3::before { content : '\f139'; } + &.d8-4::before { content : '\f13a'; } + &.d8-5::before { content : '\f13b'; } + &.d8-6::before { content : '\f13c'; } + &.d8-7::before { content : '\f13d'; } + &.d8-8::before { content : '\f13e'; } + &.dot-d6::before { content : '\f19b'; } + &.dot-d6-1::before { content : '\f13f'; } + &.dot-d6-2::before { content : '\f140'; } + &.dot-d6-3::before { content : '\f141'; } + &.dot-d6-4::before { content : '\f142'; } + &.dot-d6-5::before { content : '\f143'; } + &.dot-d6-6::before { content : '\f18f'; } + &.small-dot-d6-1::before { content : '\f183'; } + &.small-dot-d6-2::before { content : '\f184'; } + &.small-dot-d6-3::before { content : '\f185'; } + &.small-dot-d6-4::before { content : '\f186'; } + &.small-dot-d6-5::before { content : '\f187'; } + &.small-dot-d6-6::before { content : '\f188'; } + &.solid-small-dot-d6-1::before { content : '\f189'; } + &.solid-small-dot-d6-2::before { content : '\f18a'; } + &.solid-small-dot-d6-3::before { content : '\f18b'; } + &.solid-small-dot-d6-4::before { content : '\f18c'; } + &.solid-small-dot-d6-5::before { content : '\f18d'; } + &.solid-small-dot-d6-6::before { content : '\f18e'; } } \ No newline at end of file From e3b2d33a5ec57eb5a1de7bff42656292372b6974 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 18 Mar 2024 17:24:39 -0400 Subject: [PATCH 120/140] v3.12.0 --- changelog.md | 73 ++++++++++++++++++++++++++++++++++++++++++++--- package-lock.json | 4 +-- package.json | 2 +- 3 files changed, 72 insertions(+), 7 deletions(-) diff --git a/changelog.md b/changelog.md index e86c2ea0f..18c3205f7 100644 --- a/changelog.md +++ b/changelog.md @@ -84,7 +84,70 @@ pre { ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). -### Wednesday 21/2/2024 - v3.11.0 +### Monday 18/3/2024 - v3.12.0 +{{taskList + +##### 5e-Cleric + +* [x] Fix language-specific hyphenation on print page + +Fixes issue [#3294](https://github.com/naturalcrit/homebrewery/issues/3294) + +* [x] Upgrade Font-Awesome to v6.51 + +* [x] Allow downloaded files to be uploaded via {{openSans **NEW {{fa,fa-plus-square}} → FROM UPLOAD {{fa,fa-upload}}**}} + +##### G-Ambatte + +* [x] Fix an edge case crash with empty documents + +Fixes issue [#3315](https://github.com/naturalcrit/homebrewery/issues/3315) + +* [x] Brews on the user page can be searched by tag; clicking a tag adds it to the filter + +Fixes issue [#3164](https://github.com/naturalcrit/homebrewery/issues/3164) + +* [x] Add *DiceFont* icons {{df,d20-20}} `{{df,icon-name}}` + +##### abquintic + +* [x] Fix ^super^ and ^^sub^^ highlighting in the text editor + +* [x] Add new syntax for multiline Definition Lists: + + +``` +Term +::Definition 1 +::Definition 2 +with more text +``` + +produces: + +Term +::Definition 1 +::Definition 2 +with more text + +Fixes issue [#2340](https://github.com/naturalcrit/homebrewery/issues/2340) + +##### RKuerten : +* [x] Fix monster stat block backgrounds on print page + +Fixes issue [#3275](https://github.com/naturalcrit/homebrewery/issues/3275) + +* [x] Added new text editor theme: "Darkvision". + +##### calculuschild, G-Ambatte, 5e-Cleric + +* [x] Codebase and UI cleanup +}} + +\page + + +### Friday 21/2/2024 - v3.11.0 {{taskList ##### Gazook89 @@ -166,14 +229,16 @@ Fixes issue [1488](https://github.com/naturalcrit/homebrewery/issues/1488) Fixes issues [2510](https://github.com/naturalcrit/homebrewery/issues/2510), [2975](https://github.com/naturalcrit/homebrewery/issues/2975) -* [x] New Variables syntax. See below for details. +* [x] Brew Variables }} +\ + {{wide ### Brew Variable Syntax -You may already be familiar with `[link](url)` and `![image](url)` syntax. We have expanded this to include a third `$[variable](text)` syntax. All three of these syntaxes now share a common set of features: +You may already be familiar with `[link](url)` and `![image](url)` synax. We have expanded this to include a third `$[variable](text)` syntax. All three of these syntaxes now share a common set of features: {{varSyntaxTable | syntax | description | @@ -1512,7 +1577,7 @@ myStyle {color: black} ### Sunday, 29/05/2016 - v2.1.0 - Finally added a syntax for doing spell lists. A bit in-depth about why this took so long. Essentially I'm running out of syntax to use in stardard Markdown. There are too many unique elements in the PHB-style to be mapped. I solved this earlier by stacking certain elements together (eg. an `
` before a `blockquote` turns it into moster state block), but those are getting unweildly. I would like to simply wrap these in `div`s with classes, but unfortunately Markdown stops processing when within HTML blocks. To get around this I wrote my own override to the Markdown parser and lexer to process Markdown within a simple div class wrapper. This should open the door for more unique syntaxes in the future. Big step! - Override Ctrl+P (and cmd+P) to launch to the print page. Many people try to just print either the editing or share page to get a PDF. While this dones;t make much sense, I do get a ton of issues about it. So now if you try to do this, it'll just bring you imediately to the print page. Everybody wins! -- The onboarding flow has also been confusing a few users (Homepage -> new -> save -> edit page). If you edit the Homepage text now, a Call to Action to save your work will pop-up. +- The onboarding flow has also been confusing a few users (Homepage → new → save → edit page). If you edit the Homepage text now, a Call to Action to save your work will pop-up. - Added a 'Recently Edited' and 'Recently Viewed' nav item to the edit and share page respectively. Each will remember the last 8 items you edited or viewed and when you viewed it. Makes use of the new title attribute of brews to easy navigatation. - Paragraphs now indent properly after lists (thanks u/slitjen!) diff --git a/package-lock.json b/package-lock.json index 29ea015b6..3c9d01f06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "homebrewery", - "version": "3.11.0", + "version": "3.12.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "homebrewery", - "version": "3.11.0", + "version": "3.12.0", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 0cf6fe773..9ba33019c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "homebrewery", "description": "Create authentic looking D&D homebrews using only markdown", - "version": "3.11.0", + "version": "3.12.0", "engines": { "npm": "^10.2.x", "node": "^20.8.x" From 13d679c4bf5ffd2210786d314d50e8fd21475f6b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 21:26:34 +0000 Subject: [PATCH 121/140] Bump mongoose from 8.2.1 to 8.2.2 Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.2.1 to 8.2.2. - [Release notes](https://github.com/Automattic/mongoose/releases) - [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md) - [Commits](https://github.com/Automattic/mongoose/compare/8.2.1...8.2.2) --- updated-dependencies: - dependency-name: mongoose dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3c9d01f06..ce48f758e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "marked-smartypants-lite": "^1.0.2", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.2.1", + "mongoose": "^8.2.2", "nanoid": "3.3.4", "nconf": "^0.12.1", "react": "^18.2.0", @@ -10529,9 +10529,9 @@ } }, "node_modules/mongoose": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.1.tgz", - "integrity": "sha512-UgZZbXSJH0pdU936qj3FyVI+sBsMoGowFnL5R/RYrA50ayn6+ZYdVr8ehsRgNxRcMYwoNld5XzHIfkFRJTePEw==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.2.tgz", + "integrity": "sha512-6sMxe1d3k/dBjiOX4ExNTNOP0g1x0iq8eXyg+ttgIXM3HLnQ0IUyXRwVVAPFFY6O4/8uYN5dB0Ec72FrexbPpw==", "dependencies": { "bson": "^6.2.0", "kareem": "2.5.1", diff --git a/package.json b/package.json index 9ba33019c..31b0daf2e 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "marked-smartypants-lite": "^1.0.2", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.2.1", + "mongoose": "^8.2.2", "nanoid": "3.3.4", "nconf": "^0.12.1", "react": "^18.2.0", From 19746a78f4475928c10cfc7c2bfec2c04024486d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 21:26:36 +0000 Subject: [PATCH 122/140] Bump eslint-plugin-react from 7.34.0 to 7.34.1 Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.34.0 to 7.34.1. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/v7.34.1/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.0...v7.34.1) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3c9d01f06..0627f960a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,7 @@ "devDependencies": { "eslint": "^8.57.0", "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-react": "^7.34.0", + "eslint-plugin-react": "^7.34.1", "jest": "^29.7.0", "jest-expect-message": "^1.1.3", "postcss-less": "^6.0.0", @@ -5755,9 +5755,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.0.tgz", - "integrity": "sha512-MeVXdReleBTdkz/bvcQMSnCXGi+c9kvy51IpinjnJgutl3YTHWsDdke7Z1ufZpGfDG8xduBDKyjtB9JH1eBKIQ==", + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", "dev": true, "dependencies": { "array-includes": "^3.1.7", diff --git a/package.json b/package.json index 9ba33019c..d2473d42a 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "devDependencies": { "eslint": "^8.57.0", "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-react": "^7.34.0", + "eslint-plugin-react": "^7.34.1", "jest": "^29.7.0", "jest-expect-message": "^1.1.3", "postcss-less": "^6.0.0", From c47dd828eda706f406ef2c17c728bd17512a102c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Mon, 18 Mar 2024 23:39:15 +0100 Subject: [PATCH 123/140] initial commit --- shared/naturalcrit/markdown.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index f82ec3c32..e38c31c3b 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -321,7 +321,7 @@ const definitionListsInline = { renderer(token) { return `
${token.definitions.reduce((html, def)=>{ return `${html}
${this.parser.parseInline(def.dt)}
` - + `
${this.parser.parseInline(def.dd)}
`; + + `
${this.parser.parseInline(def.dd)}
\n`; }, '')}
`; } }; From 37488ded4d5e493588df253fd05c9e98ac3ca1cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Mon, 18 Mar 2024 23:43:51 +0100 Subject: [PATCH 124/140] fix 1 test, no idea how these work --- tests/markdown/marked-extensions.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index 8d6c3c1c4..eaf050de2 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -18,7 +18,7 @@ describe('Inline Definition Lists', ()=>{ test('Multiple Definition Terms', function() { const source = 'Term 1::Definition of Term 1\nTerm 2::Definition of Term 2\n\n'; const rendered = Markdown.render(source).trim(); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
Term 2
Definition of Term 2
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
'); }); }); From b6ea89356bb21d71fed0ecc01cc53069c9ee44cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Mon, 18 Mar 2024 23:47:06 +0100 Subject: [PATCH 125/140] fix another test --- tests/markdown/marked-extensions.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index eaf050de2..b8ff8cbaa 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -60,7 +60,7 @@ describe('Multiline Definition Lists', ()=>{ }); test('Multiple Term, Single multi-line definition', function() { - const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n::Definition 2\n\n'; + const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n\n::Definition 2\n\n'; const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Term 2
\n
Definition 1
\n
Definition 2
'); }); From b74fb221825c301c04226ef9d29269ea84b3d272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Mon, 18 Mar 2024 23:50:33 +0100 Subject: [PATCH 126/140] Revert "fix another test" This reverts commit b6ea89356bb21d71fed0ecc01cc53069c9ee44cb. --- tests/markdown/marked-extensions.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index b8ff8cbaa..eaf050de2 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -60,7 +60,7 @@ describe('Multiline Definition Lists', ()=>{ }); test('Multiple Term, Single multi-line definition', function() { - const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n\n::Definition 2\n\n'; + const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n::Definition 2\n\n'; const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Term 2
\n
Definition 1
\n
Definition 2
'); }); From f9a7adbd7293147294d7091b73f2a527901399b7 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 18 Mar 2024 19:28:42 -0400 Subject: [PATCH 127/140] Fix tests --- tests/markdown/marked-extensions.test.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/marked-extensions.test.js index eaf050de2..ee7911729 100644 --- a/tests/markdown/marked-extensions.test.js +++ b/tests/markdown/marked-extensions.test.js @@ -6,19 +6,19 @@ describe('Inline Definition Lists', ()=>{ test('No Term 1 Definition', function() { const source = ':: My First Definition\n\n'; const rendered = Markdown.render(source).trim(); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My First Definition
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My First Definition
\n
'); }); test('Single Definition Term', function() { const source = 'My term :: My First Definition\n\n'; const rendered = Markdown.render(source).trim(); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
My term
My First Definition
\n
'); }); test('Multiple Definition Terms', function() { const source = 'Term 1::Definition of Term 1\nTerm 2::Definition of Term 2\n\n'; const rendered = Markdown.render(source).trim(); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Definition of Term 1
\n
Term 2
Definition of Term 2
\n
'); }); }); @@ -68,7 +68,7 @@ describe('Multiline Definition Lists', ()=>{ test('Multiple Term, Single multi-line definition, followed by an inline dl', function() { const source = 'Term 1\n::Definition 1\nand more and more\n\nTerm 2\n::Definition 1\n::Definition 2\n\n::Inline Definition (no term)'; const rendered = Markdown.render(source).trim(); - expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Term 2
\n
Definition 1
\n
Definition 2
Inline Definition (no term)
'); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
\n
Definition 1 and more and more
\n
Term 2
\n
Definition 1
\n
Definition 2
Inline Definition (no term)
\n
'); }); test('Multiple Term, Single multi-line definition, followed by paragraph', function() { From 30ebf90371a5d04b5ea72759954b50ec2937b9dc Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 18 Mar 2024 19:34:17 -0400 Subject: [PATCH 128/140] Add Tests to circleci --- .circleci/config.yml | 6 ++++++ package.json | 2 +- .../{marked-extensions.test.js => definition-lists.test.js} | 0 3 files changed, 7 insertions(+), 1 deletion(-) rename tests/markdown/{marked-extensions.test.js => definition-lists.test.js} (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 666a9564a..8a756b3de 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -64,6 +64,12 @@ jobs: - run: name: Test - Mustache Spans command: npm run test:mustache-syntax + - run: + name: Test - Definition Lists + command: npm run test:definition-lists + - run: + name: Test - Variables + command: npm run test:variables - run: name: Test - Routes command: npm run test:route diff --git a/package.json b/package.json index 38440d38e..79e78931b 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "test:mustache-syntax:inline": "jest '.*(mustache-syntax).*' -t '^Inline:.*' --verbose --noStackTrace", "test:mustache-syntax:block": "jest '.*(mustache-syntax).*' -t '^Block:.*' --verbose --noStackTrace", "test:mustache-syntax:injection": "jest '.*(mustache-syntax).*' -t '^Injection:.*' --verbose --noStackTrace", - "test:marked-extensions": "jest tests/markdown/marked-extensions.test.js --verbose --noStackTrace", + "test:definition-lists": "jest tests/markdown/definition-lists.test.js --verbose --noStackTrace", "test:route": "jest tests/routes/static-pages.test.js --verbose", "phb": "node scripts/phb.js", "prod": "set NODE_ENV=production && npm run build", diff --git a/tests/markdown/marked-extensions.test.js b/tests/markdown/definition-lists.test.js similarity index 100% rename from tests/markdown/marked-extensions.test.js rename to tests/markdown/definition-lists.test.js From bd324a7e74d7ab83dbaf0bafcabaa96953986431 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Tue, 19 Mar 2024 13:14:58 -0400 Subject: [PATCH 129/140] Fix crash for DL, disallow block tokens as DT, add test --- shared/naturalcrit/markdown.js | 6 ++++-- tests/markdown/definition-lists.test.js | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index e38c31c3b..939c2cc81 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -337,12 +337,14 @@ const definitionListsMultiline = { const definitions = []; while (match = regex.exec(src)) { if(match[1]) { + if(this.lexer.blockTokens(match[1].trim())[0].type !== 'paragraph') // DT must not be another block-level token besides

+ break; definitions.push({ dt : this.lexer.inlineTokens(match[1].trim()), dds : [] }); } - if(match[2]) { + if(match[2] && definitions.length) { definitions[definitions.length - 1].dds.push( this.lexer.inlineTokens(match[2].trim().replace(/\s/g, ' ')) ); @@ -615,7 +617,7 @@ function MarkedVariables() { //^=====--------------------< Variable Handling >-------------------=====^// Marked.use(MarkedVariables()); -Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionListsInline, definitionListsMultiline, superSubScripts] }); +Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionListsMultiline, definitionListsInline, superSubScripts] }); Marked.use(mustacheInjectBlock); Marked.use({ renderer: renderer, tokenizer: tokenizer, mangle: false }); Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartypantsLite()); diff --git a/tests/markdown/definition-lists.test.js b/tests/markdown/definition-lists.test.js index ee7911729..87ff6f617 100644 --- a/tests/markdown/definition-lists.test.js +++ b/tests/markdown/definition-lists.test.js @@ -76,4 +76,10 @@ describe('Multiline Definition Lists', ()=>{ const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('

Term 1
\n
Definition 1 and more and more
\n
Term 2
\n
Definition 1
\n
Definition 2

Paragraph

'); }); + + test('Block Token cannot be the Term of a multi-line definition', function() { + const source = '## Header\n::Definition 1 of a single-line DL\n::Definition 1 of another single-line DL'; + const rendered = Markdown.render(source).trim(); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('\n
Definition 1 of a single-line DL
\n
Definition 1 of another single-line DL
\n
'); + }); }); From 40fc422ab5d01808f6a8ba41be99b06e47648381 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Wed, 20 Mar 2024 13:31:10 +1300 Subject: [PATCH 130/140] Check inline DL has priority over multiline DL --- tests/markdown/definition-lists.test.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/markdown/definition-lists.test.js b/tests/markdown/definition-lists.test.js index 87ff6f617..9f5025d73 100644 --- a/tests/markdown/definition-lists.test.js +++ b/tests/markdown/definition-lists.test.js @@ -82,4 +82,10 @@ describe('Multiline Definition Lists', ()=>{ const rendered = Markdown.render(source).trim(); expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('\n
Definition 1 of a single-line DL
\n
Definition 1 of another single-line DL
\n
'); }); + + test('Inline DL has priority over Multiline', function() { + const source = 'Term 1 :: Inline definition 1\n:: Inline definition 2 (no DT)'; + const rendered = Markdown.render(source).trim(); + expect(rendered, `Input:\n${source}`, { showPrefix: false }).toBe('
Term 1
Inline definition 1
\n
Inline definition 2 (no DT)
\n
'); + }); }); From 97b10c685cbd1833e77b3a3b8fc3daa339989494 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 03:21:58 +0000 Subject: [PATCH 131/140] Bump @babel/preset-env from 7.24.0 to 7.24.1 Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.24.0 to 7.24.1. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.24.1/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 696 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 375 insertions(+), 323 deletions(-) diff --git a/package-lock.json b/package-lock.json index 42b83939f..c14adde12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "dependencies": { "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.24.0", - "@babel/preset-env": "^7.24.0", + "@babel/preset-env": "^7.24.1", "@babel/preset-react": "^7.23.3", "@googleapis/drive": "^8.7.0", "body-parser": "^1.20.2", @@ -99,9 +99,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", + "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", "engines": { "node": ">=6.9.0" } @@ -205,16 +205,16 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.1.tgz", + "integrity": "sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -300,11 +300,11 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.1.tgz", + "integrity": "sha512-HfEWzysMyOa7xI5uQHc/OcZf67/jc+xe/RZlznWQHhbb8Pg1SkRdbK4yEi61aY8wxQA7PkSfoojtLQP/Kpe3og==", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -364,12 +364,12 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { @@ -487,11 +487,11 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -501,13 +501,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/plugin-transform-optional-chaining": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -517,12 +517,12 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -613,11 +613,11 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -627,11 +627,11 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -801,11 +801,11 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -815,12 +815,12 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.1.tgz", + "integrity": "sha512-OTkLJM0OtmzcpOgF7MREERUCdCnCBtBsq3vVFbuq/RKMK0/jdYqdMexWi3zNs7Nzd95ase65MbTGrpFJflOb6A==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-remap-async-to-generator": "^7.22.20", "@babel/plugin-syntax-async-generators": "^7.8.4" }, @@ -832,12 +832,12 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { @@ -848,11 +848,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -862,11 +862,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.1.tgz", + "integrity": "sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -876,12 +876,12 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -891,12 +891,12 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.1.tgz", + "integrity": "sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -907,16 +907,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", + "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -928,12 +928,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -943,11 +943,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", + "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -957,12 +957,12 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -972,11 +972,11 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -986,11 +986,11 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1001,12 +1001,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1016,11 +1016,11 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1031,11 +1031,11 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { @@ -1046,13 +1046,13 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1062,11 +1062,11 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1077,11 +1077,11 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1091,11 +1091,11 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1106,11 +1106,11 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1120,12 +1120,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1135,12 +1135,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-simple-access": "^7.22.5" }, "engines": { @@ -1151,13 +1151,13 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", - "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { @@ -1168,12 +1168,12 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1198,11 +1198,11 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1212,11 +1212,11 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1227,11 +1227,11 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1242,15 +1242,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", - "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", + "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", "dependencies": { - "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/plugin-transform-parameters": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -1260,12 +1259,12 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -1275,11 +1274,11 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1290,11 +1289,11 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", + "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -1306,11 +1305,11 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", + "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1320,12 +1319,12 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1335,13 +1334,13 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", + "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1352,11 +1351,11 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1427,11 +1426,11 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1442,11 +1441,11 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1475,11 +1474,11 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1489,11 +1488,11 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { @@ -1504,11 +1503,11 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1518,11 +1517,11 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1532,11 +1531,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", + "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1546,11 +1545,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1560,12 +1559,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1575,12 +1574,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1590,12 +1589,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1605,25 +1604,25 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", - "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.1.tgz", + "integrity": "sha512-CwCMz1Z28UHLI2iE+cbnWT2epPMV9bzzoBGM6A3mOS22VQd/1TPoWItV7S7iL9TkPmPEf5L/QzurmztyyDN9FA==", "dependencies": { - "@babel/compat-data": "^7.23.5", + "@babel/compat-data": "^7.24.1", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1635,58 +1634,58 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.1", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.1", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.1", + "@babel/plugin-transform-classes": "^7.24.1", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.1", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.24.0", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.1", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.1", + "@babel/plugin-transform-parameters": "^7.24.1", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.1", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.1", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -1697,6 +1696,44 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.1.tgz", + "integrity": "sha512-XiFei6VGwM4ii6nKC1VCenGD8Z4bjiNYcrdkM8oqM3pbuemmyb8biMgrDX1ZHSbIuMLXatM6JJ/StPYIuTl6MQ==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", + "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", @@ -1735,9 +1772,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -3774,18 +3811,33 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", - "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", + "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.5.0", + "@babel/helper-define-polyfill-provider": "^0.6.1", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", @@ -4267,9 +4319,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "funding": [ { "type": "opencollective", @@ -4285,8 +4337,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -4454,9 +4506,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001570", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", - "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", + "version": "1.0.30001599", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", + "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", "funding": [ { "type": "opencollective", @@ -4817,11 +4869,11 @@ } }, "node_modules/core-js-compat": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", - "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", + "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", @@ -5444,9 +5496,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.612", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.612.tgz", - "integrity": "sha512-dM8BMtXtlH237ecSMnYdYuCkib2QHq0kpWfUnavjdYsyr/6OsAwg5ZGUfnQ9KD1Ga4QgB2sqXlB2NT8zy2GnVg==" + "version": "1.4.711", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.711.tgz", + "integrity": "sha512-hRg81qzvUEibX2lDxnFlVCHACa+LtrCPIsWAxo161LDYIB3jauf57RGsMZV9mvGwE98yGH06icj3zBEoOkxd/w==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -12159,9 +12211,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { "version": "0.15.2", diff --git a/package.json b/package.json index 79e78931b..57b6a4a2f 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "dependencies": { "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.24.0", - "@babel/preset-env": "^7.24.0", + "@babel/preset-env": "^7.24.1", "@babel/preset-react": "^7.23.3", "@googleapis/drive": "^8.7.0", "body-parser": "^1.20.2", From bf2c638cad8f0ebff46624c4d6d9c0bd2dc246ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 14:41:25 +0000 Subject: [PATCH 132/140] Bump @babel/preset-react from 7.23.3 to 7.24.1 Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.23.3 to 7.24.1. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.24.1/packages/babel-preset-react) --- updated-dependencies: - dependency-name: "@babel/preset-react" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 52 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index c14adde12..053a067a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.24.0", "@babel/preset-env": "^7.24.1", - "@babel/preset-react": "^7.23.3", + "@babel/preset-react": "^7.24.1", "@googleapis/drive": "^8.7.0", "body-parser": "^1.20.2", "classnames": "^2.3.2", @@ -663,11 +663,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1365,11 +1365,11 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", - "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz", + "integrity": "sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1379,15 +1379,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz", - "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.15" + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" @@ -1411,12 +1411,12 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", - "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz", + "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1748,16 +1748,16 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", - "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz", + "integrity": "sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.23.3", - "@babel/plugin-transform-react-jsx": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-transform-react-display-name": "^7.24.1", + "@babel/plugin-transform-react-jsx": "^7.23.4", "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + "@babel/plugin-transform-react-pure-annotations": "^7.24.1" }, "engines": { "node": ">=6.9.0" diff --git a/package.json b/package.json index 57b6a4a2f..caa9dd364 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.24.0", "@babel/preset-env": "^7.24.1", - "@babel/preset-react": "^7.23.3", + "@babel/preset-react": "^7.24.1", "@googleapis/drive": "^8.7.0", "body-parser": "^1.20.2", "classnames": "^2.3.2", From e02d925a499243e83fea721519725b3a6899e6ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Mar 2024 03:02:53 +0000 Subject: [PATCH 133/140] Bump express from 4.18.3 to 4.19.1 Bumps [express](https://github.com/expressjs/express) from 4.18.3 to 4.19.1. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.18.3...4.19.1) --- updated-dependencies: - dependency-name: express dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index c14adde12..7bcfecb2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "create-react-class": "^15.7.0", "dedent-tabs": "^0.10.3", "expr-eval": "^2.0.2", - "express": "^4.18.3", + "express": "^4.19.1", "express-async-handler": "^1.2.0", "express-static-gzip": "2.1.7", "fs-extra": "11.2.0", @@ -6184,16 +6184,16 @@ "integrity": "sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==" }, "node_modules/express": { - "version": "4.18.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", - "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.1.tgz", + "integrity": "sha512-K4w1/Bp7y8iSiVObmCrtq8Cs79XjJc/RU2YYkZQ7wpUu5ZyZ7MtPHkqoMz4pf+mgXfNvo2qft8D9OnrH2ABk9w==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -6238,9 +6238,9 @@ } }, "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "engines": { "node": ">= 0.6" } diff --git a/package.json b/package.json index 57b6a4a2f..f7f828471 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "create-react-class": "^15.7.0", "dedent-tabs": "^0.10.3", "expr-eval": "^2.0.2", - "express": "^4.18.3", + "express": "^4.19.1", "express-async-handler": "^1.2.0", "express-static-gzip": "2.1.7", "fs-extra": "11.2.0", From bae56b8b9dec8c5ac8f6b6df5daa530c30fcca72 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Fri, 22 Mar 2024 14:27:45 +1300 Subject: [PATCH 134/140] Fix crash when match is undefined --- shared/naturalcrit/markdown.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 939c2cc81..a99c1e543 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -337,7 +337,7 @@ const definitionListsMultiline = { const definitions = []; while (match = regex.exec(src)) { if(match[1]) { - if(this.lexer.blockTokens(match[1].trim())[0].type !== 'paragraph') // DT must not be another block-level token besides

+ if(this.lexer.blockTokens(match[1].trim())[0]?.type !== 'paragraph') // DT must not be another block-level token besides

break; definitions.push({ dt : this.lexer.inlineTokens(match[1].trim()), From a0c6e92016070f2987a678ccd071a6de5bc8130a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 03:49:13 +0000 Subject: [PATCH 135/140] Bump mongoose from 8.2.2 to 8.2.3 Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.2.2 to 8.2.3. - [Release notes](https://github.com/Automattic/mongoose/releases) - [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md) - [Commits](https://github.com/Automattic/mongoose/compare/8.2.2...8.2.3) --- updated-dependencies: - dependency-name: mongoose dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index c14adde12..a7d2f292b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "marked-smartypants-lite": "^1.0.2", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.2.2", + "mongoose": "^8.2.3", "nanoid": "3.3.4", "nconf": "^0.12.1", "react": "^18.2.0", @@ -10581,9 +10581,9 @@ } }, "node_modules/mongoose": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.2.tgz", - "integrity": "sha512-6sMxe1d3k/dBjiOX4ExNTNOP0g1x0iq8eXyg+ttgIXM3HLnQ0IUyXRwVVAPFFY6O4/8uYN5dB0Ec72FrexbPpw==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.2.3.tgz", + "integrity": "sha512-ZB8K8AgbVgLCcqjtmZMxaQBEztwEEZCtAIPMx2Q56Uo4WWKmwf5Nu/EEIFo8d/17P946X0z6xzxwIqCxUMKxrA==", "dependencies": { "bson": "^6.2.0", "kareem": "2.5.1", diff --git a/package.json b/package.json index 57b6a4a2f..bd2d14d3e 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "marked-smartypants-lite": "^1.0.2", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.2.2", + "mongoose": "^8.2.3", "nanoid": "3.3.4", "nconf": "^0.12.1", "react": "^18.2.0", From 72d26c6c7e86c3f48a610e3a49d42136a394eb31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 15:41:15 +0000 Subject: [PATCH 136/140] Bump @babel/preset-env from 7.24.1 to 7.24.3 Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.24.1 to 7.24.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.24.3/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 26 +++++++++++++------------- package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 053a067a0..a90ad7c26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "dependencies": { "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.24.0", - "@babel/preset-env": "^7.24.1", + "@babel/preset-env": "^7.24.3", "@babel/preset-react": "^7.24.1", "@googleapis/drive": "^8.7.0", "body-parser": "^1.20.2", @@ -815,9 +815,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.1.tgz", - "integrity": "sha512-OTkLJM0OtmzcpOgF7MREERUCdCnCBtBsq3vVFbuq/RKMK0/jdYqdMexWi3zNs7Nzd95ase65MbTGrpFJflOb6A==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.0", @@ -1604,9 +1604,9 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.1.tgz", - "integrity": "sha512-CwCMz1Z28UHLI2iE+cbnWT2epPMV9bzzoBGM6A3mOS22VQd/1TPoWItV7S7iL9TkPmPEf5L/QzurmztyyDN9FA==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.3.tgz", + "integrity": "sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==", "dependencies": { "@babel/compat-data": "^7.24.1", "@babel/helper-compilation-targets": "^7.23.6", @@ -1635,7 +1635,7 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.24.1", - "@babel/plugin-transform-async-generator-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", "@babel/plugin-transform-async-to-generator": "^7.24.1", "@babel/plugin-transform-block-scoped-functions": "^7.24.1", "@babel/plugin-transform-block-scoping": "^7.24.1", @@ -1684,7 +1684,7 @@ "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.31.0", "semver": "^6.3.1" @@ -1712,12 +1712,12 @@ } }, "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.1.tgz", - "integrity": "sha512-XiFei6VGwM4ii6nKC1VCenGD8Z4bjiNYcrdkM8oqM3pbuemmyb8biMgrDX1ZHSbIuMLXatM6JJ/StPYIuTl6MQ==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.0" + "core-js-compat": "^3.36.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" diff --git a/package.json b/package.json index caa9dd364..1930dcebe 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "dependencies": { "@babel/core": "^7.24.0", "@babel/plugin-transform-runtime": "^7.24.0", - "@babel/preset-env": "^7.24.1", + "@babel/preset-env": "^7.24.3", "@babel/preset-react": "^7.24.1", "@googleapis/drive": "^8.7.0", "body-parser": "^1.20.2", From 4b842ef37f1ffb429946c9f4536019a09414f463 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 18:33:28 +0000 Subject: [PATCH 137/140] Bump @babel/plugin-transform-runtime from 7.24.0 to 7.24.3 Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.24.0 to 7.24.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.24.3/packages/babel-plugin-transform-runtime) --- updated-dependencies: - dependency-name: "@babel/plugin-transform-runtime" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 99 +++++++++++------------------------------------ package.json | 2 +- 2 files changed, 24 insertions(+), 77 deletions(-) diff --git a/package-lock.json b/package-lock.json index f2ad60c5a..16b005189 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.24.0", - "@babel/plugin-transform-runtime": "^7.24.0", + "@babel/plugin-transform-runtime": "^7.24.3", "@babel/preset-env": "^7.24.3", "@babel/preset-react": "^7.24.1", "@googleapis/drive": "^8.7.0", @@ -243,9 +243,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -300,9 +300,9 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.1.tgz", - "integrity": "sha512-HfEWzysMyOa7xI5uQHc/OcZf67/jc+xe/RZlznWQHhbb8Pg1SkRdbK4yEi61aY8wxQA7PkSfoojtLQP/Kpe3og==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dependencies": { "@babel/types": "^7.24.0" }, @@ -1455,15 +1455,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", - "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", + "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-module-imports": "^7.24.3", "@babel/helper-plugin-utils": "^7.24.0", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "engines": { @@ -1696,44 +1696,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", - "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", - "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", @@ -3823,39 +3785,24 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", + "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" + "@babel/helper-define-polyfill-provider": "^0.6.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" diff --git a/package.json b/package.json index 2f41ce85e..9c0156be4 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ }, "dependencies": { "@babel/core": "^7.24.0", - "@babel/plugin-transform-runtime": "^7.24.0", + "@babel/plugin-transform-runtime": "^7.24.3", "@babel/preset-env": "^7.24.3", "@babel/preset-react": "^7.24.1", "@googleapis/drive": "^8.7.0", From b35739c5c163d54cf005117763a33ad94f35b61e Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Wed, 27 Mar 2024 15:48:34 +1300 Subject: [PATCH 138/140] Change Marked extension priority order --- shared/naturalcrit/markdown.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index a99c1e543..8018bf63b 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -617,7 +617,7 @@ function MarkedVariables() { //^=====--------------------< Variable Handling >-------------------=====^// Marked.use(MarkedVariables()); -Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionListsMultiline, definitionListsInline, superSubScripts] }); +Marked.use({ extensions: [definitionListsMultiline, definitionListsInline, superSubScripts, mustacheSpans, mustacheDivs, mustacheInjectInline] }); Marked.use(mustacheInjectBlock); Marked.use({ renderer: renderer, tokenizer: tokenizer, mangle: false }); Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartypantsLite()); From 0ad4cb7cfddb1ad83261f33dc3f4df8e9cfdab9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Mar 2024 13:23:35 +0000 Subject: [PATCH 139/140] Bump express from 4.19.1 to 4.19.2 Bumps [express](https://github.com/expressjs/express) from 4.19.1 to 4.19.2. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/master/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.1...4.19.2) --- updated-dependencies: - dependency-name: express dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a9e85b67..bc2d20cf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "create-react-class": "^15.7.0", "dedent-tabs": "^0.10.3", "expr-eval": "^2.0.2", - "express": "^4.19.1", + "express": "^4.19.2", "express-async-handler": "^1.2.0", "express-static-gzip": "2.1.7", "fs-extra": "11.2.0", @@ -6131,9 +6131,9 @@ "integrity": "sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==" }, "node_modules/express": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.1.tgz", - "integrity": "sha512-K4w1/Bp7y8iSiVObmCrtq8Cs79XjJc/RU2YYkZQ7wpUu5ZyZ7MtPHkqoMz4pf+mgXfNvo2qft8D9OnrH2ABk9w==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", diff --git a/package.json b/package.json index 6e2f28524..f4865892e 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "create-react-class": "^15.7.0", "dedent-tabs": "^0.10.3", "expr-eval": "^2.0.2", - "express": "^4.19.1", + "express": "^4.19.2", "express-async-handler": "^1.2.0", "express-static-gzip": "2.1.7", "fs-extra": "11.2.0", From ffa01c7f1d682b3d57b0c2fa5c4347abce8fdfaa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Mar 2024 14:01:07 +0000 Subject: [PATCH 140/140] Bump @babel/core from 7.24.0 to 7.24.3 Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.24.0 to 7.24.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.24.3/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 101 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 52 insertions(+), 51 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc2d20cf0..f586d03ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.24.0", + "@babel/core": "^7.24.3", "@babel/plugin-transform-runtime": "^7.24.3", "@babel/preset-env": "^7.24.3", "@babel/preset-react": "^7.24.1", @@ -87,12 +87,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -107,19 +107,19 @@ } }, "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", + "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.1", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", + "@babel/helpers": "^7.24.1", + "@babel/parser": "^7.24.1", "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", + "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -141,13 +141,13 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", + "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -155,13 +155,13 @@ } }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -450,12 +450,12 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", + "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", "dependencies": { "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", + "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0" }, "engines": { @@ -463,22 +463,23 @@ } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1758,17 +1759,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", + "@babel/parser": "^7.24.1", "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" @@ -2772,9 +2773,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "engines": { "node": ">=6.0.0" } @@ -2785,12 +2786,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@mongodb-js/saslprep": { diff --git a/package.json b/package.json index f4865892e..8c4545027 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ ] }, "dependencies": { - "@babel/core": "^7.24.0", + "@babel/core": "^7.24.3", "@babel/plugin-transform-runtime": "^7.24.3", "@babel/preset-env": "^7.24.3", "@babel/preset-react": "^7.24.1",