From 0d6c3c7e33e71d4a0cb74177090c2b019c2fa8eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 20 Jan 2026 19:56:37 +0100 Subject: [PATCH 01/30] fix module.exports --- client/admin/admin.jsx | 6 +- .../authorUtils/authorLookup/authorLookup.jsx | 2 +- client/admin/authorUtils/authorUtils.jsx | 2 +- .../brewUtils/brewCleanup/brewCleanup.jsx | 8 +- .../brewUtils/brewCompress/brewCompress.jsx | 7 +- .../admin/brewUtils/brewLookup/brewLookup.jsx | 12 ++- client/admin/brewUtils/brewUtils.jsx | 28 +++--- client/admin/brewUtils/stats/stats.jsx | 8 +- client/admin/lockTools/lockTools.jsx | 5 +- .../notificationAdd/notificationAdd.jsx | 7 +- .../notificationLookup/notificationLookup.jsx | 9 +- .../notificationUtils/notificationUtils.jsx | 9 +- .../codeEditor/autocompleteEmoji.js | 2 +- client/components/codeEditor/close-tag.js | 2 +- client/components/codeEditor/codeEditor.jsx | 2 +- client/components/codeEditor/fold-css.js | 2 +- client/components/codeEditor/fold-pages.js | 2 +- client/components/combobox.jsx | 2 +- .../renderWarnings/renderWarnings.jsx | 2 +- client/components/splitPane/splitPane.jsx | 2 +- client/components/svg/cauldron.svg.jsx | 2 +- client/components/svg/naturalcrit-d20.svg.jsx | 2 +- client/homebrew/brewRenderer/brewRenderer.jsx | 2 +- .../brewRenderer/errorBar/errorBar.jsx | 2 +- .../notificationPopup/notificationPopup.jsx | 2 +- .../homebrew/brewRenderer/toolBar/toolBar.jsx | 2 +- client/homebrew/editor/editor.jsx | 2 +- .../editor/metadataEditor/metadataEditor.jsx | 2 +- .../editor/metadataEditor/validations.js | 2 +- .../homebrew/editor/snippetbar/snippetbar.jsx | 2 +- client/homebrew/editor/tagInput/tagInput.jsx | 2 +- client/homebrew/homebrew.jsx | 2 +- client/homebrew/navbar/account.navitem.jsx | 2 +- client/homebrew/navbar/error-navitem.jsx | 2 +- client/homebrew/navbar/help.navitem.jsx | 2 +- client/homebrew/navbar/metadata.navitem.jsx | 2 +- client/homebrew/navbar/nav.jsx | 2 +- client/homebrew/navbar/navbar.jsx | 2 +- client/homebrew/navbar/newbrew.navitem.jsx | 2 +- client/homebrew/navbar/patreon.navitem.jsx | 2 +- client/homebrew/navbar/print.navitem.jsx | 2 +- client/homebrew/navbar/recent.navitem.jsx | 2 +- client/homebrew/navbar/vault.navitem.jsx | 2 +- .../pages/accountPage/accountPage.jsx | 2 +- .../basePages/listPage/brewItem/brewItem.jsx | 2 +- .../pages/basePages/listPage/listPage.jsx | 2 +- .../pages/basePages/uiPage/uiPage.jsx | 2 +- client/homebrew/pages/editPage/editPage.jsx | 2 +- .../lockNotification/lockNotification.jsx | 2 +- client/homebrew/pages/errorPage/errorPage.jsx | 2 +- .../pages/errorPage/errors/errorIndex.js | 2 +- client/homebrew/pages/homePage/homePage.jsx | 2 +- client/homebrew/pages/newPage/newPage.jsx | 2 +- client/homebrew/pages/sharePage/sharePage.jsx | 2 +- client/homebrew/pages/userPage/userPage.jsx | 2 +- client/homebrew/pages/vaultPage/vaultPage.jsx | 2 +- package-lock.json | 85 ++++++------------- shared/markdownLegacy.js | 2 +- themes/Legacy/5ePHB/snippets.js | 2 +- .../Legacy/5ePHB/snippets/classfeature.gen.js | 2 +- .../Legacy/5ePHB/snippets/classtable.gen.js | 2 +- themes/Legacy/5ePHB/snippets/coverpage.gen.js | 2 +- themes/Legacy/5ePHB/snippets/fullclass.gen.js | 2 +- themes/Legacy/5ePHB/snippets/magic.gen.js | 2 +- .../Legacy/5ePHB/snippets/monsterblock.gen.js | 2 +- .../5ePHB/snippets/tableOfContents.gen.js | 2 +- themes/V3/5eDMG/snippets.js | 2 +- themes/V3/5ePHB/snippets.js | 2 +- themes/V3/5ePHB/snippets/classfeature.gen.js | 2 +- themes/V3/5ePHB/snippets/classtable.gen.js | 2 +- themes/V3/5ePHB/snippets/coverpage.gen.js | 2 +- themes/V3/5ePHB/snippets/fullclass.gen.js | 2 +- themes/V3/5ePHB/snippets/magic.gen.js | 2 +- themes/V3/5ePHB/snippets/monsterblock.gen.js | 2 +- themes/V3/5ePHB/snippets/quote.gen.js | 2 +- themes/V3/5ePHB/snippets/script.gen.js | 2 +- themes/V3/5ePHB/snippets/watercolor.gen.js | 2 +- themes/V3/Blank/snippets.js | 2 +- themes/V3/Blank/snippets/footer.gen.js | 2 +- themes/V3/Blank/snippets/imageMask.gen.js | 2 +- themes/V3/Blank/snippets/index.gen.js | 2 +- themes/V3/Blank/snippets/license.gen.js | 2 +- themes/V3/Blank/snippets/licenseAELF.js | 2 +- .../V3/Blank/snippets/licenseDTRPGCC.gen.js | 2 +- themes/V3/Blank/snippets/licenseGNU.gen.js | 2 +- .../V3/Blank/snippets/licenseMongoose.gen.js | 2 +- themes/V3/Blank/snippets/licenseWotC.gen.js | 2 +- .../V3/Blank/snippets/tableOfContents.gen.js | 2 +- themes/V3/Blank/snippets/watercolor.gen.js | 2 +- themes/V3/Journal/snippets.js | 2 +- 90 files changed, 148 insertions(+), 194 deletions(-) diff --git a/client/admin/admin.jsx b/client/admin/admin.jsx index 787c2a3eb..5a9a55fc8 100644 --- a/client/admin/admin.jsx +++ b/client/admin/admin.jsx @@ -1,7 +1,7 @@ import './admin.less'; import React, { useEffect, useState } from 'react'; -const BrewUtils = require('./brewUtils/brewUtils.jsx'); -const NotificationUtils = require('./notificationUtils/notificationUtils.jsx'); +import BrewUtils from "./brewUtils/brewUtils.jsx"; +import NotificationUtils from './notificationUtils/notificationUtils.jsx'; import AuthorUtils from './authorUtils/authorUtils.jsx'; import LockTools from './lockTools/lockTools.jsx'; @@ -49,4 +49,4 @@ const Admin = ()=>{ ); }; -module.exports = Admin; +export default Admin; diff --git a/client/admin/authorUtils/authorLookup/authorLookup.jsx b/client/admin/authorUtils/authorLookup/authorLookup.jsx index abdece6f7..cdfe6274b 100644 --- a/client/admin/authorUtils/authorLookup/authorLookup.jsx +++ b/client/admin/authorUtils/authorLookup/authorLookup.jsx @@ -84,4 +84,4 @@ const authorLookup = ()=>{ ); }; -module.exports = authorLookup; +export default authorLookup; diff --git a/client/admin/authorUtils/authorUtils.jsx b/client/admin/authorUtils/authorUtils.jsx index a96eea528..ef717a1ec 100644 --- a/client/admin/authorUtils/authorUtils.jsx +++ b/client/admin/authorUtils/authorUtils.jsx @@ -10,4 +10,4 @@ const authorUtils = ()=>{ ); }; -module.exports = authorUtils; \ No newline at end of file +export default authorUtils; \ No newline at end of file diff --git a/client/admin/brewUtils/brewCleanup/brewCleanup.jsx b/client/admin/brewUtils/brewCleanup/brewCleanup.jsx index d4b17c570..1675bdc95 100644 --- a/client/admin/brewUtils/brewCleanup/brewCleanup.jsx +++ b/client/admin/brewUtils/brewCleanup/brewCleanup.jsx @@ -1,7 +1,5 @@ -const React = require('react'); -const createClass = require('create-react-class'); - -const request = require('superagent'); +import React, {createClass} from 'react'; +import request from 'superagent'; const BrewCleanup = createClass({ displayName : 'BrewCleanup', @@ -69,4 +67,4 @@ const BrewCleanup = createClass({ } }); -module.exports = BrewCleanup; +export default BrewCleanup; diff --git a/client/admin/brewUtils/brewCompress/brewCompress.jsx b/client/admin/brewUtils/brewCompress/brewCompress.jsx index ccb59e027..2aee2a511 100644 --- a/client/admin/brewUtils/brewCompress/brewCompress.jsx +++ b/client/admin/brewUtils/brewCompress/brewCompress.jsx @@ -1,6 +1,5 @@ -const React = require('react'); -const createClass = require('create-react-class'); -const request = require('superagent'); +import React, {createClass} from 'react'; +import request from 'superagent'; const BrewCompress = createClass({ displayName : 'BrewCompress', @@ -85,4 +84,4 @@ const BrewCompress = createClass({ } }); -module.exports = BrewCompress; +export default BrewCompress; diff --git a/client/admin/brewUtils/brewLookup/brewLookup.jsx b/client/admin/brewUtils/brewLookup/brewLookup.jsx index fb780f29e..3211b43aa 100644 --- a/client/admin/brewUtils/brewLookup/brewLookup.jsx +++ b/client/admin/brewUtils/brewLookup/brewLookup.jsx @@ -1,10 +1,8 @@ -const React = require('react'); -const createClass = require('create-react-class'); -const cx = require('classnames'); - -const request = require('superagent'); -const Moment = require('moment'); +import React, {createClass} from 'react'; +import request from 'superagent'; +import cx from 'classnames'; +import Moment from 'moment'; const BrewLookup = createClass({ getDefaultProps() { @@ -110,4 +108,4 @@ const BrewLookup = createClass({ } }); -module.exports = BrewLookup; +export default BrewLookup; diff --git a/client/admin/brewUtils/brewUtils.jsx b/client/admin/brewUtils/brewUtils.jsx index bab2cb82f..7e0159797 100644 --- a/client/admin/brewUtils/brewUtils.jsx +++ b/client/admin/brewUtils/brewUtils.jsx @@ -1,15 +1,14 @@ -const React = require('react'); -const createClass = require('create-react-class'); -require('./brewUtils.less'); +import React from "react"; +import "./brewUtils.less"; -const BrewCleanup = require('./brewCleanup/brewCleanup.jsx'); -const BrewLookup = require('./brewLookup/brewLookup.jsx'); -const BrewCompress = require ('./brewCompress/brewCompress.jsx'); -const Stats = require('./stats/stats.jsx'); +import BrewCleanup from "./brewCleanup/brewCleanup.jsx"; +import BrewLookup from "./brewLookup/brewLookup.jsx"; +import BrewCompress from "./brewCompress/brewCompress.jsx"; +import Stats from "./stats/stats.jsx"; -const BrewUtils = createClass({ - render : function(){ - return <> +const BrewUtils = () => { + return ( + <>
@@ -17,8 +16,7 @@ const BrewUtils = createClass({
- ; - } -}); - -module.exports = BrewUtils; + + ); +}; +export default BrewUtils; diff --git a/client/admin/brewUtils/stats/stats.jsx b/client/admin/brewUtils/stats/stats.jsx index 7f96618f9..988bfbdfb 100644 --- a/client/admin/brewUtils/stats/stats.jsx +++ b/client/admin/brewUtils/stats/stats.jsx @@ -1,7 +1,5 @@ -const React = require('react'); -const createClass = require('create-react-class'); - -const request = require('superagent'); +import React, {createClass} from 'react'; +import request from 'superagent'; const Stats = createClass({ displayName : 'Stats', @@ -43,4 +41,4 @@ const Stats = createClass({ } }); -module.exports = Stats; +export default Stats; diff --git a/client/admin/lockTools/lockTools.jsx b/client/admin/lockTools/lockTools.jsx index 9a28d330f..f2701c47e 100644 --- a/client/admin/lockTools/lockTools.jsx +++ b/client/admin/lockTools/lockTools.jsx @@ -1,7 +1,6 @@ /*eslint max-lines: ["warn", {"max": 500, "skipBlankLines": true, "skipComments": true}]*/ require('./lockTools.less'); -const React = require('react'); -const createClass = require('create-react-class'); +import React, {createClass} from 'react'; import request from '../../homebrew/utils/request-middleware.js'; @@ -339,4 +338,4 @@ const LockLookup = createClass({ } }); -module.exports = LockTools; \ No newline at end of file +export default LockTools; \ No newline at end of file diff --git a/client/admin/notificationUtils/notificationAdd/notificationAdd.jsx b/client/admin/notificationUtils/notificationAdd/notificationAdd.jsx index 0cca1047e..122b0320c 100644 --- a/client/admin/notificationUtils/notificationAdd/notificationAdd.jsx +++ b/client/admin/notificationUtils/notificationAdd/notificationAdd.jsx @@ -1,7 +1,6 @@ require('./notificationAdd.less'); -const React = require('react'); -const { useState, useRef } = require('react'); -const request = require('superagent'); +import React, { useState, useRef } from 'react'; +import request from 'superagent'; const NotificationAdd = ()=>{ const [notificationResult, setNotificationResult] = useState(null); @@ -106,4 +105,4 @@ const NotificationAdd = ()=>{ ); }; -module.exports = NotificationAdd; +export default NotificationAdd; diff --git a/client/admin/notificationUtils/notificationLookup/notificationLookup.jsx b/client/admin/notificationUtils/notificationLookup/notificationLookup.jsx index 05f81b776..e3c0e0ae4 100644 --- a/client/admin/notificationUtils/notificationLookup/notificationLookup.jsx +++ b/client/admin/notificationUtils/notificationLookup/notificationLookup.jsx @@ -1,9 +1,8 @@ require('./notificationLookup.less'); -const React = require('react'); -const { useState } = require('react'); -const request = require('superagent'); -const Moment = require('moment'); +import React, { useState} from 'react'; +import request from 'superagent'; +import Moment from 'moment'; const NotificationDetail = ({ notification, onDelete })=>( <> @@ -102,4 +101,4 @@ const NotificationLookup = ()=>{ ); }; -module.exports = NotificationLookup; +export default NotificationLookup; diff --git a/client/admin/notificationUtils/notificationUtils.jsx b/client/admin/notificationUtils/notificationUtils.jsx index 22ea21328..00db44a37 100644 --- a/client/admin/notificationUtils/notificationUtils.jsx +++ b/client/admin/notificationUtils/notificationUtils.jsx @@ -1,7 +1,6 @@ -const React = require('react'); - -const NotificationLookup = require('./notificationLookup/notificationLookup.jsx'); -const NotificationAdd = require('./notificationAdd/notificationAdd.jsx'); +import React from 'react'; +import NotificationLookup from './notificationLookup/notificationLookup.jsx'; +import NotificationAdd from './notificationAdd/notificationAdd.jsx'; const NotificationUtils = ()=>{ return ( @@ -12,4 +11,4 @@ const NotificationUtils = ()=>{ ); }; -module.exports = NotificationUtils; +export default NotificationUtils; diff --git a/client/components/codeEditor/autocompleteEmoji.js b/client/components/codeEditor/autocompleteEmoji.js index ae7f2628f..d5a3a71aa 100644 --- a/client/components/codeEditor/autocompleteEmoji.js +++ b/client/components/codeEditor/autocompleteEmoji.js @@ -79,6 +79,6 @@ const showAutocompleteEmoji = function(CodeMirror, editor) { }); }; -module.exports = { +export default { showAutocompleteEmoji }; \ No newline at end of file diff --git a/client/components/codeEditor/close-tag.js b/client/components/codeEditor/close-tag.js index 728b63a5c..ebf9f9320 100644 --- a/client/components/codeEditor/close-tag.js +++ b/client/components/codeEditor/close-tag.js @@ -38,7 +38,7 @@ const autoCloseCurlyBraces = function(CodeMirror, cm, typingClosingBrace) { } }; -module.exports = { +export default { autoCloseCurlyBraces : function(CodeMirror, codeMirror) { const map = { name: 'autoCloseCurlyBraces' }; map[`'{'`] = function(cm) { return autoCloseCurlyBraces(CodeMirror, cm); }; diff --git a/client/components/codeEditor/codeEditor.jsx b/client/components/codeEditor/codeEditor.jsx index fb69b6dcf..cd759463f 100644 --- a/client/components/codeEditor/codeEditor.jsx +++ b/client/components/codeEditor/codeEditor.jsx @@ -461,5 +461,5 @@ const CodeEditor = createClass({ } }); -module.exports = CodeEditor; +export default CodeEditor; diff --git a/client/components/codeEditor/fold-css.js b/client/components/codeEditor/fold-css.js index 338cab176..06bfd96a4 100644 --- a/client/components/codeEditor/fold-css.js +++ b/client/components/codeEditor/fold-css.js @@ -1,4 +1,4 @@ -module.exports = { +export default { registerHomebreweryHelper : function(CodeMirror) { CodeMirror.registerHelper('fold', 'homebrewerycss', function(cm, start) { diff --git a/client/components/codeEditor/fold-pages.js b/client/components/codeEditor/fold-pages.js index cff1c64e0..1d8d19f6b 100644 --- a/client/components/codeEditor/fold-pages.js +++ b/client/components/codeEditor/fold-pages.js @@ -1,4 +1,4 @@ -module.exports = { +export default { registerHomebreweryHelper : function(CodeMirror) { CodeMirror.registerHelper('fold', 'homebrewery', function(cm, start) { const matcher = /^\\page.*/; diff --git a/client/components/combobox.jsx b/client/components/combobox.jsx index ae9f1d7f8..22afab766 100644 --- a/client/components/combobox.jsx +++ b/client/components/combobox.jsx @@ -126,4 +126,4 @@ const Combobox = createClass({ } }); -module.exports = Combobox; +export default Combobox; diff --git a/client/components/renderWarnings/renderWarnings.jsx b/client/components/renderWarnings/renderWarnings.jsx index 6b8ea8184..b1e93acc8 100644 --- a/client/components/renderWarnings/renderWarnings.jsx +++ b/client/components/renderWarnings/renderWarnings.jsx @@ -57,4 +57,4 @@ const RenderWarnings = createClass({ } }); -module.exports = RenderWarnings; +export default RenderWarnings; diff --git a/client/components/splitPane/splitPane.jsx b/client/components/splitPane/splitPane.jsx index 78ba59ed3..c92cc5c5f 100644 --- a/client/components/splitPane/splitPane.jsx +++ b/client/components/splitPane/splitPane.jsx @@ -108,4 +108,4 @@ const Pane = ({ width, children, isDragging, moveBrew, moveSource, liveScroll, s ); }; -module.exports = SplitPane; +export default SplitPane; diff --git a/client/components/svg/cauldron.svg.jsx b/client/components/svg/cauldron.svg.jsx index 49405783b..e57d50f48 100644 --- a/client/components/svg/cauldron.svg.jsx +++ b/client/components/svg/cauldron.svg.jsx @@ -1,7 +1,7 @@ const React = require('react'); const createClass = require('create-react-class'); -module.exports = function(props){ +export default function(props){ return diff --git a/client/components/svg/naturalcrit-d20.svg.jsx b/client/components/svg/naturalcrit-d20.svg.jsx index 1482b5559..1a8b81d3d 100644 --- a/client/components/svg/naturalcrit-d20.svg.jsx +++ b/client/components/svg/naturalcrit-d20.svg.jsx @@ -1,6 +1,6 @@ const React = require('react'); const createClass = require('create-react-class'); -module.exports = function(props){ +export default function(props){ return ; }; \ No newline at end of file diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 7e6681c57..c98993816 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -345,4 +345,4 @@ const BrewRenderer = (props)=>{ ); }; -module.exports = BrewRenderer; +export default BrewRenderer; diff --git a/client/homebrew/brewRenderer/errorBar/errorBar.jsx b/client/homebrew/brewRenderer/errorBar/errorBar.jsx index 78b36d70c..f8ab03ede 100644 --- a/client/homebrew/brewRenderer/errorBar/errorBar.jsx +++ b/client/homebrew/brewRenderer/errorBar/errorBar.jsx @@ -50,4 +50,4 @@ const ErrorBar = (props)=>{ ); }; -module.exports = ErrorBar; +export default ErrorBar; diff --git a/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx index ad8f9140a..e51fe5db2 100644 --- a/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx +++ b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx @@ -62,4 +62,4 @@ const NotificationPopup = ()=>{ ; }; -module.exports = NotificationPopup; +export default NotificationPopup; diff --git a/client/homebrew/brewRenderer/toolBar/toolBar.jsx b/client/homebrew/brewRenderer/toolBar/toolBar.jsx index 4aee3b6bd..ace6ab113 100644 --- a/client/homebrew/brewRenderer/toolBar/toolBar.jsx +++ b/client/homebrew/brewRenderer/toolBar/toolBar.jsx @@ -259,4 +259,4 @@ const ToolBar = ({ displayOptions, onDisplayOptionsChange, visiblePages, totalPa ); }; -module.exports = ToolBar; +export default ToolBar; diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 0ffd2e8a0..7c0b881ed 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -542,4 +542,4 @@ const Editor = createClass({ } }); -module.exports = Editor; +export default Editor; diff --git a/client/homebrew/editor/metadataEditor/metadataEditor.jsx b/client/homebrew/editor/metadataEditor/metadataEditor.jsx index 338ad9360..f41328b8e 100644 --- a/client/homebrew/editor/metadataEditor/metadataEditor.jsx +++ b/client/homebrew/editor/metadataEditor/metadataEditor.jsx @@ -411,4 +411,4 @@ const MetadataEditor = createClass({ } }); -module.exports = MetadataEditor; +export default MetadataEditor; diff --git a/client/homebrew/editor/metadataEditor/validations.js b/client/homebrew/editor/metadataEditor/validations.js index d0e052b07..2430534dc 100644 --- a/client/homebrew/editor/metadataEditor/validations.js +++ b/client/homebrew/editor/metadataEditor/validations.js @@ -1,4 +1,4 @@ -module.exports = { +export default { title : [ (value)=>{ return value?.length > 100 ? 'Max title length of 100 characters' : null; diff --git a/client/homebrew/editor/snippetbar/snippetbar.jsx b/client/homebrew/editor/snippetbar/snippetbar.jsx index 5e2051a86..9da299b52 100644 --- a/client/homebrew/editor/snippetbar/snippetbar.jsx +++ b/client/homebrew/editor/snippetbar/snippetbar.jsx @@ -281,7 +281,7 @@ const Snippetbar = createClass({ } }); -module.exports = Snippetbar; +export default Snippetbar; const SnippetGroup = createClass({ displayName : 'SnippetGroup', diff --git a/client/homebrew/editor/tagInput/tagInput.jsx b/client/homebrew/editor/tagInput/tagInput.jsx index d60e23b1b..e3e750263 100644 --- a/client/homebrew/editor/tagInput/tagInput.jsx +++ b/client/homebrew/editor/tagInput/tagInput.jsx @@ -102,4 +102,4 @@ const TagInput = ({ unique = true, values = [], ...props })=>{ ); }; -module.exports = TagInput; +export default TagInput; diff --git a/client/homebrew/homebrew.jsx b/client/homebrew/homebrew.jsx index e38293bde..18a3993a6 100644 --- a/client/homebrew/homebrew.jsx +++ b/client/homebrew/homebrew.jsx @@ -80,4 +80,4 @@ const Homebrew = (props)=>{ ); }; -module.exports = Homebrew; \ No newline at end of file +export default Homebrew; \ No newline at end of file diff --git a/client/homebrew/navbar/account.navitem.jsx b/client/homebrew/navbar/account.navitem.jsx index bdc6d386a..e0ebc82cb 100644 --- a/client/homebrew/navbar/account.navitem.jsx +++ b/client/homebrew/navbar/account.navitem.jsx @@ -111,4 +111,4 @@ const Account = createClass({ } }); -module.exports = Account; +export default Account; diff --git a/client/homebrew/navbar/error-navitem.jsx b/client/homebrew/navbar/error-navitem.jsx index 6b739379b..1dea63ddd 100644 --- a/client/homebrew/navbar/error-navitem.jsx +++ b/client/homebrew/navbar/error-navitem.jsx @@ -144,4 +144,4 @@ const ErrorNavItem = ({ error = '', clearError })=>{ ; }; -module.exports = ErrorNavItem; +export default ErrorNavItem; diff --git a/client/homebrew/navbar/help.navitem.jsx b/client/homebrew/navbar/help.navitem.jsx index 0b1ff6c3a..1487f0c8b 100644 --- a/client/homebrew/navbar/help.navitem.jsx +++ b/client/homebrew/navbar/help.navitem.jsx @@ -3,7 +3,7 @@ const dedent = require('dedent-tabs').default; const Nav = require('client/homebrew/navbar/nav.jsx'); -module.exports = function(props){ +export default function(props){ return need help? diff --git a/client/homebrew/navbar/metadata.navitem.jsx b/client/homebrew/navbar/metadata.navitem.jsx index 6eadac367..d5277dfa7 100644 --- a/client/homebrew/navbar/metadata.navitem.jsx +++ b/client/homebrew/navbar/metadata.navitem.jsx @@ -86,4 +86,4 @@ const MetadataNav = createClass({ }); -module.exports = MetadataNav; +export default MetadataNav; diff --git a/client/homebrew/navbar/nav.jsx b/client/homebrew/navbar/nav.jsx index 16f194716..9dba70167 100644 --- a/client/homebrew/navbar/nav.jsx +++ b/client/homebrew/navbar/nav.jsx @@ -117,4 +117,4 @@ const Nav = { }; -module.exports = Nav; +export default Nav; diff --git a/client/homebrew/navbar/navbar.jsx b/client/homebrew/navbar/navbar.jsx index bafed9db0..07e84d178 100644 --- a/client/homebrew/navbar/navbar.jsx +++ b/client/homebrew/navbar/navbar.jsx @@ -49,4 +49,4 @@ const Navbar = createClass({ } }); -module.exports = Navbar; +export default Navbar; diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index b8cf82ab7..7fe5d67c4 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -100,4 +100,4 @@ const NewBrew = ()=>{ ); }; -module.exports = NewBrew; +export default NewBrew; diff --git a/client/homebrew/navbar/patreon.navitem.jsx b/client/homebrew/navbar/patreon.navitem.jsx index d957231de..6edf780e5 100644 --- a/client/homebrew/navbar/patreon.navitem.jsx +++ b/client/homebrew/navbar/patreon.navitem.jsx @@ -1,7 +1,7 @@ const React = require('react'); const Nav = require('client/homebrew/navbar/nav.jsx'); -module.exports = function(props){ +export default function(props){ return get PDF ; diff --git a/client/homebrew/navbar/recent.navitem.jsx b/client/homebrew/navbar/recent.navitem.jsx index 0d7b176af..c1337ea4e 100644 --- a/client/homebrew/navbar/recent.navitem.jsx +++ b/client/homebrew/navbar/recent.navitem.jsx @@ -175,7 +175,7 @@ const RecentItems = createClass({ }); -module.exports = { +export default { edited : (props)=>{ return { ); }; -module.exports = AccountPage; +export default AccountPage; diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index b0c0d3aa9..4f952f01e 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -176,4 +176,4 @@ const BrewItem = ({ ); }; -module.exports = BrewItem; +export default BrewItem; diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 4afc14364..9589956d5 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -279,4 +279,4 @@ const ListPage = createClass({ } }); -module.exports = ListPage; +export default ListPage; diff --git a/client/homebrew/pages/basePages/uiPage/uiPage.jsx b/client/homebrew/pages/basePages/uiPage/uiPage.jsx index 1880779c9..7a95748aa 100644 --- a/client/homebrew/pages/basePages/uiPage/uiPage.jsx +++ b/client/homebrew/pages/basePages/uiPage/uiPage.jsx @@ -35,4 +35,4 @@ const UIPage = createClass({ } }); -module.exports = UIPage; +export default UIPage; diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 1bc8bb35e..3eb26186e 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -415,4 +415,4 @@ const EditPage = (props)=>{ ); }; -module.exports = EditPage; +export default EditPage; diff --git a/client/homebrew/pages/editPage/lockNotification/lockNotification.jsx b/client/homebrew/pages/editPage/lockNotification/lockNotification.jsx index 34102bdc6..c71c85891 100644 --- a/client/homebrew/pages/editPage/lockNotification/lockNotification.jsx +++ b/client/homebrew/pages/editPage/lockNotification/lockNotification.jsx @@ -40,4 +40,4 @@ function LockNotification(props) { ; }; -module.exports = LockNotification; +export default LockNotification; diff --git a/client/homebrew/pages/errorPage/errorPage.jsx b/client/homebrew/pages/errorPage/errorPage.jsx index 1b7b19e2f..e90ceb742 100644 --- a/client/homebrew/pages/errorPage/errorPage.jsx +++ b/client/homebrew/pages/errorPage/errorPage.jsx @@ -22,4 +22,4 @@ const ErrorPage = ({ brew })=>{ ); }; -module.exports = ErrorPage; +export default ErrorPage; diff --git a/client/homebrew/pages/errorPage/errors/errorIndex.js b/client/homebrew/pages/errorPage/errors/errorIndex.js index b13f5230d..9ca37a854 100644 --- a/client/homebrew/pages/errorPage/errors/errorIndex.js +++ b/client/homebrew/pages/errorPage/errors/errorIndex.js @@ -268,4 +268,4 @@ const errorIndex = (props)=>{ }; }; -module.exports = errorIndex; +export default errorIndex; diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx index 463df333b..fb5caecd7 100644 --- a/client/homebrew/pages/homePage/homePage.jsx +++ b/client/homebrew/pages/homePage/homePage.jsx @@ -230,4 +230,4 @@ const HomePage =(props)=>{ ); }; -module.exports = HomePage; +export default HomePage; diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index 83eaeda45..fb595ab98 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -276,4 +276,4 @@ const NewPage = (props)=>{ ); }; -module.exports = NewPage; +export default NewPage; diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index 32e88c9d8..48bed1655 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -116,4 +116,4 @@ const SharePage = (props)=>{ ); }; -module.exports = SharePage; +export default SharePage; diff --git a/client/homebrew/pages/userPage/userPage.jsx b/client/homebrew/pages/userPage/userPage.jsx index b9273f3c3..ac4257124 100644 --- a/client/homebrew/pages/userPage/userPage.jsx +++ b/client/homebrew/pages/userPage/userPage.jsx @@ -61,4 +61,4 @@ const UserPage = (props)=>{ ); }; -module.exports = UserPage; +export default UserPage; diff --git a/client/homebrew/pages/vaultPage/vaultPage.jsx b/client/homebrew/pages/vaultPage/vaultPage.jsx index f009c1054..a9c316d8a 100644 --- a/client/homebrew/pages/vaultPage/vaultPage.jsx +++ b/client/homebrew/pages/vaultPage/vaultPage.jsx @@ -430,4 +430,4 @@ const VaultPage = (props)=>{ ); }; -module.exports = VaultPage; +export default VaultPage; diff --git a/package-lock.json b/package-lock.json index baa4dc289..3360741fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -90,7 +90,6 @@ "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@csstools/css-calc": "^2.1.3", "@csstools/css-color-parser": "^3.0.9", @@ -104,8 +103,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/@babel/code-frame": { "version": "7.27.1", @@ -135,6 +133,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -1799,6 +1798,7 @@ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", @@ -1920,6 +1920,7 @@ "integrity": "sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -1960,7 +1961,6 @@ } ], "license": "MIT-0", - "peer": true, "engines": { "node": ">=18" } @@ -1981,7 +1981,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -2006,7 +2005,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@csstools/color-helpers": "^5.0.2", "@csstools/css-calc": "^2.1.4" @@ -2035,6 +2033,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -2058,6 +2057,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -3810,6 +3810,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -4770,6 +4771,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", @@ -5548,7 +5550,6 @@ "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@asamuzakjp/css-color": "^3.2.0", "rrweb-cssom": "^0.8.0" @@ -5578,7 +5579,6 @@ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" @@ -5663,8 +5663,7 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/decode-uri-component": { "version": "0.2.2", @@ -6016,7 +6015,6 @@ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=0.12" }, @@ -6264,6 +6262,7 @@ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -7768,7 +7767,6 @@ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "whatwg-encoding": "^3.1.1" }, @@ -7836,7 +7834,6 @@ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -8433,8 +8430,7 @@ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/is-promise": { "version": "4.0.0", @@ -8758,6 +8754,7 @@ "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/core": "30.2.0", "@jest/types": "30.2.0", @@ -10000,6 +9997,7 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "license": "MIT", + "peer": true, "bin": { "marked": "bin/marked.js" }, @@ -10463,7 +10461,6 @@ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "license": "MIT", "optional": true, - "peer": true, "dependencies": { "debug": "4" }, @@ -10477,7 +10474,6 @@ "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", "license": "Apache-2.0", "optional": true, - "peer": true, "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^5.0.0", @@ -10488,28 +10484,12 @@ "node": ">=12" } }, - "node_modules/mongoose/node_modules/gcp-metadata": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz", - "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "dependencies": { - "gaxios": "^5.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/mongoose/node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "license": "MIT", "optional": true, - "peer": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -10570,7 +10550,6 @@ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "license": "MIT", "optional": true, - "peer": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -10591,16 +10570,14 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT", - "optional": true, - "peer": true + "optional": true }, "node_modules/mongoose/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause", - "optional": true, - "peer": true + "optional": true }, "node_modules/mongoose/node_modules/whatwg-url": { "version": "5.0.0", @@ -10608,7 +10585,6 @@ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "license": "MIT", "optional": true, - "peer": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -10988,8 +10964,7 @@ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", @@ -11357,7 +11332,6 @@ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "entities": "^6.0.0" }, @@ -11672,6 +11646,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -11734,6 +11709,7 @@ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -11748,7 +11724,6 @@ "integrity": "sha512-Mn8KJ45HNNG6JBpBizXcyf6LqY/qyqetGcou/nprDnFwBFBLGj0j/sNKV2lj2KMOVOwdXu14aEzqJv8CIV6e8g==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "postcss": "^8.4.20" } @@ -11837,6 +11812,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -12026,6 +12002,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -12038,6 +12015,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -12530,8 +12508,7 @@ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/run-parallel": { "version": "1.2.0", @@ -12662,7 +12639,6 @@ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "xmlchars": "^2.2.0" }, @@ -13605,6 +13581,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", @@ -13884,8 +13861,7 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/synckit": { "version": "0.11.11", @@ -14001,7 +13977,6 @@ "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "tldts-core": "^6.1.86" }, @@ -14014,8 +13989,7 @@ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/tmpl": { "version": "1.0.5", @@ -14176,7 +14150,6 @@ "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "tldts": "^6.1.32" }, @@ -14800,7 +14773,6 @@ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "xml-name-validator": "^5.0.0" }, @@ -15150,7 +15122,6 @@ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "iconv-lite": "0.6.3" }, @@ -15164,7 +15135,6 @@ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -15375,7 +15345,6 @@ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -15398,7 +15367,6 @@ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=18" } @@ -15408,8 +15376,7 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/xtend": { "version": "4.0.2", diff --git a/shared/markdownLegacy.js b/shared/markdownLegacy.js index 5a8108297..0dfd46320 100644 --- a/shared/markdownLegacy.js +++ b/shared/markdownLegacy.js @@ -103,7 +103,7 @@ const voidTags = new Set([ ]); -module.exports = { +export default { marked : Markdown, render : (rawBrewText)=>{ return Markdown( diff --git a/themes/Legacy/5ePHB/snippets.js b/themes/Legacy/5ePHB/snippets.js index e9134853c..e1665b47c 100644 --- a/themes/Legacy/5ePHB/snippets.js +++ b/themes/Legacy/5ePHB/snippets.js @@ -8,7 +8,7 @@ const CoverPageGen = require('./snippets/coverpage.gen.js'); const TableOfContentsGen = require('./snippets/tableOfContents.gen.js'); const dedent = require('dedent-tabs').default; -module.exports = [ +export default [ { groupName : 'Text Editor', diff --git a/themes/Legacy/5ePHB/snippets/classfeature.gen.js b/themes/Legacy/5ePHB/snippets/classfeature.gen.js index e2407ff03..53e989dcc 100644 --- a/themes/Legacy/5ePHB/snippets/classfeature.gen.js +++ b/themes/Legacy/5ePHB/snippets/classfeature.gen.js @@ -1,6 +1,6 @@ const _ = require('lodash'); -module.exports = function(classname){ +export default function(classname){ classname = _.sample(['archivist', 'fancyman', 'linguist', 'fletcher', 'notary', 'berserker-typist', 'fishmongerer', 'manicurist', 'haberdasher', 'concierge']); diff --git a/themes/Legacy/5ePHB/snippets/classtable.gen.js b/themes/Legacy/5ePHB/snippets/classtable.gen.js index 867aa625e..69ded1b19 100644 --- a/themes/Legacy/5ePHB/snippets/classtable.gen.js +++ b/themes/Legacy/5ePHB/snippets/classtable.gen.js @@ -50,7 +50,7 @@ const getFeature = (level)=>{ return res.join(', '); }; -module.exports = { +export default { full : function(){ const classname = _.sample(classnames); diff --git a/themes/Legacy/5ePHB/snippets/coverpage.gen.js b/themes/Legacy/5ePHB/snippets/coverpage.gen.js index 4b658e317..8d66c4391 100644 --- a/themes/Legacy/5ePHB/snippets/coverpage.gen.js +++ b/themes/Legacy/5ePHB/snippets/coverpage.gen.js @@ -98,7 +98,7 @@ const subtitles = [ ]; -module.exports = ()=>{ +export default ()=>{ return `
@@ -34,7 +33,7 @@ const Nav = { } }), - item : createClass({ + item : createReactClass({ displayName : 'Nav.item', getDefaultProps : function() { return { diff --git a/client/homebrew/navbar/navbar.jsx b/client/homebrew/navbar/navbar.jsx index 07e84d178..234580fb4 100644 --- a/client/homebrew/navbar/navbar.jsx +++ b/client/homebrew/navbar/navbar.jsx @@ -1,11 +1,11 @@ -require('./navbar.less'); -const React = require('react'); -const createClass = require('create-react-class'); +import './navbar.less'; +import React from 'react'; +import createReactClass from 'create-react-class'; -const Nav = require('client/homebrew/navbar/nav.jsx'); -const PatreonNavItem = require('./patreon.navitem.jsx'); +import Nav from 'client/homebrew/navbar/nav.jsx'; +import PatreonNavItem from './patreon.navitem.jsx'; -const Navbar = createClass({ +const Navbar = createReactClass({ displayName : 'Navbar', getInitialState : function() { return { diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 7fe5d67c4..3af2b6acf 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -1,7 +1,7 @@ -const React = require('react'); -const _ = require('lodash'); -const Nav = require('client/homebrew/navbar/nav.jsx'); -const { splitTextStyleAndMetadata } = require('../../../shared/helpers.js'); // Importing the function from helpers.js +import React from 'react'; +import _ from 'lodash'; +import Nav from 'client/homebrew/navbar/nav.jsx'; +import { splitTextStyleAndMetadata } from '../../../shared/helpers.js'; const BREWKEY = 'HB_newPage_content'; const STYLEKEY = 'HB_newPage_style'; diff --git a/client/homebrew/navbar/patreon.navitem.jsx b/client/homebrew/navbar/patreon.navitem.jsx index 6edf780e5..7eb7daee8 100644 --- a/client/homebrew/navbar/patreon.navitem.jsx +++ b/client/homebrew/navbar/patreon.navitem.jsx @@ -1,5 +1,5 @@ -const React = require('react'); -const Nav = require('client/homebrew/navbar/nav.jsx'); +import React from 'react'; +import Nav from 'client/homebrew/navbar/nav.jsx'; export default function(props){ return diff --git a/client/homebrew/navbar/recent.navitem.jsx b/client/homebrew/navbar/recent.navitem.jsx index c1337ea4e..5a40ce645 100644 --- a/client/homebrew/navbar/recent.navitem.jsx +++ b/client/homebrew/navbar/recent.navitem.jsx @@ -1,15 +1,15 @@ -const React = require('react'); -const createClass = require('create-react-class'); -const _ = require('lodash'); -const Moment = require('moment'); +import React from 'react'; +import createReactClass from 'create-react-class'; +import _ from 'lodash'; +import Moment from 'moment'; -const Nav = require('client/homebrew/navbar/nav.jsx'); +import Nav from 'client/homebrew/navbar/nav.jsx'; const EDIT_KEY = 'HB_nav_recentlyEdited'; const VIEW_KEY = 'HB_nav_recentlyViewed'; -const RecentItems = createClass({ +const RecentItems = createReactClass({ DisplayName : 'RecentItems', getDefaultProps : function() { return { diff --git a/client/homebrew/navbar/vault.navitem.jsx b/client/homebrew/navbar/vault.navitem.jsx index dff401525..9e4305811 100644 --- a/client/homebrew/navbar/vault.navitem.jsx +++ b/client/homebrew/navbar/vault.navitem.jsx @@ -1,6 +1,6 @@ -const React = require('react'); +import React from 'react'; -const Nav = require('client/homebrew/navbar/nav.jsx'); +import Nav from 'client/homebrew/navbar/nav.jsx'; export default function (props) { return ( diff --git a/client/homebrew/pages/accountPage/accountPage.jsx b/client/homebrew/pages/accountPage/accountPage.jsx index 91f8daa05..015106628 100644 --- a/client/homebrew/pages/accountPage/accountPage.jsx +++ b/client/homebrew/pages/accountPage/accountPage.jsx @@ -1,7 +1,7 @@ -const React = require('react'); -const moment = require('moment'); -const UIPage = require('../basePages/uiPage/uiPage.jsx'); -const NaturalCritIcon = require('client/components/svg/naturalcrit-d20.svg.jsx'); +import React from 'react'; +import moment from 'moment'; +import UIPage from '../basePages/uiPage/uiPage.jsx'; +import NaturalCritIcon from 'client/components/svg/naturalcrit-d20.svg.jsx'; let SAVEKEY = ''; diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index 4f952f01e..41d992b9d 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -1,12 +1,11 @@ -require('./brewItem.less'); -const React = require('react'); -const { useCallback } = React; -const moment = require('moment'); +import './brewItem.less'; +import React, { useCallback } from 'react'; +import moment from 'moment'; import request from '../../../../utils/request-middleware.js'; -const googleDriveIcon = require('../../../../googleDrive.svg'); -const homebreweryIcon = require('../../../../thumbnail.svg'); -const dedent = require('dedent-tabs').default; +import googleDriveIcon from '../../../../googleDrive.svg'; +import homebreweryIcon from '../../../../thumbnail.svg'; +import dedent from 'dedent-tabs'; const BrewItem = ({ brew = { diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 9589956d5..e5a662aa6 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -1,11 +1,11 @@ /*eslint max-lines: ["warn", {"max": 300, "skipBlankLines": true, "skipComments": true}]*/ -require('./listPage.less'); -const React = require('react'); -const createClass = require('create-react-class'); -const _ = require('lodash'); -const moment = require('moment'); +import './listPage.less'; +import React from 'react'; +import createReactClass from 'create-react-class'; +import _ from 'lodash'; +import moment from 'moment;' -const BrewItem = require('./brewItem/brewItem.jsx'); +import BrewItem from './brewItem/brewItem.jsx'; const USERPAGE_SORT_DIR = 'HB_listPage_sortDir'; const USERPAGE_SORT_TYPE = 'HB_listPage_sortType'; @@ -14,7 +14,7 @@ const USERPAGE_GROUP_VISIBILITY_PREFIX = 'HB_listPage_visibility_group'; const DEFAULT_SORT_TYPE = 'alpha'; const DEFAULT_SORT_DIR = 'asc'; -const ListPage = createClass({ +const ListPage = createReactClass({ displayName : 'ListPage', getDefaultProps : function() { return { diff --git a/client/homebrew/pages/basePages/uiPage/uiPage.jsx b/client/homebrew/pages/basePages/uiPage/uiPage.jsx index 7a95748aa..c15f69d04 100644 --- a/client/homebrew/pages/basePages/uiPage/uiPage.jsx +++ b/client/homebrew/pages/basePages/uiPage/uiPage.jsx @@ -1,16 +1,16 @@ -require('./uiPage.less'); -const React = require('react'); -const createClass = require('create-react-class'); +import './uiPage.less'; +import React from 'react'; +import createReactClass from 'create-react-class'; -const Nav = require('client/homebrew/navbar/nav.jsx'); -const Navbar = require('client/homebrew/navbar/navbar.jsx'); -const NewBrewItem = require('client/homebrew/navbar/newbrew.navitem.jsx'); -const HelpNavItem = require('client/homebrew/navbar/help.navitem.jsx'); -const RecentNavItem = require('client/homebrew/navbar/recent.navitem.jsx').both; -const Account = require('client/homebrew/navbar/account.navitem.jsx'); +import Nav from 'client/homebrew/navbar/nav.jsx'; +import Navbar from 'client/homebrew/navbar/navbar.jsx'; +import NewBrewItem from 'client/homebrew/navbar/newbrew.navitem.jsx'; +import HelpNavItem from 'client/homebrew/navbar/help.navitem.jsx'; +import { both as RecentNavItem } from 'client/homebrew/navbar/recent.navitem.jsx'; +import Account from 'client/homebrew/navbar/account.navitem.jsx'; -const UIPage = createClass({ +const UIPage = createReactClass({ displayName : 'UIPage', render : function(){ diff --git a/client/homebrew/pages/errorPage/errorPage.jsx b/client/homebrew/pages/errorPage/errorPage.jsx index e90ceb742..ffbfc43bb 100644 --- a/client/homebrew/pages/errorPage/errorPage.jsx +++ b/client/homebrew/pages/errorPage/errorPage.jsx @@ -1,8 +1,8 @@ -require('./errorPage.less'); -const React = require('react'); -const UIPage = require('../basePages/uiPage/uiPage.jsx'); -import Markdown from '../../../../shared/markdown.js'; -const ErrorIndex = require('./errors/errorIndex.js'); +import './errorPage.less'; +import React from 'react'; +import UIPage from '../basePages/uiPage/uiPage.jsx'; +import Markdown from '../../../../shared/markdown.js'; +import ErrorIndex from './errors/errorIndex.js'; const ErrorPage = ({ brew })=>{ // Retrieving the error text based on the brew's error code from ErrorIndex diff --git a/client/homebrew/pages/errorPage/errors/errorIndex.js b/client/homebrew/pages/errorPage/errors/errorIndex.js index 9ca37a854..67b658325 100644 --- a/client/homebrew/pages/errorPage/errors/errorIndex.js +++ b/client/homebrew/pages/errorPage/errors/errorIndex.js @@ -1,4 +1,4 @@ -const dedent = require('dedent-tabs').default; +import dedent from 'dedent-tabs'; const loginUrl = 'https://www.naturalcrit.com/login'; diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index 48bed1655..ccd6533e5 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -1,18 +1,19 @@ -require('./sharePage.less'); -const React = require('react'); -const { useState, useEffect, useCallback } = React; -const { Meta } = require('vitreum/headtags'); +import './sharePage.less'; +import React, { useState, useEffect, useCallback } from 'react'; +import HeadTags from '../../../../vitreum/headtags.js'; +const { Meta } = HeadTags; -const Nav = require('client/homebrew/navbar/nav.jsx'); -const Navbar = require('client/homebrew/navbar/navbar.jsx'); -const MetadataNav = require('client/homebrew/navbar/metadata.navitem.jsx'); -const PrintNavItem = require('client/homebrew/navbar/print.navitem.jsx'); -const RecentNavItem = require('client/homebrew/navbar/recent.navitem.jsx').both; -const Account = require('client/homebrew/navbar/account.navitem.jsx'); -const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx'); -const { DEFAULT_BREW_LOAD } = require('../../../../server/brewDefaults.js'); -const { printCurrentBrew, fetchThemeBundle } = require('../../../../shared/helpers.js'); +import Nav from 'client/homebrew/navbar/nav.jsx'; +import Navbar from 'client/homebrew/navbar/navbar.jsx'; +import MetadataNav from 'client/homebrew/navbar/metadata.navitem.jsx'; +import PrintNavItem from 'client/homebrew/navbar/print.navitem.jsx'; +import { both as RecentNavItem } from 'client/homebrew/navbar/recent.navitem.jsx'; +import Account from 'client/homebrew/navbar/account.navitem.jsx'; +import BrewRenderer from '../../brewRenderer/brewRenderer.jsx'; + +import { DEFAULT_BREW_LOAD } from '../../../../server/brewDefaults.js'; +import { printCurrentBrew, fetchThemeBundle } from '../../../../shared/helpers.js'; const SharePage = (props)=>{ const { brew = DEFAULT_BREW_LOAD, disableMeta = false } = props; diff --git a/client/homebrew/pages/userPage/userPage.jsx b/client/homebrew/pages/userPage/userPage.jsx index ac4257124..f6f0cfa38 100644 --- a/client/homebrew/pages/userPage/userPage.jsx +++ b/client/homebrew/pages/userPage/userPage.jsx @@ -1,17 +1,16 @@ -const React = require('react'); -const { useState } = React; -const _ = require('lodash'); +import React, { useState} from 'react'; +import _ from 'lodash'; -const ListPage = require('../basePages/listPage/listPage.jsx'); +import ListPage from '../basePages/listPage/listPage.jsx'; -const Nav = require('client/homebrew/navbar/nav.jsx'); -const Navbar = require('client/homebrew/navbar/navbar.jsx'); -const RecentNavItem = require('client/homebrew/navbar/recent.navitem.jsx').both; -const Account = require('client/homebrew/navbar/account.navitem.jsx'); -const NewBrew = require('client/homebrew/navbar/newbrew.navitem.jsx'); -const HelpNavItem = require('client/homebrew/navbar/help.navitem.jsx'); -const ErrorNavItem = require('client/homebrew/navbar/error-navitem.jsx'); -const VaultNavitem = require('client/homebrew/navbar/vault.navitem.jsx'); +import Nav from 'client/homebrew/navbar/nav.jsx'; +import Navbar from 'client/homebrew/navbar/navbar.jsx'; +import { both as RecentNavItem } from 'client/homebrew/navbar/recent.navitem.jsx'; +import Account from 'client/homebrew/navbar/account.navitem.jsx'; +import NewBrew from 'client/homebrew/navbar/newbrew.navitem.jsx'; +import HelpNavItem from 'client/homebrew/navbar/help.navitem.jsx'; +import ErrorNavItem from 'client/homebrew/navbar/error-navitem.jsx'; +import VaultNavitem from 'client/homebrew/navbar/vault.navitem.jsx'; const UserPage = (props)=>{ props = { diff --git a/client/homebrew/pages/vaultPage/vaultPage.jsx b/client/homebrew/pages/vaultPage/vaultPage.jsx index a9c316d8a..fd2dff064 100644 --- a/client/homebrew/pages/vaultPage/vaultPage.jsx +++ b/client/homebrew/pages/vaultPage/vaultPage.jsx @@ -1,19 +1,17 @@ /*eslint max-lines: ["warn", {"max": 400, "skipBlankLines": true, "skipComments": true}]*/ /*eslint max-params:["warn", { max: 10 }], */ -require('./vaultPage.less'); +import './vaultPage.less'; +import React, { useState, useEffect, useRef } from 'react'; -const React = require('react'); -const { useState, useEffect, useRef } = React; - -const Nav = require('client/homebrew/navbar/nav.jsx'); -const Navbar = require('client/homebrew/navbar/navbar.jsx'); -const RecentNavItem = require('client/homebrew/navbar/recent.navitem.jsx').both; -const Account = require('client/homebrew/navbar/account.navitem.jsx'); -const NewBrew = require('client/homebrew/navbar/newbrew.navitem.jsx'); -const HelpNavItem = require('client/homebrew/navbar/help.navitem.jsx'); -const BrewItem = require('../basePages/listPage/brewItem/brewItem.jsx'); -const SplitPane = require('client/components/splitPane/splitPane.jsx'); -const ErrorIndex = require('../errorPage/errors/errorIndex.js'); +import Nav from 'client/homebrew/navbar/nav.jsx'; +import Navbar from 'client/homebrew/navbar/navbar.jsx'; +import { both as RecentNavItem } from 'client/homebrew/navbar/recent.navitem.jsx'; +import Account from 'client/homebrew/navbar/account.navitem.jsx'; +import NewBrew from 'client/homebrew/navbar/newbrew.navitem.jsx'; +import HelpNavItem from 'client/homebrew/navbar/help.navitem.jsx'; +import BrewItem from '../basePages/listPage/brewItem/brewItem.jsx'; +import SplitPane from 'client/components/splitPane/splitPane.jsx'; +import ErrorIndex from '../errorPage/errors/errorIndex.js'; import request from '../../utils/request-middleware.js'; diff --git a/eslint.config.mjs b/eslint.config.mjs index 25d0395c7..549ba2536 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -32,7 +32,7 @@ export default [{ "max-depth" : ["warn", { max: 4 }], "max-params" : ["warn", { max: 5 }], "no-restricted-syntax" : ["warn", "ClassDeclaration", "SwitchStatement"], - "no-unused-vars" : ["warn", { vars: "all", args: "none", varsIgnorePattern: "config|_|cx|createClass" }], + "no-unused-vars" : ["warn", { vars: "all", args: "none", varsIgnorePattern: "config|_|cx|createReactClass" }], "react/jsx-uses-vars" : "warn", /** Fixable **/ diff --git a/shared/markdownLegacy.js b/shared/markdownLegacy.js index 0dfd46320..9cea8dbb2 100644 --- a/shared/markdownLegacy.js +++ b/shared/markdownLegacy.js @@ -1,5 +1,5 @@ -const _ = require('lodash'); -const Markdown = require('markedLegacy'); +import _ from 'lodash'; +import Markdown from 'markedLegacy'; const renderer = new Markdown.Renderer(); //Processes the markdown within an HTML block if it's just a class-wrapper diff --git a/tests/html/safeHTML.test.js b/tests/html/safeHTML.test.js index cb5466a48..d1bb2b539 100644 --- a/tests/html/safeHTML.test.js +++ b/tests/html/safeHTML.test.js @@ -1,6 +1,5 @@ - - -require('jsdom-global')(); +import jsdomGlobal from 'jsdom-global'; +jsdomGlobal(); import { safeHTML } from '../../client/homebrew/brewRenderer/safeHTML'; diff --git a/tests/markdown/emojis.test.js b/tests/markdown/emojis.test.js index e21eec414..e5b6ecd47 100644 --- a/tests/markdown/emojis.test.js +++ b/tests/markdown/emojis.test.js @@ -1,5 +1,5 @@ import Markdown from 'markdown.js'; -const dedent = require('dedent-tabs').default; +import dedent from 'dedent-tabs'; // Marked.js adds line returns after closing tags on some default tokens. // This removes those line returns for comparison sake. diff --git a/tests/markdown/mustache-syntax.test.js b/tests/markdown/mustache-syntax.test.js index 5743f7903..bdf368414 100644 --- a/tests/markdown/mustache-syntax.test.js +++ b/tests/markdown/mustache-syntax.test.js @@ -1,6 +1,6 @@ /* eslint-disable max-lines */ -const dedent = require('dedent-tabs').default; +import dedent from 'dedent-tabs'; import Markdown from 'markdown.js'; // Marked.js adds line returns after closing tags on some default tokens. diff --git a/tests/markdown/variables.test.js b/tests/markdown/variables.test.js index 64232078f..aa2117f31 100644 --- a/tests/markdown/variables.test.js +++ b/tests/markdown/variables.test.js @@ -1,6 +1,6 @@ /* eslint-disable max-lines */ -const dedent = require('dedent-tabs').default; +import dedent from 'dedent-tabs'; import Markdown from 'markdown.js'; // Marked.js adds line returns after closing tags on some default tokens. diff --git a/themes/Legacy/5ePHB/snippets.js b/themes/Legacy/5ePHB/snippets.js index e1665b47c..3bcdac50e 100644 --- a/themes/Legacy/5ePHB/snippets.js +++ b/themes/Legacy/5ePHB/snippets.js @@ -1,12 +1,12 @@ /* eslint-disable max-lines */ -const MagicGen = require('./snippets/magic.gen.js'); -const ClassTableGen = require('./snippets/classtable.gen.js'); -const MonsterBlockGen = require('./snippets/monsterblock.gen.js'); -const ClassFeatureGen = require('./snippets/classfeature.gen.js'); -const CoverPageGen = require('./snippets/coverpage.gen.js'); -const TableOfContentsGen = require('./snippets/tableOfContents.gen.js'); -const dedent = require('dedent-tabs').default; +import MagicGen from './snippets/magic.gen.js'; +import ClassTableGen from './snippets/classtable.gen.js'; +import MonsterBlockGen from './snippets/monsterblock.gen.js'; +import ClassFeatureGen from './snippets/classfeature.gen.js'; +import CoverPageGen from './snippets/coverpage.gen.js'; +import TableOfContentsGen from './snippets/tableOfContents.gen.js'; +import dedent from 'dedent-tabs'; export default [ diff --git a/themes/Legacy/5ePHB/snippets/classfeature.gen.js b/themes/Legacy/5ePHB/snippets/classfeature.gen.js index 53e989dcc..b92d527f9 100644 --- a/themes/Legacy/5ePHB/snippets/classfeature.gen.js +++ b/themes/Legacy/5ePHB/snippets/classfeature.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; export default function(classname){ diff --git a/themes/Legacy/5ePHB/snippets/classtable.gen.js b/themes/Legacy/5ePHB/snippets/classtable.gen.js index 69ded1b19..3444de38f 100644 --- a/themes/Legacy/5ePHB/snippets/classtable.gen.js +++ b/themes/Legacy/5ePHB/snippets/classtable.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; const features = [ 'Astrological Botany', diff --git a/themes/Legacy/5ePHB/snippets/coverpage.gen.js b/themes/Legacy/5ePHB/snippets/coverpage.gen.js index 8d66c4391..0cd0e50d5 100644 --- a/themes/Legacy/5ePHB/snippets/coverpage.gen.js +++ b/themes/Legacy/5ePHB/snippets/coverpage.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; const titles = [ 'The Burning Gallows', diff --git a/themes/Legacy/5ePHB/snippets/fullclass.gen.js b/themes/Legacy/5ePHB/snippets/fullclass.gen.js index 68fc81ac3..50d1ef578 100644 --- a/themes/Legacy/5ePHB/snippets/fullclass.gen.js +++ b/themes/Legacy/5ePHB/snippets/fullclass.gen.js @@ -1,8 +1,8 @@ -const _ = require('lodash'); +import _ from 'lodash'; -const ClassFeatureGen = require('./classfeature.gen.js'); +import ClassFeatureGen from './classfeature.gen.js'; -const ClassTableGen = require('./classtable.gen.js'); +import ClassTableGen from './classtable.gen.js'; export default function(){ diff --git a/themes/Legacy/5ePHB/snippets/magic.gen.js b/themes/Legacy/5ePHB/snippets/magic.gen.js index 832ad2a84..cea4ac1a8 100644 --- a/themes/Legacy/5ePHB/snippets/magic.gen.js +++ b/themes/Legacy/5ePHB/snippets/magic.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; const spellNames = [ 'Astral Rite of Acne', diff --git a/themes/Legacy/5ePHB/snippets/monsterblock.gen.js b/themes/Legacy/5ePHB/snippets/monsterblock.gen.js index 3279fa995..9c241a7ae 100644 --- a/themes/Legacy/5ePHB/snippets/monsterblock.gen.js +++ b/themes/Legacy/5ePHB/snippets/monsterblock.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; const genList = function(list, max){ return _.sampleSize(list, _.random(0, max)).join(', ') || 'None'; diff --git a/themes/Legacy/5ePHB/snippets/tableOfContents.gen.js b/themes/Legacy/5ePHB/snippets/tableOfContents.gen.js index 3873eb400..b37cca9ee 100644 --- a/themes/Legacy/5ePHB/snippets/tableOfContents.gen.js +++ b/themes/Legacy/5ePHB/snippets/tableOfContents.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; const getTOC = (pages)=>{ const add1 = (title, page)=>{ diff --git a/themes/V3/5ePHB/snippets.js b/themes/V3/5ePHB/snippets.js index afa789af5..9ab81b2c0 100644 --- a/themes/V3/5ePHB/snippets.js +++ b/themes/V3/5ePHB/snippets.js @@ -1,15 +1,12 @@ /* eslint-disable max-lines */ - -const MagicGen = require('./snippets/magic.gen.js'); -const ClassTableGen = require('./snippets/classtable.gen.js'); -const MonsterBlockGen = require('./snippets/monsterblock.gen.js'); -const scriptGen = require('./snippets/script.gen.js'); -const ClassFeatureGen = require('./snippets/classfeature.gen.js'); -const CoverPageGen = require('./snippets/coverpage.gen.js'); -const QuoteGen = require('./snippets/quote.gen.js'); -const dedent = require('dedent-tabs').default; - - +import MagicGen from './snippets/magic.gen.js'; +import ClassTableGen from './snippets/classtable.gen.js'; +import MonsterBlockGen from './snippets/monsterblock.gen.js'; +import scriptGen from './snippets/script.gen.js'; +import ClassFeatureGen from './snippets/classfeature.gen.js'; +import CoverPageGen from './snippets/coverpage.gen.js'; +import QuoteGen from './snippets/quote.gen.js'; +import dedent from 'dedent-tabs'; export default [ { diff --git a/themes/V3/5ePHB/snippets/classfeature.gen.js b/themes/V3/5ePHB/snippets/classfeature.gen.js index 794545920..9ea46785a 100644 --- a/themes/V3/5ePHB/snippets/classfeature.gen.js +++ b/themes/V3/5ePHB/snippets/classfeature.gen.js @@ -1,5 +1,5 @@ -const _ = require('lodash'); -const dedent = require('dedent-tabs').default; +import _ from 'lodash'; +import dedent from 'dedent-tabs'; export default function(classname){ diff --git a/themes/V3/5ePHB/snippets/classtable.gen.js b/themes/V3/5ePHB/snippets/classtable.gen.js index 469ed5193..0f2d2371a 100644 --- a/themes/V3/5ePHB/snippets/classtable.gen.js +++ b/themes/V3/5ePHB/snippets/classtable.gen.js @@ -1,5 +1,5 @@ -const _ = require('lodash'); -const dedent = require('dedent-tabs').default; +import _ from 'lodash'; +import dedent from 'dedent-tabs'; const features = [ 'Astrological Botany', 'Biochemical Sorcery', 'Civil Divination', diff --git a/themes/V3/5ePHB/snippets/coverpage.gen.js b/themes/V3/5ePHB/snippets/coverpage.gen.js index 20ef3c3f8..7cf9cf5cf 100644 --- a/themes/V3/5ePHB/snippets/coverpage.gen.js +++ b/themes/V3/5ePHB/snippets/coverpage.gen.js @@ -1,5 +1,5 @@ -const _ = require('lodash'); -const dedent = require('dedent-tabs').default; +import _ from 'lodash'; +import dedent from 'dedent-tabs'; const titles = [ 'The Burning Gallows', 'The Ring of Nenlast', diff --git a/themes/V3/5ePHB/snippets/fullclass.gen.js b/themes/V3/5ePHB/snippets/fullclass.gen.js index 68fc81ac3..16cf5854a 100644 --- a/themes/V3/5ePHB/snippets/fullclass.gen.js +++ b/themes/V3/5ePHB/snippets/fullclass.gen.js @@ -1,8 +1,7 @@ -const _ = require('lodash'); +import _ from 'lodash'; -const ClassFeatureGen = require('./classfeature.gen.js'); - -const ClassTableGen = require('./classtable.gen.js'); +import ClassFeatureGen from './classfeature.gen.js'; +import ClassTableGen from './classtable.gen.js'; export default function(){ diff --git a/themes/V3/5ePHB/snippets/magic.gen.js b/themes/V3/5ePHB/snippets/magic.gen.js index 745d86695..11a8011e7 100644 --- a/themes/V3/5ePHB/snippets/magic.gen.js +++ b/themes/V3/5ePHB/snippets/magic.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; const spellNames = [ 'Astral Rite of Acne', diff --git a/themes/V3/5ePHB/snippets/monsterblock.gen.js b/themes/V3/5ePHB/snippets/monsterblock.gen.js index 1f3b37736..483c9016d 100644 --- a/themes/V3/5ePHB/snippets/monsterblock.gen.js +++ b/themes/V3/5ePHB/snippets/monsterblock.gen.js @@ -1,5 +1,5 @@ -const _ = require('lodash'); -const dedent = require('dedent-tabs').default; +import _ from 'lodash'; +import dedent from 'dedent-tabs'; const genList = function(list, max){ return _.sampleSize(list, _.random(0, max)).join(', ') || 'None'; diff --git a/themes/V3/5ePHB/snippets/quote.gen.js b/themes/V3/5ePHB/snippets/quote.gen.js index f7c9c7414..4f52ea4c5 100644 --- a/themes/V3/5ePHB/snippets/quote.gen.js +++ b/themes/V3/5ePHB/snippets/quote.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; const quotes = [ 'The sword glinted in the dim light, its edges keen and deadly. As the adventurer reached for it, he couldn\'t help but feel a surge of excitement mixed with fear. This was no ordinary blade.', diff --git a/themes/V3/5ePHB/snippets/script.gen.js b/themes/V3/5ePHB/snippets/script.gen.js index 44573958f..ace330255 100644 --- a/themes/V3/5ePHB/snippets/script.gen.js +++ b/themes/V3/5ePHB/snippets/script.gen.js @@ -1,5 +1,5 @@ -const _ = require('lodash'); -const dedent = require('dedent-tabs').default; +import _ from 'lodash'; +import dedent from 'dedent-tabs'; export default { dwarvish : ()=>{ diff --git a/themes/V3/5ePHB/snippets/watercolor.gen.js b/themes/V3/5ePHB/snippets/watercolor.gen.js index 3d8c81f8b..25ce84aa9 100644 --- a/themes/V3/5ePHB/snippets/watercolor.gen.js +++ b/themes/V3/5ePHB/snippets/watercolor.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; export default ()=>{ return `{{watercolor${_.random(1, 12)},top:20px,left:30px,width:300px,background-color:#BBAD82,opacity:80%}}\n\n`; diff --git a/themes/V3/Blank/snippets.js b/themes/V3/Blank/snippets.js index 3b443740e..3f7dd1c19 100644 --- a/themes/V3/Blank/snippets.js +++ b/themes/V3/Blank/snippets.js @@ -1,17 +1,16 @@ /* eslint-disable max-lines */ - -const WatercolorGen = require('./snippets/watercolor.gen.js'); -const ImageMaskGen = require('./snippets/imageMask.gen.js'); -const FooterGen = require('./snippets/footer.gen.js'); -const LicenseGenWotC = require('./snippets/licenseWotC.gen.js'); -const LicenseGenGNU = require('./snippets/licenseGNU.gen.js'); -const LicenseGen = require('./snippets/license.gen.js'); -const LicenseGenAelf = require('./snippets/licenseAELF.js'); -const LicenseDTTRPGGCC = require('./snippets/licenseDTRPGCC.gen.js'); -const LicenseMongoosePublishing = require('./snippets/licenseMongoose.gen.js'); -const dedent = require('dedent-tabs').default; -const TableOfContentsGen = require('./snippets/tableOfContents.gen.js'); -const indexGen = require('./snippets/index.gen.js'); +import dedent from 'dedent-tabs'; +import WatercolorGen from './snippets/watercolor.gen.js'; +import ImageMaskGen from './snippets/imageMask.gen.js'; +import FooterGen from './snippets/footer.gen.js'; +import LicenseGenWotC from './snippets/licenseWotC.gen.js'; +import LicenseGenGNU from './snippets/licenseGNU.gen.js'; +import LicenseGen from './snippets/license.gen.js'; +import LicenseGenAelf from './snippets/licenseAELF.js'; +import LicenseDTTRPGGCC from './snippets/licenseDTRPGCC.gen.js'; +import LicenseMongoosePublishing from './snippets/licenseMongoose.gen.js'; +import TableOfContentsGen from './snippets/tableOfContents.gen.js'; +import indexGen from './snippets/index.gen.js'; export default [ diff --git a/themes/V3/Blank/snippets/imageMask.gen.js b/themes/V3/Blank/snippets/imageMask.gen.js index 9127b826b..761259c19 100644 --- a/themes/V3/Blank/snippets/imageMask.gen.js +++ b/themes/V3/Blank/snippets/imageMask.gen.js @@ -1,5 +1,5 @@ -const _ = require('lodash'); -const dedent = require('dedent-tabs').default; +import _ from 'lodash'; +import dedent from 'dedent-tabs'; export default { center : ()=>{ diff --git a/themes/V3/Blank/snippets/index.gen.js b/themes/V3/Blank/snippets/index.gen.js index 5a10f67f4..1321762e9 100644 --- a/themes/V3/Blank/snippets/index.gen.js +++ b/themes/V3/Blank/snippets/index.gen.js @@ -1,4 +1,4 @@ -const dedent = require('dedent-tabs').default; +import dedent from 'dedent-tabs'; export default ()=>{ return dedent` diff --git a/themes/V3/Blank/snippets/license.gen.js b/themes/V3/Blank/snippets/license.gen.js index b8f0778c5..2bb3b9daa 100644 --- a/themes/V3/Blank/snippets/license.gen.js +++ b/themes/V3/Blank/snippets/license.gen.js @@ -1,5 +1,5 @@ /* eslint-disable max-lines */ -const dedent = require('dedent'); +import dedent from 'dedent'; // Small and one-off licenses // Licenses in this file consist of one or two functions at most. If something is larger, diff --git a/themes/V3/Blank/snippets/licenseAELF.js b/themes/V3/Blank/snippets/licenseAELF.js index 12e45a3f9..0df1d8028 100644 --- a/themes/V3/Blank/snippets/licenseAELF.js +++ b/themes/V3/Blank/snippets/licenseAELF.js @@ -1,5 +1,5 @@ /* eslint-disable max-lines */ -const dedent = require('dedent'); +import dedent from 'dedent'; // AELF License diff --git a/themes/V3/Blank/snippets/licenseDTRPGCC.gen.js b/themes/V3/Blank/snippets/licenseDTRPGCC.gen.js index 98377651a..8febabfbb 100644 --- a/themes/V3/Blank/snippets/licenseDTRPGCC.gen.js +++ b/themes/V3/Blank/snippets/licenseDTRPGCC.gen.js @@ -1,5 +1,5 @@ /* eslint-disable max-lines */ -const dedent = require('dedent'); +import dedent from 'dedent'; // DriveThruRPG/OneBookShelf Community Content Programs diff --git a/themes/V3/Blank/snippets/licenseGNU.gen.js b/themes/V3/Blank/snippets/licenseGNU.gen.js index 4952ee7de..e09a0d2df 100644 --- a/themes/V3/Blank/snippets/licenseGNU.gen.js +++ b/themes/V3/Blank/snippets/licenseGNU.gen.js @@ -1,5 +1,5 @@ /* eslint-disable max-lines */ -const dedent = require('dedent'); +import dedent from 'dedent'; // GNU Licenses diff --git a/themes/V3/Blank/snippets/licenseMongoose.gen.js b/themes/V3/Blank/snippets/licenseMongoose.gen.js index bc8e58148..c89ae6429 100644 --- a/themes/V3/Blank/snippets/licenseMongoose.gen.js +++ b/themes/V3/Blank/snippets/licenseMongoose.gen.js @@ -1,5 +1,5 @@ /* eslint-disable max-lines */ -const dedent = require('dedent'); +import dedent from 'dedent'; // Mongoose Publishing Licenses diff --git a/themes/V3/Blank/snippets/licenseWotC.gen.js b/themes/V3/Blank/snippets/licenseWotC.gen.js index a33bb4c46..543255540 100644 --- a/themes/V3/Blank/snippets/licenseWotC.gen.js +++ b/themes/V3/Blank/snippets/licenseWotC.gen.js @@ -1,5 +1,5 @@ /* eslint-disable max-lines */ -const dedent = require('dedent'); +import dedent from 'dedent'; export default { ogl1a : function () { diff --git a/themes/V3/Blank/snippets/tableOfContents.gen.js b/themes/V3/Blank/snippets/tableOfContents.gen.js index 45dca126c..d093d574a 100644 --- a/themes/V3/Blank/snippets/tableOfContents.gen.js +++ b/themes/V3/Blank/snippets/tableOfContents.gen.js @@ -1,4 +1,4 @@ -const dedent = require('dedent-tabs').default; +import dedent from 'dedent-tabs'; // Map each actual page to its footer label, accounting for skips or numbering resets const mapPages = (pages)=>{ diff --git a/themes/V3/Blank/snippets/watercolor.gen.js b/themes/V3/Blank/snippets/watercolor.gen.js index 3d8c81f8b..25ce84aa9 100644 --- a/themes/V3/Blank/snippets/watercolor.gen.js +++ b/themes/V3/Blank/snippets/watercolor.gen.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +import _ from 'lodash'; export default ()=>{ return `{{watercolor${_.random(1, 12)},top:20px,left:30px,width:300px,background-color:#BBAD82,opacity:80%}}\n\n`; diff --git a/vitreum/headtags.js b/vitreum/headtags.js new file mode 100644 index 000000000..8e0d06523 --- /dev/null +++ b/vitreum/headtags.js @@ -0,0 +1,79 @@ +import React from 'react'; + +const obj2props = (obj)=>Object.entries(obj).map(([k,v])=>`${k}="${v}"`).join(' '); +const toStr = (chld)=>Array.isArray(chld) ? chld.join('') : chld; +const onServer = (typeof window === 'undefined'); + +const injectTag = (tag, props, children)=>{ + const injectNode = document.createElement(tag); + Object.entries(props).map(([key, val])=>injectNode[key]=val); + if(children) injectNode.appendChild(document.createTextNode(children)); + document.getElementsByTagName('head')[0].appendChild(injectNode); +}; + + +let NamedTags = {}; +let UnnamedTags = []; + + +const HeadComponents = { + Title({ children }){ + if(onServer) NamedTags.title = `${toStr(children)}`; + React.useEffect(()=>{document.title = toStr(children)}, [children]); + return null; + }, + Favicon({ type = 'image/png', href = '', rel='icon', id= 'favicon'}){ + if(onServer) NamedTags.favicon = `` + React.useEffect(()=>{document.getElementById(id).href=href}, [id, href]); + return null; + }, + + Description({ children }){ + if(onServer) NamedTags.description = `` + return null; + }, + + Noscript({ children }){ + if(onServer) UnnamedTags.push(`