From b447d81b4c23d9c8fe5e52b8b989b908bf3dd2d1 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 22 Jul 2025 18:23:11 +1200 Subject: [PATCH 01/73] Add service account to file permissions --- server/googleActions.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/server/googleActions.js b/server/googleActions.js index 0ca7556ba..bfa44c800 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -6,6 +6,7 @@ import config from './config.js'; let serviceAuth; +let clientEmail; if(!config.get('service_account')){ const reset = '\x1b[0m'; // Reset to default style const yellow = '\x1b[33m'; // yellow color @@ -15,6 +16,10 @@ if(!config.get('service_account')){ JSON.parse(config.get('service_account')) : config.get('service_account'); + if(keys?.client_email) { + clientEmail = keys.client_email; + } + try { serviceAuth = googleDrive.auth.fromJSON(keys); serviceAuth.scopes = ['https://www.googleapis.com/auth/drive']; @@ -227,9 +232,27 @@ const GoogleActions = { if(!obj) return; + if(clientEmail) { + await drive.permissions.create({ + resource : { + type : 'user', + emailAddress : clientEmail, + role : 'writer' + }, + fileId : obj.data.id, + fields : 'id', + }) + .catch((err)=>{ + console.log('Error updating permissions'); + console.error(err); + }); + } + await drive.permissions.create({ - resource : { type : 'anyone', - role : 'writer' }, + resource : { + type : 'anyone', + role : 'writer' + }, fileId : obj.data.id, fields : 'id', }) From 8e2abb9f78c1c065b8206e310041305797f0bac5 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Fri, 25 Jul 2025 12:04:41 +1200 Subject: [PATCH 02/73] Basic Google file permission checking --- server/app.js | 5 ++++- server/googleActions.js | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/server/app.js b/server/app.js index 869fe6555..0e69484b0 100644 --- a/server/app.js +++ b/server/app.js @@ -318,6 +318,9 @@ app.get('/user/:username', async (req, res, next)=>{ // If stub matches file from Google, use Google metadata over stub metadata if(googleBrews && googleBrews.length > 0) { for (const brew of brews.filter((brew)=>brew.googleId)) { + const permissionCheck = await GoogleActions.checkPermissions(auth, brew); + brew.permissionCheck = permissionCheck; + const match = googleBrews.findIndex((b)=>b.editId === brew.editId); if(match !== -1) { brew.googleId = googleBrews[match].googleId; @@ -330,7 +333,7 @@ app.get('/user/:username', async (req, res, next)=>{ } //Remaining unstubbed google brews display current user as author - googleBrews = googleBrews.map((brew)=>({ ...brew, authors: [req.account.username] })); + googleBrews = googleBrews.map(async (brew)=>({ ...brew, authors: [req.account.username] })); brews = _.concat(brews, googleBrews); } } diff --git a/server/googleActions.js b/server/googleActions.js index bfa44c800..447d99874 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -264,6 +264,26 @@ const GoogleActions = { return obj.data.id; }, + checkPermissions : async (auth, brew)=>{ + if(!brew?.googleId) return; + const drive = googleDrive.drive({ version: 'v3', auth }); + + try { + const driveData = await drive.permissions.list({ fileId: brew.googleId }); + const permissionsList = driveData?.data?.permissions; + + if(permissionsList.some((permission)=>{ + return permission.id == 'anyoneWithLink' && permission.role == 'writer'; + })){ + return 1; + }; + } catch (err) { + return err.code; + } + + return 999; + }, + getGoogleBrew : async (auth = defaultAuth, id, accessId, accessType)=>{ const drive = googleDrive.drive({ version: 'v3', auth: auth }); From 35d93582d762b619a9dc1817f9d74690bc8ddfc2 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 10 Nov 2025 06:04:10 +0000 Subject: [PATCH 03/73] Remove unnecessary async map function --- server/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/app.js b/server/app.js index da1a4ba7e..e3978ee8b 100644 --- a/server/app.js +++ b/server/app.js @@ -334,7 +334,7 @@ app.get('/user/:username', dbCheck, async (req, res, next)=>{ } //Remaining unstubbed google brews display current user as author - googleBrews = googleBrews.map(async (brew)=>({ ...brew, authors: [req.account.username] })); + googleBrews = googleBrews.map((brew)=>({ ...brew, authors: [req.account.username] })); brews = _.concat(brews, googleBrews); } } From de85c8468507956ba5c96d78ea1af425a9341dd1 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 10 Nov 2025 06:05:58 +0000 Subject: [PATCH 04/73] Remove permissionsCheck from brew listing --- server/app.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/server/app.js b/server/app.js index e3978ee8b..1bdb5aac3 100644 --- a/server/app.js +++ b/server/app.js @@ -319,9 +319,6 @@ app.get('/user/:username', dbCheck, async (req, res, next)=>{ // If stub matches file from Google, use Google metadata over stub metadata if(googleBrews && googleBrews.length > 0) { for (const brew of brews.filter((brew)=>brew.googleId)) { - const permissionCheck = await GoogleActions.checkPermissions(auth, brew); - brew.permissionCheck = permissionCheck; - const match = googleBrews.findIndex((b)=>b.editId === brew.editId); if(match !== -1) { brew.googleId = googleBrews[match].googleId; From 14ea286aa27a877aec9fb93bfed66770593e3653 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 10 Nov 2025 06:07:37 +0000 Subject: [PATCH 05/73] Remove Google permissions check function --- server/googleActions.js | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/server/googleActions.js b/server/googleActions.js index 447d99874..bfa44c800 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -264,26 +264,6 @@ const GoogleActions = { return obj.data.id; }, - checkPermissions : async (auth, brew)=>{ - if(!brew?.googleId) return; - const drive = googleDrive.drive({ version: 'v3', auth }); - - try { - const driveData = await drive.permissions.list({ fileId: brew.googleId }); - const permissionsList = driveData?.data?.permissions; - - if(permissionsList.some((permission)=>{ - return permission.id == 'anyoneWithLink' && permission.role == 'writer'; - })){ - return 1; - }; - } catch (err) { - return err.code; - } - - return 999; - }, - getGoogleBrew : async (auth = defaultAuth, id, accessId, accessType)=>{ const drive = googleDrive.drive({ version: 'v3', auth: auth }); From 1adbbc2ced21f7157b5a4937c7cea5d0860b090a Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sat, 15 Nov 2025 15:37:01 +1300 Subject: [PATCH 06/73] Updated error message on failure to set permissions on Google Drive file --- server/googleActions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/googleActions.js b/server/googleActions.js index bfa44c800..5a2f82001 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -243,7 +243,7 @@ const GoogleActions = { fields : 'id', }) .catch((err)=>{ - console.log('Error updating permissions'); + console.log('Error updating permissions on Google Drive file'); console.error(err); }); } From e063eab4e7c928daa4e036b1485a3b4237336a9d Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sat, 15 Nov 2025 15:40:55 +1300 Subject: [PATCH 07/73] Make error messages more distinctive --- server/googleActions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/googleActions.js b/server/googleActions.js index 5a2f82001..8210f1827 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -243,7 +243,7 @@ const GoogleActions = { fields : 'id', }) .catch((err)=>{ - console.log('Error updating permissions on Google Drive file'); + console.log('Error adding Service Account permissions on Google Drive file'); console.error(err); }); } @@ -257,7 +257,7 @@ const GoogleActions = { fields : 'id', }) .catch((err)=>{ - console.log('Error updating permissions'); + console.log('Error adding "Anyone" permissions on Google Drive file'); console.error(err); }); From a0cfec7668f2d087e6838707f6a8b1135a2d00d3 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sat, 15 Nov 2025 04:35:23 +0000 Subject: [PATCH 08/73] test change --- server/googleActions.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/googleActions.js b/server/googleActions.js index 8210f1827..b13ca11b9 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -249,10 +249,8 @@ const GoogleActions = { } await drive.permissions.create({ - resource : { - type : 'anyone', - role : 'writer' - }, + resource : { type : 'anyone', + role : 'writer' }, fileId : obj.data.id, fields : 'id', }) From 9f721ff2fc3cc092bd3de8f3d4dce3d6139244b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 03:01:21 +0000 Subject: [PATCH 09/73] Bump the dev-dependencies group across 1 directory with 2 updates Bumps the dev-dependencies group with 2 updates in the / directory: [eslint](https://github.com/eslint/eslint) and [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest). Updates `eslint` from 9.39.0 to 9.39.1 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v9.39.0...v9.39.1) Updates `eslint-plugin-jest` from 29.0.1 to 29.1.0 - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v29.0.1...v29.1.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 9.39.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: eslint-plugin-jest dependency-version: 29.1.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] --- package-lock.json | 24 ++++++++++++------------ package.json | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0d6845c3..37cb63667 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,8 +66,8 @@ "devDependencies": { "@stylistic/stylelint-plugin": "^4.0.0", "babel-plugin-transform-import-meta": "^2.3.3", - "eslint": "^9.37.0", - "eslint-plugin-jest": "^29.0.1", + "eslint": "^9.39.1", + "eslint-plugin-jest": "^29.1.0", "eslint-plugin-react": "^7.37.5", "globals": "^16.4.0", "jest": "^30.2.0", @@ -2258,9 +2258,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.0.tgz", - "integrity": "sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, "license": "MIT", "engines": { @@ -6259,9 +6259,9 @@ } }, "node_modules/eslint": { - "version": "9.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.0.tgz", - "integrity": "sha512-iy2GE3MHrYTL5lrCtMZ0X1KLEKKUjmK0kzwcnefhR66txcEmXZD2YWgR5GNdcEwkNx3a0siYkSvl0vIC+Svjmg==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", "dependencies": { @@ -6271,7 +6271,7 @@ "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.0", + "@eslint/js": "9.39.1", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -6319,9 +6319,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.0.1.tgz", - "integrity": "sha512-EE44T0OSMCeXhDrrdsbKAhprobKkPtJTbQz5yEktysNpHeDZTAL1SfDTNKmcFfJkY6yrQLtTKZALrD3j/Gpmiw==", + "version": "29.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz", + "integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index b4b86693d..2659b5476 100644 --- a/package.json +++ b/package.json @@ -141,8 +141,8 @@ "devDependencies": { "@stylistic/stylelint-plugin": "^4.0.0", "babel-plugin-transform-import-meta": "^2.3.3", - "eslint": "^9.37.0", - "eslint-plugin-jest": "^29.0.1", + "eslint": "^9.39.1", + "eslint-plugin-jest": "^29.1.0", "eslint-plugin-react": "^7.37.5", "globals": "^16.4.0", "jest": "^30.2.0", From 9970dd06997ccfc9d1995525ed19d7e81f008e67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 03:02:34 +0000 Subject: [PATCH 10/73] Bump the prod-dependencies group across 1 directory with 7 updates Bumps the prod-dependencies group with 7 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) | `7.27.1` | `7.28.5` | | [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) | `3.46.0` | `3.47.0` | | [js-yaml](https://github.com/nodeca/js-yaml) | `4.1.0` | `4.1.1` | | [marked-emoji](https://github.com/UziTech/marked-emoji) | `2.0.1` | `2.0.2` | | [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) | `4.1.2` | `4.1.3` | | [mongoose](https://github.com/Automattic/mongoose) | `8.19.2` | `8.20.0` | | [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `7.9.5` | `7.9.6` | Updates `@babel/preset-react` from 7.27.1 to 7.28.5 - [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.28.5/packages/babel-preset-react) Updates `core-js` from 3.46.0 to 3.47.0 - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/commits/v3.47.0/packages/core-js) Updates `js-yaml` from 4.1.0 to 4.1.1 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) Updates `marked-emoji` from 2.0.1 to 2.0.2 - [Release notes](https://github.com/UziTech/marked-emoji/releases) - [Changelog](https://github.com/UziTech/marked-emoji/blob/main/release.config.cjs) - [Commits](https://github.com/UziTech/marked-emoji/compare/v2.0.1...v2.0.2) Updates `marked-gfm-heading-id` from 4.1.2 to 4.1.3 - [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases) - [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs) - [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v4.1.2...v4.1.3) Updates `mongoose` from 8.19.2 to 8.20.0 - [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.19.2...8.20.0) Updates `react-router` from 7.9.5 to 7.9.6 - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router@7.9.6/packages/react-router) --- updated-dependencies: - dependency-name: "@babel/preset-react" dependency-version: 7.28.5 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-dependencies - dependency-name: core-js dependency-version: 3.47.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-dependencies - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: prod-dependencies - dependency-name: marked-emoji dependency-version: 2.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: prod-dependencies - dependency-name: marked-gfm-heading-id dependency-version: 4.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: prod-dependencies - dependency-name: mongoose dependency-version: 8.20.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-dependencies - dependency-name: react-router dependency-version: 7.9.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: prod-dependencies ... Signed-off-by: dependabot[bot] --- package-lock.json | 68 +++++++++++++++++++++++------------------------ package.json | 14 +++++----- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0d6845c3..530a8ceb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@babel/core": "^7.28.4", "@babel/plugin-transform-runtime": "^7.28.3", "@babel/preset-env": "^7.28.3", - "@babel/preset-react": "^7.27.1", + "@babel/preset-react": "^7.28.5", "@babel/runtime": "^7.28.4", "@dmsnell/diff-match-patch": "^1.1.0", "@googleapis/drive": "^18.0.0", @@ -22,7 +22,7 @@ "classnames": "^2.5.1", "codemirror": "^5.65.6", "cookie-parser": "^1.4.7", - "core-js": "^3.46.0", + "core-js": "^3.47.0", "cors": "^2.8.5", "create-react-class": "^15.7.0", "dedent-tabs": "^0.10.3", @@ -34,29 +34,29 @@ "fs-extra": "11.3.2", "hash-wasm": "^4.12.0", "idb-keyval": "^6.2.2", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "jwt-simple": "^0.5.6", "less": "^3.13.1", "lodash": "^4.17.21", "marked": "15.0.12", "marked-alignment-paragraphs": "^1.0.0", "marked-definition-lists": "^1.0.1", - "marked-emoji": "^2.0.1", + "marked-emoji": "^2.0.2", "marked-extended-tables": "^2.0.1", - "marked-gfm-heading-id": "^4.1.2", + "marked-gfm-heading-id": "^4.1.3", "marked-nonbreaking-spaces": "^1.0.1", "marked-smartypants-lite": "^1.0.3", "marked-subsuper-text": "^1.0.4", "marked-variables": "^1.0.4", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.19.1", + "mongoose": "^8.20.0", "nanoid": "5.1.6", "nconf": "^0.13.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-frame-component": "^4.1.3", - "react-router": "^7.9.4", + "react-router": "^7.9.6", "romans": "^3.1.0", "sanitize-filename": "1.6.3", "superagent": "^10.2.1", @@ -1427,9 +1427,9 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", - "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1795,14 +1795,14 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", - "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", "@babel/plugin-transform-react-jsx": "^7.27.1", "@babel/plugin-transform-react-jsx-development": "^7.27.1", "@babel/plugin-transform-react-pure-annotations": "^7.27.1" @@ -5343,9 +5343,9 @@ } }, "node_modules/core-js": { - "version": "3.46.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz", - "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -9466,9 +9466,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -10026,12 +10026,12 @@ } }, "node_modules/marked-emoji": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked-emoji/-/marked-emoji-2.0.1.tgz", - "integrity": "sha512-P+nRr02dD+yPOFhtGdaVBzp0qzwlksI2f5GumIdHW/3UadzJ5sVi78CZikiSLr9PmdtUOZodZUBNIO6k38pDMQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/marked-emoji/-/marked-emoji-2.0.2.tgz", + "integrity": "sha512-EFnLQn4wTyf+6pXfptkm83Z2mt3VbdEYedHBAsDpwUas5n5satsj42RGqAijBpmetgGerI1EzUuzf7NIccINUQ==", "license": "MIT", "peerDependencies": { - "marked": ">=4 <17" + "marked": ">=4 <18" } }, "node_modules/marked-extended-tables": { @@ -10044,15 +10044,15 @@ } }, "node_modules/marked-gfm-heading-id": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/marked-gfm-heading-id/-/marked-gfm-heading-id-4.1.2.tgz", - "integrity": "sha512-EQ1WiEGHJh0C8viU+hbXbhHyWTDgEia2i96fiSemm2wdYER6YBw/9QI5TB6YFTqFfmMOxBFXPcPJtlgD0fVV2w==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/marked-gfm-heading-id/-/marked-gfm-heading-id-4.1.3.tgz", + "integrity": "sha512-aR0i63LmFbuxU/gAgrgz1Ir+8HK6zAIFXMlckeKHpV+qKbYaOP95L4Ux5Gi+sKmCZU5qnN2rdKpvpb7PnUBIWg==", "license": "MIT", "dependencies": { "github-slugger": "^2.0.0" }, "peerDependencies": { - "marked": ">=13 <17" + "marked": ">=13 <18" } }, "node_modules/marked-nonbreaking-spaces": { @@ -10436,9 +10436,9 @@ } }, "node_modules/mongoose": { - "version": "8.19.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.19.2.tgz", - "integrity": "sha512-ww2T4dBV+suCbOfG5YPwj9pLCfUVyj8FEA1D3Ux1HHqutpLxGyOYEPU06iPRBW4cKr3PJfOSYsIpHWPTkz5zig==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.20.0.tgz", + "integrity": "sha512-SxqNb8yx+VOjIOx2l7HqkGvYuLC/T85d+jPvqGDdUbKJFz/5PVSsVxQzypQsX7chenYvq5bd8jIr4LtunedE7g==", "license": "MIT", "dependencies": { "bson": "^6.10.4", @@ -12065,9 +12065,9 @@ "license": "MIT" }, "node_modules/react-router": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.5.tgz", - "integrity": "sha512-JmxqrnBZ6E9hWmf02jzNn9Jm3UqyeimyiwzD69NjxGySG6lIz/1LVPsoTCwN7NBX2XjCEa1LIX5EMz1j2b6u6A==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.6.tgz", + "integrity": "sha512-Y1tUp8clYRXpfPITyuifmSoE2vncSME18uVLgaqyxh9H35JWpIfzHo+9y3Fzh5odk/jxPW29IgLgzcdwxGqyNA==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", diff --git a/package.json b/package.json index b4b86693d..048a4dbfa 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@babel/core": "^7.28.4", "@babel/plugin-transform-runtime": "^7.28.3", "@babel/preset-env": "^7.28.3", - "@babel/preset-react": "^7.27.1", + "@babel/preset-react": "^7.28.5", "@babel/runtime": "^7.28.4", "@dmsnell/diff-match-patch": "^1.1.0", "@googleapis/drive": "^18.0.0", @@ -97,7 +97,7 @@ "classnames": "^2.5.1", "codemirror": "^5.65.6", "cookie-parser": "^1.4.7", - "core-js": "^3.46.0", + "core-js": "^3.47.0", "cors": "^2.8.5", "create-react-class": "^15.7.0", "dedent-tabs": "^0.10.3", @@ -109,29 +109,29 @@ "fs-extra": "11.3.2", "hash-wasm": "^4.12.0", "idb-keyval": "^6.2.2", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "jwt-simple": "^0.5.6", "less": "^3.13.1", "lodash": "^4.17.21", "marked": "15.0.12", "marked-alignment-paragraphs": "^1.0.0", "marked-definition-lists": "^1.0.1", - "marked-emoji": "^2.0.1", + "marked-emoji": "^2.0.2", "marked-extended-tables": "^2.0.1", - "marked-gfm-heading-id": "^4.1.2", + "marked-gfm-heading-id": "^4.1.3", "marked-nonbreaking-spaces": "^1.0.1", "marked-smartypants-lite": "^1.0.3", "marked-subsuper-text": "^1.0.4", "marked-variables": "^1.0.4", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.19.1", + "mongoose": "^8.20.0", "nanoid": "5.1.6", "nconf": "^0.13.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-frame-component": "^4.1.3", - "react-router": "^7.9.4", + "react-router": "^7.9.6", "romans": "^3.1.0", "sanitize-filename": "1.6.3", "superagent": "^10.2.1", From f991235694b89968ec169e3977a8d6f3a22eb368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Wed, 19 Nov 2025 23:36:43 +0100 Subject: [PATCH 11/73] fix .resetCounter --- 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 858ecebfb..4c65304b3 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -492,7 +492,7 @@ body { counter-reset : page-numbers 0; } .pageNumber { left : 30px; } } - .resetCounting { counter-set : page-numbers 1; } + &:has(.resetCounting) { counter-set : page-numbers 1; } &:not(:has(.skipCounting)) { counter-increment : page-numbers; } From 31c034c02918aafb36608296708343dc0bcb4d92 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Wed, 19 Nov 2025 23:53:39 -0500 Subject: [PATCH 12/73] Rework Marked custom HTML renderer to skip preprocess step Marked Variables are getting cleared when the custom HTML renderer runs, because Marked.parse re-runs the whole pipeline, including the preprocessor. Preprocess should only be run once globally during the pipeline, or the original results get overwritten (Marked Variables clears its global array of variables each time it is run) --- shared/markdown.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/shared/markdown.js b/shared/markdown.js index 412be27a7..eecc945f9 100644 --- a/shared/markdown.js +++ b/shared/markdown.js @@ -31,7 +31,12 @@ renderer.html = function (token) { const openTag = html.substring(0, html.indexOf('>')+1); html = html.substring(html.indexOf('>')+1); html = html.substring(0, html.lastIndexOf('')); - return `${openTag} ${Marked.parse(html)} `; + + // Repeat the markdown processing for content inside the div, minus the preprocessing and postprocessing hooks which should only run once globally + const opts = Marked.defaults; + const tokens = Marked.lexer(html, opts); + Marked.walkTokens(tokens, opts.walkTokens); + return `${openTag} ${Marked.parser(tokens, opts)} `; } return html; }; From fd8ffe8747222646e6cca3c74e529a76383f09d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Nov 2025 03:02:38 +0000 Subject: [PATCH 13/73] Bump @googleapis/drive from 18.0.0 to 19.2.0 Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 18.0.0 to 19.2.0. - [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases) - [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/.release-please-manifest.json) - [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/run-v18.0.0...drive-v19.2.0) --- updated-dependencies: - dependency-name: "@googleapis/drive" dependency-version: 19.2.0 dependency-type: direct:production update-type: version-update:semver-major ... 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 527a4f94c..1f4081252 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@babel/preset-react": "^7.28.5", "@babel/runtime": "^7.28.4", "@dmsnell/diff-match-patch": "^1.1.0", - "@googleapis/drive": "^18.0.0", + "@googleapis/drive": "^19.2.0", "@sanity/diff-match-patch": "^3.2.0", "body-parser": "^2.2.0", "classnames": "^2.5.1", @@ -2295,9 +2295,9 @@ } }, "node_modules/@googleapis/drive": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@googleapis/drive/-/drive-18.0.0.tgz", - "integrity": "sha512-nk4TirsHttwZSOjBEBjltCPDKUqwFso59G3WitNE+EGNVSVseSEq981f8Dmjq2ah0/fk3i206wuCU4PUCwcoTQ==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/@googleapis/drive/-/drive-19.2.0.tgz", + "integrity": "sha512-XzhQ+CNwW54umLecZLzQ5Q2RborJD1+u2YzJIT/BOpne+VJfsCyxWVG0nxYQmcGdiFXJPeW5+V3sdP/A/nt3eA==", "license": "Apache-2.0", "dependencies": { "googleapis-common": "^8.0.0" diff --git a/package.json b/package.json index 38b24a7a4..c058b1af9 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "@babel/preset-react": "^7.28.5", "@babel/runtime": "^7.28.4", "@dmsnell/diff-match-patch": "^1.1.0", - "@googleapis/drive": "^18.0.0", + "@googleapis/drive": "^19.2.0", "@sanity/diff-match-patch": "^3.2.0", "body-parser": "^2.2.0", "classnames": "^2.5.1", From d04434fdd8b3b7d8c2e8d883b0fec562ff589c9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:04:00 +0000 Subject: [PATCH 14/73] Bump vitreum from `9d55fd6` to `929c351` Bumps [vitreum](https://github.com/calculuschild/vitreum) from `9d55fd6` to `929c351`. - [Commits](https://github.com/calculuschild/vitreum/compare/9d55fd6fb7e85e7070de798c4f9d5b983c1b7dba...929c351881c4229550374421c7e2890a94f4dca7) --- updated-dependencies: - dependency-name: vitreum dependency-version: 929c351881c4229550374421c7e2890a94f4dca7 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package-lock.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 1f4081252..a23149cfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14742,7 +14742,8 @@ }, "node_modules/vitreum": { "version": "6.0.4", - "resolved": "git+https://git@github.com/calculuschild/vitreum.git#9d55fd6fb7e85e7070de798c4f9d5b983c1b7dba", + "resolved": "git+https://git@github.com/calculuschild/vitreum.git#929c351881c4229550374421c7e2890a94f4dca7", + "integrity": "sha512-dclfZIgvZU4pOeju1U7CjfGcAMNY+HwhYxF5O1cB6j9EtBrUXQh5+8XlYvNrw2XIcjWIxWcWaCpAQgJxKssfbQ==", "hasInstallScript": true, "license": "MIT", "dependencies": { From d9f4f0a4ecddafe01212343e1d039720727bb870 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 1 Dec 2025 18:59:13 +1300 Subject: [PATCH 15/73] Move image left by 1px --- themes/assets/backCover.png | Bin 95820 -> 146144 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/themes/assets/backCover.png b/themes/assets/backCover.png index 5c6a14d2560cd00c08e24d5ba7a0f523f089bd95..45d4f9d629debc197805797eac9a43011ff3ae5d 100644 GIT binary patch literal 146144 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 z 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 literal 95820 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 l^VgT3j2ihK_QRNJ*&5ROyN0> Date: Sat, 27 Dec 2025 20:42:50 -0500 Subject: [PATCH 16/73] Tweak number font in D10 dice to match other dice - Tweak the font in the d10 dice to match the other dice exactly - Move the d10 icons over to the core diceFont.woff2 file - Add a set of d100 icons representing an actual d100 ball die --- themes/fonts/iconFonts/diceFont.woff2 | Bin 3948 -> 9392 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/themes/fonts/iconFonts/diceFont.woff2 b/themes/fonts/iconFonts/diceFont.woff2 index 342bf7d95d5734c1e1550c568797e7fbcad61707..02ac8ca4f030647576903e4469dbd78b873ad368 100644 GIT binary patch literal 9392 zcmV;hBv0FSPew8T0RR9103@&g3;+NC1FRST03=)h0RR9100000000000000000000 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 literal 3948 zcmV-y50mhBPew8T0RR9101s>c4FCWD08`)q01pxX0RR9100000000000000000000 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 Date: Sat, 27 Dec 2025 20:43:20 -0500 Subject: [PATCH 17/73] Remove unnecessary separate diceFontD100.woff2 All icons now reside in diceFont.woff2 --- themes/fonts/iconFonts/diceFontD100.woff2 | Bin 81608 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 themes/fonts/iconFonts/diceFontD100.woff2 diff --git a/themes/fonts/iconFonts/diceFontD100.woff2 b/themes/fonts/iconFonts/diceFontD100.woff2 deleted file mode 100644 index 6f7404cb8d9d39252636fd73d468fed9d40792b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81608 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 From 12a45c39ed8bd51a941c800079c5c48262fdf93b Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sat, 27 Dec 2025 20:44:18 -0500 Subject: [PATCH 18/73] Update .less and .js font files to include the new d100 icons collapses the d10 icons definitions down into one-liners (~400 lines shorter) --- themes/fonts/iconFonts/diceFont.js | 104 +++- themes/fonts/iconFonts/diceFont.less | 789 ++++++++------------------- 2 files changed, 318 insertions(+), 575 deletions(-) diff --git a/themes/fonts/iconFonts/diceFont.js b/themes/fonts/iconFonts/diceFont.js index 65b56a62a..3a65e3671 100644 --- a/themes/fonts/iconFonts/diceFont.js +++ b/themes/fonts/iconFonts/diceFont.js @@ -192,7 +192,109 @@ const diceFont = { 'df_d10_97' : 'df d10-97', 'df_d10_98' : 'df d10-98', 'df_d10_99' : 'df d10-99', - 'df_d10_100' : 'df d10-100' + 'df_d10_100' : 'df d10-100', + 'df_d100_00' : 'df d100-00', + 'df_d100_01' : 'df d100-01', + 'df_d100_02' : 'df d100-02', + 'df_d100_03' : 'df d100-03', + 'df_d100_04' : 'df d100-04', + 'df_d100_05' : 'df d100-05', + 'df_d100_06' : 'df d100-06', + 'df_d100_07' : 'df d100-07', + 'df_d100_08' : 'df d100-08', + 'df_d100_09' : 'df d100-09', + 'df_d100_10' : 'df d100-10', + 'df_d100_11' : 'df d100-11', + 'df_d100_12' : 'df d100-12', + 'df_d100_13' : 'df d100-13', + 'df_d100_14' : 'df d100-14', + 'df_d100_15' : 'df d100-15', + 'df_d100_16' : 'df d100-16', + 'df_d100_17' : 'df d100-17', + 'df_d100_18' : 'df d100-18', + 'df_d100_19' : 'df d100-19', + 'df_d100_20' : 'df d100-20', + 'df_d100_21' : 'df d100-21', + 'df_d100_22' : 'df d100-22', + 'df_d100_23' : 'df d100-23', + 'df_d100_24' : 'df d100-24', + 'df_d100_25' : 'df d100-25', + 'df_d100_26' : 'df d100-26', + 'df_d100_27' : 'df d100-27', + 'df_d100_28' : 'df d100-28', + 'df_d100_29' : 'df d100-29', + 'df_d100_30' : 'df d100-30', + 'df_d100_31' : 'df d100-31', + 'df_d100_32' : 'df d100-32', + 'df_d100_33' : 'df d100-33', + 'df_d100_34' : 'df d100-34', + 'df_d100_35' : 'df d100-35', + 'df_d100_36' : 'df d100-36', + 'df_d100_37' : 'df d100-37', + 'df_d100_38' : 'df d100-38', + 'df_d100_39' : 'df d100-39', + 'df_d100_40' : 'df d100-40', + 'df_d100_41' : 'df d100-41', + 'df_d100_42' : 'df d100-42', + 'df_d100_43' : 'df d100-43', + 'df_d100_44' : 'df d100-44', + 'df_d100_45' : 'df d100-45', + 'df_d100_46' : 'df d100-46', + 'df_d100_47' : 'df d100-47', + 'df_d100_48' : 'df d100-48', + 'df_d100_49' : 'df d100-49', + 'df_d100_50' : 'df d100-50', + 'df_d100_51' : 'df d100-51', + 'df_d100_52' : 'df d100-52', + 'df_d100_53' : 'df d100-53', + 'df_d100_54' : 'df d100-54', + 'df_d100_55' : 'df d100-55', + 'df_d100_56' : 'df d100-56', + 'df_d100_57' : 'df d100-57', + 'df_d100_58' : 'df d100-58', + 'df_d100_59' : 'df d100-59', + 'df_d100_60' : 'df d100-60', + 'df_d100_61' : 'df d100-61', + 'df_d100_62' : 'df d100-62', + 'df_d100_63' : 'df d100-63', + 'df_d100_64' : 'df d100-64', + 'df_d100_65' : 'df d100-65', + 'df_d100_66' : 'df d100-66', + 'df_d100_67' : 'df d100-67', + 'df_d100_68' : 'df d100-68', + 'df_d100_69' : 'df d100-69', + 'df_d100_70' : 'df d100-70', + 'df_d100_71' : 'df d100-71', + 'df_d100_72' : 'df d100-72', + 'df_d100_73' : 'df d100-73', + 'df_d100_74' : 'df d100-74', + 'df_d100_75' : 'df d100-75', + 'df_d100_76' : 'df d100-76', + 'df_d100_77' : 'df d100-77', + 'df_d100_78' : 'df d100-78', + 'df_d100_79' : 'df d100-79', + 'df_d100_80' : 'df d100-80', + 'df_d100_81' : 'df d100-81', + 'df_d100_82' : 'df d100-82', + 'df_d100_83' : 'df d100-83', + 'df_d100_84' : 'df d100-84', + 'df_d100_85' : 'df d100-85', + 'df_d100_86' : 'df d100-86', + 'df_d100_87' : 'df d100-87', + 'df_d100_88' : 'df d100-88', + 'df_d100_89' : 'df d100-89', + 'df_d100_90' : 'df d100-90', + 'df_d100_91' : 'df d100-91', + 'df_d100_92' : 'df d100-92', + 'df_d100_93' : 'df d100-93', + 'df_d100_94' : 'df d100-94', + 'df_d100_95' : 'df d100-95', + 'df_d100_96' : 'df d100-96', + 'df_d100_97' : 'df d100-97', + 'df_d100_98' : 'df d100-98', + 'df_d100_99' : 'df d100-99', + 'df_d100_100' : 'df d100-100', + 'df_d100' : 'df d100' }; export default diceFont; \ No newline at end of file diff --git a/themes/fonts/iconFonts/diceFont.less b/themes/fonts/iconFonts/diceFont.less index a49be2da3..989d201ff 100644 --- a/themes/fonts/iconFonts/diceFont.less +++ b/themes/fonts/iconFonts/diceFont.less @@ -6,14 +6,6 @@ src : url('../../../fonts/iconFonts/diceFont.woff2'); } -@font-face { - font-family : 'DiceFontD100'; - src : url('../../../fonts/iconFonts/diceFontD100.woff2') format('woff2'); - font-weight : normal; - font-style : normal; - font-display : block; - } - .df { display : inline; font-family : 'DiceFont'; @@ -33,8 +25,19 @@ &.F-minus::before { content : '\f191'; } &.F-plus::before { content : '\f192'; } &.F-zero::before { content : '\f193'; } - &.d10::before { content : '\f194'; } - &.d12::before { content : '\f195'; } + &.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'; } @@ -92,6 +95,208 @@ &.d8-6::before { content : '\f13c'; } &.d8-7::before { content : '\f13d'; } &.d8-8::before { content : '\f13e'; } + &.d10-00::before { content : '\f19C'; } + &.d10-01::before { content : '\f19D'; } + &.d10-02::before { content : '\f19E'; } + &.d10-03::before { content : '\f19F'; } + &.d10-04::before { content : '\f1A0'; } + &.d10-05::before { content : '\f1A1'; } + &.d10-06::before { content : '\f1A2'; } + &.d10-07::before { content : '\f1A3'; } + &.d10-08::before { content : '\f1A4'; } + &.d10-09::before { content : '\f1A5'; } + &.d10-11::before { content : '\f1A7'; } + &.d10-12::before { content : '\f1A8'; } + &.d10-13::before { content : '\f1A9'; } + &.d10-14::before { content : '\f1AA'; } + &.d10-15::before { content : '\f1AB'; } + &.d10-16::before { content : '\f1AC'; } + &.d10-17::before { content : '\f1AD'; } + &.d10-18::before { content : '\f1AE'; } + &.d10-19::before { content : '\f1AF'; } + &.d10-20::before { content : '\f1B0'; } + &.d10-21::before { content : '\f1B1'; } + &.d10-22::before { content : '\f1B2'; } + &.d10-23::before { content : '\f1B3'; } + &.d10-24::before { content : '\f1B4'; } + &.d10-25::before { content : '\f1B5'; } + &.d10-26::before { content : '\f1B6'; } + &.d10-27::before { content : '\f1B7'; } + &.d10-28::before { content : '\f1B8'; } + &.d10-29::before { content : '\f1B9'; } + &.d10-30::before { content : '\f1BA'; } + &.d10-31::before { content : '\f1BB'; } + &.d10-32::before { content : '\f1BC'; } + &.d10-33::before { content : '\f1BD'; } + &.d10-34::before { content : '\f1BE'; } + &.d10-35::before { content : '\f1BF'; } + &.d10-36::before { content : '\f1C0'; } + &.d10-37::before { content : '\f1C1'; } + &.d10-38::before { content : '\f1C2'; } + &.d10-39::before { content : '\f1C3'; } + &.d10-40::before { content : '\f1C4'; } + &.d10-41::before { content : '\f1C5'; } + &.d10-42::before { content : '\f1C6'; } + &.d10-43::before { content : '\f1C7'; } + &.d10-44::before { content : '\f1C8'; } + &.d10-45::before { content : '\f1C9'; } + &.d10-46::before { content : '\f1CA'; } + &.d10-47::before { content : '\f1CB'; } + &.d10-48::before { content : '\f1CC'; } + &.d10-49::before { content : '\f1CD'; } + &.d10-50::before { content : '\f1CE'; } + &.d10-51::before { content : '\f1CF'; } + &.d10-52::before { content : '\f1D0'; } + &.d10-53::before { content : '\f1D1'; } + &.d10-54::before { content : '\f1D2'; } + &.d10-55::before { content : '\f1D3'; } + &.d10-56::before { content : '\f1D4'; } + &.d10-57::before { content : '\f1D5'; } + &.d10-58::before { content : '\f1D6'; } + &.d10-59::before { content : '\f1D7'; } + &.d10-60::before { content : '\f1D8'; } + &.d10-61::before { content : '\f1D9'; } + &.d10-62::before { content : '\f1DA'; } + &.d10-63::before { content : '\f1DB'; } + &.d10-64::before { content : '\f1DC'; } + &.d10-65::before { content : '\f1DD'; } + &.d10-66::before { content : '\f1DE'; } + &.d10-67::before { content : '\f1DF'; } + &.d10-68::before { content : '\f1E0'; } + &.d10-69::before { content : '\f1E1'; } + &.d10-70::before { content : '\f1E2'; } + &.d10-71::before { content : '\f1E3'; } + &.d10-72::before { content : '\f1E4'; } + &.d10-73::before { content : '\f1E5'; } + &.d10-74::before { content : '\f1E6'; } + &.d10-75::before { content : '\f1E7'; } + &.d10-76::before { content : '\f1E8'; } + &.d10-77::before { content : '\f1E9'; } + &.d10-78::before { content : '\f1EA'; } + &.d10-79::before { content : '\f1EB'; } + &.d10-80::before { content : '\f1EC'; } + &.d10-81::before { content : '\f1ED'; } + &.d10-82::before { content : '\f1EE'; } + &.d10-83::before { content : '\f1EF'; } + &.d10-84::before { content : '\f1F0'; } + &.d10-85::before { content : '\f1F1'; } + &.d10-86::before { content : '\f1F2'; } + &.d10-87::before { content : '\f1F3'; } + &.d10-88::before { content : '\f1F4'; } + &.d10-89::before { content : '\f1F5'; } + &.d10-90::before { content : '\f1F6'; } + &.d10-91::before { content : '\f1F7'; } + &.d10-92::before { content : '\f1F8'; } + &.d10-93::before { content : '\f1F9'; } + &.d10-94::before { content : '\f1FA'; } + &.d10-95::before { content : '\f1FB'; } + &.d10-96::before { content : '\f1FC'; } + &.d10-97::before { content : '\f1FD'; } + &.d10-98::before { content : '\f1FE'; } + &.d10-99::before { content : '\f1FF'; } + &.d10-100::before { content : '\f200'; } + &.d100-00::before { content : '\f201'; } + &.d100-01::before { content : '\f202'; } + &.d100-02::before { content : '\f203'; } + &.d100-03::before { content : '\f204'; } + &.d100-04::before { content : '\f205'; } + &.d100-05::before { content : '\f206'; } + &.d100-06::before { content : '\f207'; } + &.d100-07::before { content : '\f208'; } + &.d100-08::before { content : '\f209'; } + &.d100-09::before { content : '\f20A'; } + &.d100-10::before { content : '\f20B'; } + &.d100-11::before { content : '\f20C'; } + &.d100-12::before { content : '\f20D'; } + &.d100-13::before { content : '\f20E'; } + &.d100-14::before { content : '\f20F'; } + &.d100-15::before { content : '\f210'; } + &.d100-16::before { content : '\f211'; } + &.d100-17::before { content : '\f212'; } + &.d100-18::before { content : '\f213'; } + &.d100-19::before { content : '\f214'; } + &.d100-20::before { content : '\f215'; } + &.d100-21::before { content : '\f216'; } + &.d100-22::before { content : '\f217'; } + &.d100-23::before { content : '\f218'; } + &.d100-24::before { content : '\f219'; } + &.d100-25::before { content : '\f21A'; } + &.d100-26::before { content : '\f21B'; } + &.d100-27::before { content : '\f21C'; } + &.d100-28::before { content : '\f21D'; } + &.d100-29::before { content : '\f21E'; } + &.d100-30::before { content : '\f21F'; } + &.d100-31::before { content : '\f220'; } + &.d100-32::before { content : '\f221'; } + &.d100-33::before { content : '\f222'; } + &.d100-34::before { content : '\f223'; } + &.d100-35::before { content : '\f224'; } + &.d100-36::before { content : '\f225'; } + &.d100-37::before { content : '\f226'; } + &.d100-38::before { content : '\f227'; } + &.d100-39::before { content : '\f228'; } + &.d100-40::before { content : '\f229'; } + &.d100-41::before { content : '\f22A'; } + &.d100-42::before { content : '\f22B'; } + &.d100-43::before { content : '\f22C'; } + &.d100-44::before { content : '\f22D'; } + &.d100-45::before { content : '\f22E'; } + &.d100-46::before { content : '\f22F'; } + &.d100-47::before { content : '\f230'; } + &.d100-48::before { content : '\f231'; } + &.d100-49::before { content : '\f232'; } + &.d100-50::before { content : '\f233'; } + &.d100-51::before { content : '\f234'; } + &.d100-52::before { content : '\f235'; } + &.d100-53::before { content : '\f236'; } + &.d100-54::before { content : '\f237'; } + &.d100-55::before { content : '\f238'; } + &.d100-56::before { content : '\f239'; } + &.d100-57::before { content : '\f23A'; } + &.d100-58::before { content : '\f23B'; } + &.d100-59::before { content : '\f23C'; } + &.d100-60::before { content : '\f23D'; } + &.d100-61::before { content : '\f23E'; } + &.d100-62::before { content : '\f23F'; } + &.d100-63::before { content : '\f240'; } + &.d100-64::before { content : '\f241'; } + &.d100-65::before { content : '\f242'; } + &.d100-66::before { content : '\f243'; } + &.d100-67::before { content : '\f244'; } + &.d100-68::before { content : '\f245'; } + &.d100-69::before { content : '\f246'; } + &.d100-70::before { content : '\f247'; } + &.d100-71::before { content : '\f248'; } + &.d100-72::before { content : '\f249'; } + &.d100-73::before { content : '\f24A'; } + &.d100-74::before { content : '\f24B'; } + &.d100-75::before { content : '\f24C'; } + &.d100-76::before { content : '\f24D'; } + &.d100-77::before { content : '\f24E'; } + &.d100-78::before { content : '\f24F'; } + &.d100-79::before { content : '\f250'; } + &.d100-80::before { content : '\f251'; } + &.d100-81::before { content : '\f252'; } + &.d100-82::before { content : '\f253'; } + &.d100-83::before { content : '\f254'; } + &.d100-84::before { content : '\f255'; } + &.d100-85::before { content : '\f256'; } + &.d100-86::before { content : '\f257'; } + &.d100-87::before { content : '\f258'; } + &.d100-88::before { content : '\f259'; } + &.d100-89::before { content : '\f25A'; } + &.d100-90::before { content : '\f25B'; } + &.d100-91::before { content : '\f25C'; } + &.d100-92::before { content : '\f25D'; } + &.d100-93::before { content : '\f25E'; } + &.d100-94::before { content : '\f25F'; } + &.d100-95::before { content : '\f260'; } + &.d100-96::before { content : '\f261'; } + &.d100-97::before { content : '\f262'; } + &.d100-98::before { content : '\f263'; } + &.d100-99::before { content : '\f264'; } + &.d100-100::before { content : '\f265'; } + &.d100::before { content : '\f266'; } &.dot-d6::before { content : '\f19b'; } &.dot-d6-1::before { content : '\f13f'; } &.dot-d6-2::before { content : '\f140'; } @@ -111,568 +316,4 @@ &.solid-small-dot-d6-4::before { content : '\f18c'; } &.solid-small-dot-d6-5::before { content : '\f18d'; } &.solid-small-dot-d6-6::before { content : '\f18e'; } - - // Replacement d10 - - &.d10-0::before { - font-family : 'DiceFontD100'; - content : '\e900'; - } - - &.d10-1::before { - font-family : 'DiceFontD100'; - content : '\e901'; - } - - &.d10-2::before { - font-family : 'DiceFontD100'; - content : '\e902'; - } - - &.d10-3::before { - font-family : 'DiceFontD100'; - content : '\e903'; - } - - &.d10-4::before { - font-family : 'DiceFontD100'; - content : '\e904'; - } - - &.d10-5::before { - font-family : 'DiceFontD100'; - content : '\e905'; - } - - &.d10-6::before { - font-family : 'DiceFontD100'; - content : '\e906'; - } - - &.d10-7::before { - font-family : 'DiceFontD100'; - content : '\e907'; - } - - &.d10-8::before { - font-family : 'DiceFontD100'; - content : '\e908'; - } - - &.d10-9::before { - font-family : 'DiceFontD100'; - content : '\e909'; - } - - &.d10-10::before { - font-family : 'DiceFontD100'; - content : '\e90a'; - } - - // d100 - - &.d10-00::before { - font-family : 'DiceFontD100'; - content : '\e90b'; - } - - &.d10-01::before { - font-family : 'DiceFontD100'; - content : '\e90c'; - } - - &.d10-02::before { - font-family : 'DiceFontD100'; - content : '\e90d'; - } - - &.d10-03::before { - font-family : 'DiceFontD100'; - content : '\e90e'; - } - - &.d10-04::before { - font-family : 'DiceFontD100'; - content : '\e90f'; - } - - &.d10-05::before { - font-family : 'DiceFontD100'; - content : '\e910'; - } - - &.d10-06::before { - font-family : 'DiceFontD100'; - content : '\e911'; - } - - &.d10-07::before { - font-family : 'DiceFontD100'; - content : '\e912'; - } - - &.d10-08::before { - font-family : 'DiceFontD100'; - content : '\e913'; - } - - &.d10-09::before { - font-family : 'DiceFontD100'; - content : '\e914'; - } - - &.d10-10::before { - font-family : 'DiceFontD100'; - content : '\e915'; - } - - &.d10-11::before { - font-family : 'DiceFontD100'; - content : '\e916'; - } - - &.d10-12::before { - font-family : 'DiceFontD100'; - content : '\e917'; - } - - &.d10-13::before { - font-family : 'DiceFontD100'; - content : '\e918'; - } - - &.d10-14::before { - font-family : 'DiceFontD100'; - content : '\e919'; - } - - &.d10-15::before { - font-family : 'DiceFontD100'; - content : '\e91a'; - } - - &.d10-16::before { - font-family : 'DiceFontD100'; - content : '\e91b'; - } - - &.d10-17::before { - font-family : 'DiceFontD100'; - content : '\e91c'; - } - - &.d10-18::before { - font-family : 'DiceFontD100'; - content : '\e91d'; - } - - &.d10-19::before { - font-family : 'DiceFontD100'; - content : '\e91e'; - } - - &.d10-20::before { - font-family : 'DiceFontD100'; - content : '\e91f'; - } - - &.d10-21::before { - font-family : 'DiceFontD100'; - content : '\e920'; - } - - &.d10-22::before { - font-family : 'DiceFontD100'; - content : '\e921'; - } - - &.d10-23::before { - font-family : 'DiceFontD100'; - content : '\e922'; - } - - &.d10-24::before { - font-family : 'DiceFontD100'; - content : '\e923'; - } - - &.d10-25::before { - font-family : 'DiceFontD100'; - content : '\e924'; - } - - &.d10-26::before { - font-family : 'DiceFontD100'; - content : '\e925'; - } - - &.d10-27::before { - font-family : 'DiceFontD100'; - content : '\e926'; - } - - &.d10-28::before { - font-family : 'DiceFontD100'; - content : '\e927'; - } - - &.d10-29::before { - font-family : 'DiceFontD100'; - content : '\e928'; - } - - &.d10-30::before { - font-family : 'DiceFontD100'; - content : '\e929'; - } - - &.d10-31::before { - font-family : 'DiceFontD100'; - content : '\e92a'; - } - - &.d10-32::before { - font-family : 'DiceFontD100'; - content : '\e92b'; - } - - &.d10-33::before { - font-family : 'DiceFontD100'; - content : '\e92c'; - } - - &.d10-34::before { - font-family : 'DiceFontD100'; - content : '\e92d'; - } - - &.d10-35::before { - font-family : 'DiceFontD100'; - content : '\e92e'; - } - - &.d10-36::before { - font-family : 'DiceFontD100'; - content : '\e92f'; - } - - &.d10-37::before { - font-family : 'DiceFontD100'; - content : '\e930'; - } - - &.d10-38::before { - font-family : 'DiceFontD100'; - content : '\e931'; - } - - &.d10-39::before { - font-family : 'DiceFontD100'; - content : '\e932'; - } - - &.d10-40::before { - font-family : 'DiceFontD100'; - content : '\e933'; - } - - &.d10-41::before { - font-family : 'DiceFontD100'; - content : '\e934'; - } - - &.d10-42::before { - font-family : 'DiceFontD100'; - content : '\e935'; - } - - &.d10-43::before { - font-family : 'DiceFontD100'; - content : '\e936'; - } - - &.d10-44::before { - font-family : 'DiceFontD100'; - content : '\e937'; - } - - &.d10-45::before { - font-family : 'DiceFontD100'; - content : '\e938'; - } - - &.d10-46::before { - font-family : 'DiceFontD100'; - content : '\e939'; - } - - &.d10-47::before { - font-family : 'DiceFontD100'; - content : '\e93a'; - } - - &.d10-48::before { - font-family : 'DiceFontD100'; - content : '\e93b'; - } - - &.d10-49::before { - font-family : 'DiceFontD100'; - content : '\e93c'; - } - - &.d10-50::before { - font-family : 'DiceFontD100'; - content : '\e93d'; - } - - &.d10-51::before { - font-family : 'DiceFontD100'; - content : '\e93e'; - } - - &.d10-52::before { - font-family : 'DiceFontD100'; - content : '\e93f'; - } - - &.d10-53::before { - font-family : 'DiceFontD100'; - content : '\e940'; - } - - &.d10-54::before { - font-family : 'DiceFontD100'; - content : '\e941'; - } - - &.d10-55::before { - font-family : 'DiceFontD100'; - content : '\e942'; - } - - &.d10-56::before { - font-family : 'DiceFontD100'; - content : '\e943'; - } - - &.d10-57::before { - font-family : 'DiceFontD100'; - content : '\e944'; - } - - &.d10-58::before { - font-family : 'DiceFontD100'; - content : '\e945'; - } - - &.d10-59::before { - font-family : 'DiceFontD100'; - content : '\e946'; - } - - &.d10-60::before { - font-family : 'DiceFontD100'; - content : '\e947'; - } - - &.d10-61::before { - font-family : 'DiceFontD100'; - content : '\e948'; - } - - &.d10-62::before { - font-family : 'DiceFontD100'; - content : '\e949'; - } - - &.d10-63::before { - font-family : 'DiceFontD100'; - content : '\e94a'; - } - - &.d10-64::before { - font-family : 'DiceFontD100'; - content : '\e94b'; - } - - &.d10-65::before { - font-family : 'DiceFontD100'; - content : '\e94c'; - } - - &.d10-66::before { - font-family : 'DiceFontD100'; - content : '\e94d'; - } - - &.d10-67::before { - font-family : 'DiceFontD100'; - content : '\e94e'; - } - - &.d10-68::before { - font-family : 'DiceFontD100'; - content : '\e94f'; - } - - &.d10-69::before { - font-family : 'DiceFontD100'; - content : '\e950'; - } - - &.d10-70::before { - font-family : 'DiceFontD100'; - content : '\e951'; - } - - &.d10-71::before { - font-family : 'DiceFontD100'; - content : '\e952'; - } - - &.d10-72::before { - font-family : 'DiceFontD100'; - content : '\e953'; - } - - &.d10-73::before { - font-family : 'DiceFontD100'; - content : '\e954'; - } - - &.d10-74::before { - font-family : 'DiceFontD100'; - content : '\e955'; - } - - &.d10-75::before { - font-family : 'DiceFontD100'; - content : '\e956'; - } - - &.d10-76::before { - font-family : 'DiceFontD100'; - content : '\e957'; - } - - &.d10-77::before { - font-family : 'DiceFontD100'; - content : '\e958'; - } - - &.d10-78::before { - font-family : 'DiceFontD100'; - content : '\e959'; - } - - &.d10-79::before { - font-family : 'DiceFontD100'; - content : '\e95a'; - } - - &.d10-80::before { - font-family : 'DiceFontD100'; - content : '\e95b'; - } - - &.d10-81::before { - font-family : 'DiceFontD100'; - content : '\e95c'; - } - - &.d10-82::before { - font-family : 'DiceFontD100'; - content : '\e95d'; - } - - &.d10-83::before { - font-family : 'DiceFontD100'; - content : '\e95e'; - } - - &.d10-84::before { - font-family : 'DiceFontD100'; - content : '\e95f'; - } - - &.d10-85::before { - font-family : 'DiceFontD100'; - content : '\e960'; - } - - &.d10-86::before { - font-family : 'DiceFontD100'; - content : '\e961'; - } - - &.d10-87::before { - font-family : 'DiceFontD100'; - content : '\e962'; - } - - &.d10-88::before { - font-family : 'DiceFontD100'; - content : '\e963'; - } - - &.d10-89::before { - font-family : 'DiceFontD100'; - content : '\e964'; - } - - &.d10-90::before { - font-family : 'DiceFontD100'; - content : '\e965'; - } - - &.d10-91::before { - font-family : 'DiceFontD100'; - content : '\e966'; - } - - &.d10-92::before { - font-family : 'DiceFontD100'; - content : '\e967'; - } - - &.d10-93::before { - font-family : 'DiceFontD100'; - content : '\e968'; - } - - &.d10-94::before { - font-family : 'DiceFontD100'; - content : '\e969'; - } - - &.d10-95::before { - font-family : 'DiceFontD100'; - content : '\e96a'; - } - - &.d10-96::before { - font-family : 'DiceFontD100'; - content : '\e96b'; - } - - &.d10-97::before { - font-family : 'DiceFontD100'; - content : '\e96c'; - } - - &.d10-98::before { - font-family : 'DiceFontD100'; - content : '\e96d'; - } - - &.d10-99::before { - font-family : 'DiceFontD100'; - content : '\e96e'; - } - - &.d10-100::before { - font-family : 'DiceFontD100'; - content : '\e96f'; - } } \ No newline at end of file From 99d320e6a2a5f510e3a2c542821e8ba406d36d05 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 30 Dec 2025 10:38:58 +1300 Subject: [PATCH 19/73] Mock DB ready state for Admin API tests --- server/admin.api.spec.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server/admin.api.spec.js b/server/admin.api.spec.js index e156c6c8f..cb25dd67d 100644 --- a/server/admin.api.spec.js +++ b/server/admin.api.spec.js @@ -1,4 +1,5 @@ /*eslint max-lines: ["warn", {"max": 1000, "skipBlankLines": true, "skipComments": true}]*/ +import mongoose from 'mongoose'; import supertest from 'supertest'; import HBApp from './app.js'; import { model as NotificationModel } from './notifications.model.js'; @@ -8,8 +9,19 @@ import { model as HomebrewModel } from './homebrew.model.js'; // Mimic https responses to avoid being redirected all the time const app = supertest.agent(HBApp).set('X-Forwarded-Proto', 'https'); +let dbState; + describe('Tests for admin api', ()=>{ + beforeEach(()=>{ + // Mock DB ready (for dbCheck middleware) + dbState = mongoose.connection.readyState; + mongoose.connection.readyState = 1; + }); + afterEach(()=>{ + // Restore DB ready state + mongoose.connection.readyState = dbState; + jest.resetAllMocks(); }); From 56db2a73c24eff8ed42b0a65edd7f376ffe0b0cd Mon Sep 17 00:00:00 2001 From: David Bolack Date: Mon, 29 Dec 2025 16:06:44 -0600 Subject: [PATCH 20/73] Add True20 License and compatibility Logo --- themes/V3/Blank/snippets.js | 15 +++++++++++++++ themes/V3/Blank/snippets/license.gen.js | 4 +++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/themes/V3/Blank/snippets.js b/themes/V3/Blank/snippets.js index f1c62e486..e64fdc73f 100644 --- a/themes/V3/Blank/snippets.js +++ b/themes/V3/Blank/snippets.js @@ -589,6 +589,21 @@ module.exports = [ }, + { + name : 'True 20', + subsnippets : [ + { + name : 'OGL 1.0 Section 15', + gen : LicenseGen.grTrue20Sec15, + }, + { + name : 'True20 Logo', + gen : LicenseGen.grTrue20CompatLogo, + } + + ] + }, + { name : 'Wizards of the Coast', icon : 'fab fa-wizards-of-the-coast', diff --git a/themes/V3/Blank/snippets/license.gen.js b/themes/V3/Blank/snippets/license.gen.js index dfc67880a..237fc7929 100644 --- a/themes/V3/Blank/snippets/license.gen.js +++ b/themes/V3/Blank/snippets/license.gen.js @@ -58,5 +58,7 @@ module.exports = { iconsCompatibility : 'Compatibility with Icons requires Icons Superpowered Roleplaying from Ad Infinitum Adventures. Ad Infinitum Adventures does not guarantee compatibility, and does not endorse this product.', iconsTrademark : 'Icons Superpowered Roleplaying is a trademark of Steve Kenson, published exclusively by Ad Infinitum Adventures. The Icons Superpowered Roleplaying Compatibility Logo is a trademark of Ad Infinitum Adventures and is used under the Icons Superpowered Roleplaying Compatibility License.', icondsSection15 : 'Open Game License v 1.0, Copyright 2000, Wizards of the Coast, Inc.\n::\nFudge System Reference Document, Copyright 2005, Grey Ghost Press, Inc.; Authors Steffan O\’Sullivan and Ann Dupuis, with additional material by Peter Bonney, Deird’Re Brooks, Reimer Behrends, Shawn Garbett, Steven Hammond, Ed Heil, Bernard Hsiung, Sedge Lewis, Gordon McCormick, Kent Matthewson, Peter Mikelsons, Anthony Roberson, Andy Skinner, Stephan Szabo, John Ughrin, Dmitri Zagidulin\n::\nFATE (Fantastic Adventures in Tabletop Entertainment), Copyright 2003 by Evil Hat Productions LLC; Authors Robert Donoghue and Fred Hicks\n::\nSpirit of the Century, Copyright 2006, Evil Hat Productions LLC. Authors Robert Donoghue, Fred Hicks, and Leonard Balsera.\n::\nIcons, Copyright 2010, Ad Infinitum Adventures; Author Steve Kenson.\n', - iconsCompatibilityLogo : '![Icons Compatibility Logo](/assets/license_logos/Ad-Infinitum-Adventures_Icons-Compatibility-License_Logo.png){width:200px}' + iconsCompatibilityLogo : '![Icons Compatibility Logo](/assets/license_logos/Ad-Infinitum-Adventures_Icons-Compatibility-License_Logo.png){width:200px}', + grTrue20Sec15 : 'True20 Adventure Roleplaying, Revised Edition OGL Section 15.\n\n15. COPYRIGHT NOTICE\nOpen Game License v 1.0 Copyright 2000, Wizards of the Coast, Inc.\n\nSystem Reference Document, Copyright 2000, Wizards of the Coast, Inc., Authors Jonathan Tweet, Monte Cook, Skip Williams, based on original material by E. Gary Gygax and Dave Arneson.\n\nModern System Reference Document Copyright 2002-2004, Wizards of the Coast, Inc.; Authors Bill Slavicsek, Jeff Grubb, Rich Redman, Charles Ryan, Eric Cagle, David Noonan, Stan!, Christopher Perkins, Rodney Thompson, and JD Wiker, based on material by Jonathan Tweet, Monte Cook, Skip Williams, Richard Baker, Peter Adkison, Bruce R. Cordell, John Tynes, Andy Collins, and JD Wiker.\n\nAdvanced Player’s Manual, Copyright 2005, Green Ronin Publishing: Author Skip Williams.\n\nAdvanced Player’s Guide, Copyright 2004, White Wolf Publishing, Inc.\n\nAlgernon Files, Copyright 2004, Blackwyrm Games; Authors Aaron Sullivan and Dave Mattingly.\n\nArmies of the Abyss, Copyright 2002, Green Ronin Publishing; Authors Erik Mona and Chris Pramas.\n\nThe Avatar’s Handbook, Copyright 2003, Green Ronin Publishing; Authors Jesse Decker and Chris Tomasson.\n\nBastards & Bloodlines, Copyright 2003, Green Ronin Publishing, Author Owen K.C. Stephens\n\nBlue Rose, Copyright 2005, Green Ronin Publishing; Authors Jeremy Crawford, Dawn Elliot, Steve Kenson, and John Snead.\n\nBlue Rose Companion, Copyright 2005, Green Ronin Publishing; Editor Jeremy Crawford.\n\nThe Book of Fiends, Copyright 2003, Green Ronin Publishing; Authors Aaron Loeb, Erik Mona, Chris Pramas, and Robert J. Schwalb.\n\nBook of the Righteous, Copyright 2002, Aaron Loeb.\n\nChallenging Challenge Ratings: Immortal’s Handbook, Copyright 2003, Craig Cochrane.\n\nConan The Roleplaying Game, Copyright 2003 Conan Properties International LCC; Authorized Publisher Mongoose Publishing Ltd; Author Ian Sturrock.\n\nCORE Explanatory Notice, Copyright 2003, Benjamin R. Durbin\n\nCreatures of Freeport, Copyright 2004, Green Ronin Publishing, LLC; Authors Graeme Davis and Keith Baker.\n\nCrime and Punishment, Copyright 2003, Author Keith Baker\n\nCrooks!, Copyright 2003, Green Ronin Publishing; Authors Sean Glenn, Kyle Hunter, and Erik Mona.\n\nCry Havoc, Copyright 2003, Skip Williams. All rights reserved.\n\nChallenging Challenge Ratings: Immortal’s Handbook, Copyright 2003, Craig Cochrane.\n\nDarwin’s World 2nd Edition, Copyright 2003, RPG Objects; Authors Dominic Covey and Chris Davis.\n\nDesign Parameters: Immortal’s Handbook, Copyright 2003, Craig Cochrane.\n\nFading Suns d20, Copyright 2001, Holistic Design, Inc.\n\nGalactic Races, Copyright 2001, Fantasy Flight Games.\n\nGimmick’s Guide to Gadgets, Copyright 2005, Green Ronin Publishing; Author Mike Mearls.\n\nGrim Tales, Copyright 2004, Benjamin R. Durbin, published by Bad Axe Games, LCC.\n\nGrim Tales, Cyberware game mechanics; Copyright 2003, Benjamin R. Durbin, published by Bad Axe Games, LCC.\n\nGrim Tales, Firearms game mechanics; Copyright 2003, Benjamin R. Durbin, published by Bad Axe Games, LCC.\n\nGrim Tales, Horror game mechanics; Copyright 2003, Benjamin R. Durbin, published by Bad Axe Games, LCC.\n\nGrim Tales, Spellcasting game mechanics; Copyright 2003, Benjamin R. Durbin, published by Bad Axe Games, LCC.\n\nGrim Tales, Vehicle game mechanics; Copyright 2003, Benjamin R. Durbin, published by Bad Axe Games, LCC.\n\nHot Pursuit, Copyright 2005, Corey Reid, published by Adamant Entertainment, Inc.\n\nImmortals Handbook, Copyright 2003, Craig Cochrane.\n\nLegions of Hell, Copyright 2001, Green Ronin Publishing; Author Chris Pramas.\n\nA Magical Medieval Society: Western Europe, Copyright 2003, Expeditious Retreat Press; Authors Suzi Yee and Joseph Browning.\n\nThe Mastermind’s Manual, Copyright 2006, Green Ronin Publishing; Author Steve Kenson.\n\nModern Player’s Companion, Copyright 2003, The Game Mechanics, Inc; Author: Stan!\n\nMonster’s Handbook, Copyright 2002, Fantasy Flight Publishing, Inc.\n\nMonte Cook Presents: Iron Heroes, Copyright 2005, Monte J. Cook. All rights reserved.\n\nMonte Cook’s: Arcana Unearthed, Copyright 2003, Monte J. Cook. All rights reserved.\n\nMutants & Masterminds, Copyright 2002, Green Ronin Publishing; Author Steve Kenson.\n\nMutants & Masterminds, Second Edition, Copyright 2005, Green Ronin Publishing; Author Steve Kenson.\n\nMutants & Masterminds Annual #1, Copyright 2004, Green Ronin Publishing, LLC; Editor Erik Mona.\n\nMythic Heroes, Copyright 2005, Benjamin R. Durbin, published by Bad Axe Games, LLC.\n\nOGL Horror, Copyright 2003, Mongoose Publishing Limited.\n\nPossessors: Children of the Outer Gods, Copyright 2003, Philip Reed and Christopher Shy, www.philipjreed.com and www.studioronin.com.\n\nThe Psychic’s Handbook, Copyright 2004, Green Ronin Publishing; Author Steve Kenson.\n\nThe Quintessential Fighter, Copyright 2001 Mongoose Publishing\n\nRelics and Rituals: Excalibur,Copyright 2004, White Wolf Publishing, Inc.\n\nRokugan, Copyright 2001 AEG\n\nThe Seven Saxons, by Benjamin R. Durbin and Ryan Smalley, Copyright 2005, Bad Axe Games, LLC.\n\nSilver Age Sentinels d20, Copyright 2002, Guardians of Order, Inc.; Authors Stephen Kenson, Mark C. Mackinnon, Jeff Mackintosh, Jesse Scoble.\n\nSkull & Bones, Copyright 2003, Green Ronin, Green Ronin Publisihing, Authors Ian Sturrock, T.S. Luikart, and Gareth-Michael Skarka.\n\nSpycraft Copyright 2002, Alderac Entertainment Group.\n\nSpycraft Espionage Handbook, Copyright 2002, Alderac Entertainment Group, Inc.; Authors Patrick Kapera and Kevin Wilson.\n\nSpycraft Faceman/Snoop Class Guide, Copyright 2003, Alderac Entertainment Group, Inc.; Authors Alexander Flagg, Clayton A. Oliver.\n\nSpycraft Fixer/Pointman Class Guide, Copyright 2003, Alderac Entertainment Group, Inc.; Authors Scott Gearin.\n\nSpycraft Mastermind Guide, Copyright 2004, Alderac Entertainment Group, Inc.; Steve Crow, Alexander Flagg, B. D. Flory, Clayton A. Oliver.\n\nSpycraft Modern Arms Guide, Copyright 2002, Alderac Entertainment Group, Inc.; Authors Chad Brunner, Tim D’Allard, Rob Drake, Michael Fish, Scott Gearin, Owen Hershey, Patrick Kapera, Michael Petrovich, Jim Wardrip, Stephen Wilcoxon.\n\nSpycraft Soldier/Wheelman Class Guide, Copyright 2003, Alderac Entertainment Group, Inc.; Authors Chad Brunner, Shawn Carman, B. D. Flory, Scott Gearin, Patrick Kapera.\n\nSpycraft U.S. Militaries Guide, Copyright 2004, Alderac Entertainment Group, Inc.; Authors Dave McAlister, Clayton A. Oliver, Patrick Kapera.\n\nSpycraft, Copyright 2005, Alderac Entertainment Group.\n\nSwords of Our Fathers, Copyright 2003, The Game Mechanics\n\nTales of the Caliphate Nights, Copyright 2006, Paradigm Concepts, Inc., Author Aaron Infante-Levy\n\nTome of Horrors, Copyright 2002, Necromancer Games., Inc.; Author Scott Greene, based on original material by Gary Gygax.\n\nTrue20 Adventure Roleplaying, Copyright 2005, Green Ronin Publishing; Author Steve Kenson.\n\nTrue20 Bestiary, Copyright 2006, Green Ronin Publishing; Author Matthew E. Kaiser.\n\nTrue20 Companion, Copyright 2007, Green Ronin Publishing; Authors Erica Balsley, David Jarvis, Matthew E. Kaiser, Steve Kenson, and Sean Preston.\n\nThe Unholy Warrior’s Handbook, Copyright 2003, Green Ronin Publishing; Author Robert J. Schwalb.\n\nUltramodern Firearms, Copyright 2002, Green Ronin Publishing; Author Charles McManus Ryan.\n\nUnearthed Arcana, Copyright 2004, Wizards of the Coast, Inc.; Andy Collins, Jesse Decker, David Noonan, Rich Redman.\n\nWrath & Rage, Copyright 2002, Green Ronin Publishing, Author Jim Bishop\n\nTrue20 Adventure Roleplaying, Revised Edition, Copyright 2008, Green Ronin Publishing; Author Steve Kenson.', + grTrue20CompatLogo : `![True20 Compatibility Logo](/assets/license_logos/true_20.jpg){width:1.5in}` }; \ No newline at end of file From 044b8bf44cc6cf7e9a437b09db222ff99a29c744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Sat, 3 Jan 2026 17:34:14 +0100 Subject: [PATCH 21/73] fix vault pagination going wild --- client/homebrew/pages/vaultPage/vaultPage.jsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/client/homebrew/pages/vaultPage/vaultPage.jsx b/client/homebrew/pages/vaultPage/vaultPage.jsx index f9e14c180..f009c1054 100644 --- a/client/homebrew/pages/vaultPage/vaultPage.jsx +++ b/client/homebrew/pages/vaultPage/vaultPage.jsx @@ -101,7 +101,7 @@ const VaultPage = (props)=>{ const title = titleRef.current.value || ''; const author = authorRef.current.value || ''; - const count = countRef.current.value || 10; + const count = countRef.current.value || 20; const v3 = v3Ref.current.checked != false; const legacy = legacyRef.current.checked != false; const sortOption = sort || 'title'; @@ -288,7 +288,8 @@ const VaultPage = (props)=>{ const renderPaginationControls = ()=>{ if(!totalBrews || totalBrews < 10) return null; - const countInt = parseInt(brewCollection.length || 20); + + const countInt = parseInt(countRef.current.value || 20); const totalPages = Math.ceil(totalBrews / countInt); let startPage, endPage; From 494791cdd28656390c92b58c157f55d5dc722176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Sat, 3 Jan 2026 17:43:08 +0100 Subject: [PATCH 22/73] simple override --- 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 74856cdac..12601bb5d 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -615,6 +615,7 @@ text-align : center; -webkit-text-stroke : 0.1cm black; paint-order : stroke; + text-transform : none; } .logo { position : absolute; From 4370597587304b91d99f3fad5dd7d8d56ed78869 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 11 Jan 2026 21:02:12 +1300 Subject: [PATCH 23/73] Normalize brew text before hashing --- client/homebrew/pages/editPage/editPage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 595436c5b..1bc8bb35e 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -216,7 +216,7 @@ const EditPage = (props)=>{ text : brew.text.normalize('NFC'), pageCount : ((brew.renderer === 'legacy' ? brew.text.match(/\\page/g) : brew.text.match(/^\\page$/gm)) || []).length + 1, patches : stringifyPatches(makePatches(encodeURI(lastSavedBrew.current.text.normalize('NFC')), encodeURI(brew.text.normalize('NFC')))), - hash : await md5(lastSavedBrew.current.text), + hash : await md5(lastSavedBrew.current.text.normalize('NFC')), textBin : undefined, version : lastSavedBrew.current.version }; From b1a1c86155882942c951a17080a3bab45f0eab6c Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sun, 11 Jan 2026 14:49:07 -0500 Subject: [PATCH 24/73] Update changelog.md --- changelog.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/changelog.md b/changelog.md index 7cfbfde8a..8cd51e567 100644 --- a/changelog.md +++ b/changelog.md @@ -83,11 +83,39 @@ pre { .page .exampleTable td,th { border:1px dashed #00000030; } + +.page .df { + font-size: 2em; + vertical-align: middle; +} ``` ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). +### Friday 1/11/2026 - v13.20.1 + +{{taskList +##### calculuschild +* [x] Add D100 "ball" dice icons `:d100:` :df_d100_05: + +##### G-Ambatte +* [x] Fix transparent edge on back cover image + +Fixes issue [#4551](https://github.com/naturalcrit/homebrewery/issues/4551) + +* [x] Fix "Out of sync" error when document contains extended unicode characters + +Fixes issue [#4583](https://github.com/naturalcrit/homebrewery/issues/4583) + +##### 5e-Cleric +* [x] Fix page count error on Vault + +* [x] Fix cover page footnote set to all-caps + +Fixes issue [#4559](https://github.com/naturalcrit/homebrewery/issues/4559) +}} + ### Friday 11/14/2025 - v13.20.0 {{taskList From 56f76bceaeedc184f9a89378dbfabda17b3acbdc Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sun, 11 Jan 2026 14:50:34 -0500 Subject: [PATCH 25/73] Update version number --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a23149cfb..baa4dc289 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "homebrewery", - "version": "3.20.0", + "version": "3.20.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "homebrewery", - "version": "3.20.0", + "version": "3.20.1", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index c058b1af9..4ee36d620 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.20.0", + "version": "3.20.1", "type": "module", "engines": { "npm": "^10.8.x", From f98c506a3f2c36a71b49358a7483663d366ef1a2 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sun, 11 Jan 2026 14:50:49 -0500 Subject: [PATCH 26/73] Fix version typo in changelog --- changelog.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/changelog.md b/changelog.md index 8cd51e567..1e1ac70e2 100644 --- a/changelog.md +++ b/changelog.md @@ -93,7 +93,7 @@ pre { ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). -### Friday 1/11/2026 - v13.20.1 +### Friday 1/11/2026 - v3.20.1 {{taskList ##### calculuschild @@ -116,7 +116,7 @@ Fixes issue [#4583](https://github.com/naturalcrit/homebrewery/issues/4583) Fixes issue [#4559](https://github.com/naturalcrit/homebrewery/issues/4559) }} -### Friday 11/14/2025 - v13.20.0 +### Friday 11/14/2025 - v3.20.0 {{taskList ##### calculuschild 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 27/73] 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(`