diff --git a/package-lock.json b/package-lock.json index 3b6f53ad4..fe818bf2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,28 +32,29 @@ "marked": "5.1.0", "marked-extended-tables": "^1.0.6", "marked-gfm-heading-id": "^3.0.4", + "marked-smartypants-lite": "^1.0.0", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.29.4", - "mongoose": "^7.2.3", + "mongoose": "^7.3.1", "nanoid": "3.3.4", "nconf": "^0.12.0", - "npm": "^9.7.1", + "npm": "^9.7.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-frame-component": "^4.1.3", - "react-router-dom": "6.12.1", + "react-router-dom": "6.13.0", "sanitize-filename": "1.6.3", "superagent": "^6.1.0", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" }, "devDependencies": { - "eslint": "^8.42.0", - "eslint-plugin-jest": "^27.2.1", + "eslint": "^8.43.0", + "eslint-plugin-jest": "^27.2.2", "eslint-plugin-react": "^7.32.2", "jest": "^29.5.0", "jest-expect-message": "^1.1.3", "postcss-less": "^6.0.0", - "stylelint": "^15.7.0", + "stylelint": "^15.8.0", "stylelint-config-recess-order": "^4.2.0", "stylelint-config-recommended": "^12.0.0", "stylelint-stylistic": "^0.4.2", @@ -1937,9 +1938,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz", - "integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==", + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", + "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5349,15 +5350,15 @@ } }, "node_modules/eslint": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz", - "integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==", + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", + "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.42.0", + "@eslint/js": "8.43.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -5405,9 +5406,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "27.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz", - "integrity": "sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==", + "version": "27.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.2.tgz", + "integrity": "sha512-euzbp06F934Z7UDl5ZUaRPLAc9MKjh0rMPERrHT7UhlCEwgb25kBj37TvMgWeHZVkR5I9CayswrpoaqZU1RImw==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^5.10.0" @@ -5417,7 +5418,8 @@ }, "peerDependencies": { "@typescript-eslint/eslint-plugin": "^5.0.0", - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" }, "peerDependenciesMeta": { "@typescript-eslint/eslint-plugin": { @@ -9677,6 +9679,14 @@ "marked": "^4 || ^5" } }, + "node_modules/marked-smartypants-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/marked-smartypants-lite/-/marked-smartypants-lite-1.0.0.tgz", + "integrity": "sha512-+EGU6lP4VVoQBJp1OMoM3wDG0m/n9z2pek9hA9NtOG1EDrW0DCQc6T4KzdEzaVAghc2XMyEBDqlUsN/3/QvD9g==", + "peerDependencies": { + "marked": "^4 || ^5" + } + }, "node_modules/markedLegacy": { "name": "marked", "version": "0.3.19", @@ -10044,9 +10054,9 @@ } }, "node_modules/mongodb": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.5.0.tgz", - "integrity": "sha512-XgrkUgAAdfnZKQfk5AsYL8j7O99WHd4YXPxYxnh8dZxD+ekYWFRA3JktUsBnfg+455Smf75/+asoU/YLwNGoQQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.6.0.tgz", + "integrity": "sha512-z8qVs9NfobHJm6uzK56XBZF8XwM9H294iRnB7wNjF0SnY93si5HPziIJn+qqvUR5QOff/4L0gCD6SShdR/GtVQ==", "dependencies": { "bson": "^5.3.0", "mongodb-connection-string-url": "^2.6.0", @@ -10085,13 +10095,13 @@ } }, "node_modules/mongoose": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.2.3.tgz", - "integrity": "sha512-ClHD73HiqMk4hcOhdlZxluldokZfXvkrxjdKuqI7UQWLM71OIoy+n+OS+OHz4qJhS+/UaPzemQDKYtVrl4l0Ig==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.3.1.tgz", + "integrity": "sha512-6289bmSIhvR8xMHsYe2/CuzN7wHK+2RHcK7idDdzniCPC5zix5JH0Hc4k3CmXlr/9zQ2250gUQiUWtvDB0vF1Q==", "dependencies": { "bson": "^5.3.0", "kareem": "2.5.1", - "mongodb": "5.5.0", + "mongodb": "5.6.0", "mpath": "0.9.0", "mquery": "5.0.0", "ms": "2.1.3", @@ -10490,9 +10500,9 @@ } }, "node_modules/npm": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/npm/-/npm-9.7.1.tgz", - "integrity": "sha512-kxMviaiLX4Lfnjy2dt7EWB87v5QdLiGpy04S2ORdKLmPqFhgy8g4cgJjQfnWob4mJIaNHjBO+hk45CvLlsZZ8g==", + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/npm/-/npm-9.7.2.tgz", + "integrity": "sha512-LLoOudiSURxzRxfGj+vsD+hKKv2EfxyshDOznxruIkZMouvbaF5sFm4yAwHqxS8aVaOdRl03pRmGpcrFMqMt3g==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -10552,6 +10562,7 @@ "semver", "sigstore", "ssri", + "supports-color", "tar", "text-table", "tiny-relative-date", @@ -10562,14 +10573,14 @@ ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^6.2.9", - "@npmcli/config": "^6.2.0", + "@npmcli/arborist": "^6.2.10", + "@npmcli/config": "^6.2.1", "@npmcli/map-workspaces": "^3.0.4", "@npmcli/package-json": "^3.1.1", "@npmcli/run-script": "^6.0.2", "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^17.1.2", + "cacache": "^17.1.3", "chalk": "^5.2.0", "ci-info": "^3.8.0", "cli-columns": "^4.0.0", @@ -10577,21 +10588,21 @@ "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.2", - "glob": "^10.2.4", + "glob": "^10.2.7", "graceful-fs": "^4.2.11", "hosted-git-info": "^6.1.1", - "ini": "^4.1.0", + "ini": "^4.1.1", "init-package-json": "^5.0.0", "is-cidr": "^4.0.2", "json-parse-even-better-errors": "^3.0.0", "libnpmaccess": "^7.0.2", - "libnpmdiff": "^5.0.17", - "libnpmexec": "^6.0.0", - "libnpmfund": "^4.0.17", + "libnpmdiff": "^5.0.18", + "libnpmexec": "^6.0.1", + "libnpmfund": "^4.0.18", "libnpmhook": "^9.0.3", "libnpmorg": "^5.0.4", - "libnpmpack": "^5.0.17", - "libnpmpublish": "^7.3.0", + "libnpmpack": "^5.0.18", + "libnpmpublish": "^7.4.0", "libnpmsearch": "^6.0.2", "libnpmteam": "^5.0.3", "libnpmversion": "^4.0.2", @@ -10600,8 +10611,8 @@ "minipass": "^5.0.0", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^9.3.1", - "nopt": "^7.1.0", + "node-gyp": "^9.4.0", + "nopt": "^7.2.0", "npm-audit-report": "^5.0.0", "npm-install-checks": "^6.1.1", "npm-package-arg": "^10.1.0", @@ -10611,15 +10622,16 @@ "npm-user-validate": "^2.0.0", "npmlog": "^7.0.1", "p-map": "^4.0.0", - "pacote": "^15.1.3", + "pacote": "^15.2.0", "parse-conflict-json": "^3.0.1", "proc-log": "^3.0.0", "qrcode-terminal": "^0.12.0", "read": "^2.1.0", - "semver": "^7.5.1", - "sigstore": "^1.5.0", + "semver": "^7.5.2", + "sigstore": "^1.6.0", "ssri": "^10.0.4", - "tar": "^6.1.14", + "supports-color": "^9.3.1", + "tar": "^6.1.15", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", @@ -10656,11 +10668,6 @@ "node": ">=0.1.90" } }, - "node_modules/npm/node_modules/@gar/promisify": { - "version": "1.1.3", - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", "inBundle": true, @@ -10710,7 +10717,7 @@ } }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.0.1", + "version": "7.1.0", "inBundle": true, "license": "MIT", "dependencies": { @@ -10729,7 +10736,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "6.2.9", + "version": "6.2.10", "inBundle": true, "license": "ISC", "dependencies": { @@ -10775,11 +10782,12 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "6.2.0", + "version": "6.2.1", "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", + "ci-info": "^3.8.0", "ini": "^4.1.0", "nopt": "^7.0.0", "proc-log": "^3.0.0", @@ -10874,18 +10882,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { "version": "2.0.0", "inBundle": true, @@ -10972,6 +10968,19 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "1.0.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.1.0", + "make-fetch-happen": "^11.0.1", + "tuf-js": "^1.1.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@tootallnate/once": { "version": "2.0.0", "inBundle": true, @@ -11185,7 +11194,7 @@ } }, "node_modules/npm/node_modules/cacache": { - "version": "17.1.2", + "version": "17.1.3", "inBundle": true, "license": "ISC", "dependencies": { @@ -11490,6 +11499,11 @@ "node": ">=0.8.x" } }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "inBundle": true, + "license": "Apache-2.0" + }, "node_modules/npm/node_modules/fastest-levenshtein": { "version": "1.0.16", "inBundle": true, @@ -11553,14 +11567,14 @@ } }, "node_modules/npm/node_modules/glob": { - "version": "10.2.4", + "version": "10.2.7", "inBundle": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0 || ^6.0.0", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2", "path-scurry": "^1.7.0" }, "bin": { @@ -11701,11 +11715,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/infer-owner": { - "version": "1.0.4", - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/inflight": { "version": "1.0.6", "inBundle": true, @@ -11721,7 +11730,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/ini": { - "version": "4.1.0", + "version": "4.1.1", "inBundle": true, "license": "ISC", "engines": { @@ -11770,7 +11779,7 @@ } }, "node_modules/npm/node_modules/is-core-module": { - "version": "2.12.0", + "version": "2.12.1", "inBundle": true, "license": "MIT", "dependencies": { @@ -11799,7 +11808,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/jackspeak": { - "version": "2.2.0", + "version": "2.2.1", "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -11862,11 +11871,11 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "5.0.17", + "version": "5.0.18", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.9", + "@npmcli/arborist": "^6.2.10", "@npmcli/disparity-colors": "^3.0.0", "@npmcli/installed-package-contents": "^2.0.2", "binary-extensions": "^2.2.0", @@ -11881,11 +11890,11 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "6.0.0", + "version": "6.0.1", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.9", + "@npmcli/arborist": "^6.2.10", "@npmcli/run-script": "^6.0.0", "ci-info": "^3.7.1", "npm-package-arg": "^10.1.0", @@ -11902,11 +11911,11 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "4.0.17", + "version": "4.0.18", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.9" + "@npmcli/arborist": "^6.2.10" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -11937,11 +11946,11 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "5.0.17", + "version": "5.0.18", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^6.2.9", + "@npmcli/arborist": "^6.2.10", "@npmcli/run-script": "^6.0.0", "npm-package-arg": "^10.1.0", "pacote": "^15.0.8" @@ -11951,7 +11960,7 @@ } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "7.3.0", + "version": "7.4.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -12040,7 +12049,7 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "9.0.0", + "version": "9.0.1", "inBundle": true, "license": "ISC", "dependencies": { @@ -12241,14 +12250,15 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "9.3.1", + "version": "9.4.0", "inBundle": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", + "make-fetch-happen": "^11.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -12263,18 +12273,6 @@ "node": "^12.13 || ^14.13 || >=16" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": { - "version": "2.1.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { "version": "1.1.1", "inBundle": true, @@ -12301,82 +12299,6 @@ "concat-map": "0.0.1" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { - "version": "16.1.3", - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/fs-minipass": { - "version": "2.1.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { "version": "4.0.4", "inBundle": true, @@ -12414,32 +12336,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "10.2.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { "version": "3.1.2", "inBundle": true, @@ -12451,33 +12347,6 @@ "node": "*" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/minipass": { - "version": "3.3.6", - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": { - "version": "2.1.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { "version": "6.0.0", "inBundle": true, @@ -12524,39 +12393,6 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/node-gyp/node_modules/ssri": { - "version": "9.0.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": { - "version": "2.0.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": { - "version": "3.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/npm/node_modules/node-gyp/node_modules/which": { "version": "2.0.2", "inBundle": true, @@ -12572,7 +12408,7 @@ } }, "node_modules/npm/node_modules/nopt": { - "version": "7.1.0", + "version": "7.2.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -12750,7 +12586,7 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "15.1.3", + "version": "15.2.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -12810,12 +12646,12 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "1.9.1", + "version": "1.9.2", "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.0" + "minipass": "^5.0.0 || ^6.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -12931,7 +12767,7 @@ } }, "node_modules/npm/node_modules/read-package-json": { - "version": "6.0.3", + "version": "6.0.4", "inBundle": true, "license": "ISC", "dependencies": { @@ -13032,7 +12868,21 @@ } }, "node_modules/npm/node_modules/safe-buffer": { - "version": "5.1.2", + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "inBundle": true, "license": "MIT" }, @@ -13043,7 +12893,7 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.5.1", + "version": "7.5.2", "inBundle": true, "license": "ISC", "dependencies": { @@ -13103,11 +12953,12 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "1.5.2", + "version": "1.6.0", "inBundle": true, "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.1.0", + "@sigstore/tuf": "^1.0.0", "make-fetch-happen": "^11.0.1", "tuf-js": "^1.1.3" }, @@ -13193,11 +13044,11 @@ } }, "node_modules/npm/node_modules/string_decoder": { - "version": "1.1.1", + "version": "1.3.0", "inBundle": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "node_modules/npm/node_modules/string-width": { @@ -13250,8 +13101,19 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.3.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/npm/node_modules/tar": { - "version": "6.1.14", + "version": "6.1.15", "inBundle": true, "license": "ISC", "dependencies": { @@ -13307,13 +13169,13 @@ } }, "node_modules/npm/node_modules/tuf-js": { - "version": "1.1.6", + "version": "1.1.7", "inBundle": true, "license": "MIT", "dependencies": { "@tufjs/models": "1.0.4", "debug": "^4.3.4", - "make-fetch-happen": "^11.1.0" + "make-fetch-happen": "^11.1.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -13478,7 +13340,7 @@ } }, "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.0.1", + "version": "7.1.0", "inBundle": true, "license": "MIT", "dependencies": { @@ -14422,9 +14284,9 @@ "dev": true }, "node_modules/react-router": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.12.1.tgz", - "integrity": "sha512-evd/GrKJOeOypD0JB9e1r7pQh2gWCsTbUfq059Wm1AFT/K2MNZuDo19lFtAgIhlBrp0MmpgpqtvZC7LPAs7vSw==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.13.0.tgz", + "integrity": "sha512-Si6KnfEnJw7gUQkNa70dlpI1bul46FuSxX5t5WwlUBxE25DAz2BjVkwaK8Y2s242bQrZPXCpmwLPtIO5pv4tXg==", "dependencies": { "@remix-run/router": "1.6.3" }, @@ -14436,12 +14298,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.12.1.tgz", - "integrity": "sha512-POIZN9UDKWwEDga054LvYr2KnK8V+0HR4Ny4Bwv8V7/FZCPxJgsCjYxXGxqxzHs7VBxMKZfgvtKhafuJkJSPGA==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.13.0.tgz", + "integrity": "sha512-6Nqoqd7fgwxxVGdbiMHTpDHCYPq62d7Wk1Of7B82vH7ZPwwsRaIa22zRZKPPg413R5REVNiyuQPKDG1bubcOFA==", "dependencies": { "@remix-run/router": "1.6.3", - "react-router": "6.12.1" + "react-router": "6.13.0" }, "engines": { "node": ">=14" @@ -15874,9 +15736,9 @@ "dev": true }, "node_modules/stylelint": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.7.0.tgz", - "integrity": "sha512-fQRwHwWuZsDn4ENyE9AsKkOkV9WlD2CmYiVDbdZPdS3iZh0ceypOn1EuwTNuZ8xTrHF+jVeIEzLtFFSlD/nJHg==", + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.8.0.tgz", + "integrity": "sha512-x9qBk84F3MEjMEUNCE7MtWmfj9G9y5XzJ0cpQeJdy2l/IoqjC8Ih0N0ytmOTnXE4Yv0J7I1cmVRQUVNSPCxTsA==", "dev": true, "dependencies": { "@csstools/css-parser-algorithms": "^2.2.0", @@ -15919,7 +15781,6 @@ "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", - "v8-compile-cache": "^2.3.0", "write-file-atomic": "^5.0.1" }, "bin": { @@ -16920,12 +16781,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/v8-to-istanbul": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", diff --git a/package.json b/package.json index 6d3c3d7f6..8814b457d 100644 --- a/package.json +++ b/package.json @@ -100,28 +100,29 @@ "marked": "5.1.0", "marked-extended-tables": "^1.0.6", "marked-gfm-heading-id": "^3.0.4", + "marked-smartypants-lite": "^1.0.0", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.29.4", - "mongoose": "^7.2.3", + "mongoose": "^7.3.1", "nanoid": "3.3.4", "nconf": "^0.12.0", - "npm": "^9.7.1", + "npm": "^9.7.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-frame-component": "^4.1.3", - "react-router-dom": "6.12.1", + "react-router-dom": "6.13.0", "sanitize-filename": "1.6.3", "superagent": "^6.1.0", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" }, "devDependencies": { - "eslint": "^8.42.0", - "eslint-plugin-jest": "^27.2.1", + "eslint": "^8.43.0", + "eslint-plugin-jest": "^27.2.2", "eslint-plugin-react": "^7.32.2", "jest": "^29.5.0", "jest-expect-message": "^1.1.3", "postcss-less": "^6.0.0", - "stylelint": "^15.7.0", + "stylelint": "^15.8.0", "stylelint-config-recess-order": "^4.2.0", "stylelint-config-recommended": "^12.0.0", "stylelint-stylistic": "^0.4.2", diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 3c05869e0..114229887 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -2,6 +2,7 @@ const _ = require('lodash'); const Marked = require('marked'); const MarkedExtendedTables = require('marked-extended-tables'); +const { markedSmartypantsLite: MarkedSmartypantsLite } = require('marked-smartypants-lite'); const { gfmHeadingId: MarkedGFMHeadingId } = require('marked-gfm-heading-id'); const renderer = new Marked.Renderer(); @@ -237,49 +238,10 @@ const definitionLists = { } }; -const MarkedSmartyPantsLite = ()=>{ - return { - tokenizer : { - inlineText(src) { - // don't escape inlineText - const cap = this.rules.inline.text.exec(src); - - /* istanbul ignore next */ - if(!cap) { - // should never happen - return; - } - - const text = cap[0] - // em-dashes - .replace(/---/g, '\u2014') - // en-dashes - .replace(/--/g, '\u2013') - // opening singles - .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') - // closing singles & apostrophes - .replace(/'/g, '\u2019') - // opening doubles - .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') - // closing doubles - .replace(/"/g, '\u201d') - // ellipses - .replace(/\.{3}/g, '\u2026'); - - return { - type : 'text', - raw : cap[0], - text : text - }; - } - } - }; -}; - Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionLists] }); Marked.use(mustacheInjectBlock); Marked.use({ renderer: renderer, mangle: false }); -Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartyPantsLite()); +Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartypantsLite()); //Fix local links in the Preview iFrame to link inside the frame renderer.link = function (href, title, text) {