From 87f738702a935279a248d471541cdd9d49330565 Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Fri, 10 Apr 2026 21:35:12 -0500 Subject: [PATCH] docs(notifcations): docs for intro, notifcations, reprint added --- .../notification.reprintLabels.ts | 14 +- brunoApi/environments/lstv3.bru | 2 +- .../Subscribe to notification.bru | 2 +- frontend/package-lock.json | 1486 ++++++++++++++++- frontend/package.json | 3 + .../imgs/docs/notifications/dk_profile.png | Bin 0 -> 5981 bytes .../notifications/lt_notification_select.png | Bin 0 -> 27752 bytes .../notifications/lt_notification_table.png | Bin 0 -> 20305 bytes .../imgs/docs/notifications/lt_profile.png | Bin 0 -> 6087 bytes .../imgs/docs/notifications/lt_reprints.png | Bin 0 -> 21657 bytes frontend/src/docs/notifications/intro.tsx | 62 + frontend/src/docs/notifications/reprints.tsx | 18 + frontend/src/routes/docs/$.tsx | 31 + frontend/src/routes/docs/index.tsx | 100 ++ frontend/vite.config.ts | 1 + 15 files changed, 1711 insertions(+), 8 deletions(-) create mode 100644 frontend/public/imgs/docs/notifications/dk_profile.png create mode 100644 frontend/public/imgs/docs/notifications/lt_notification_select.png create mode 100644 frontend/public/imgs/docs/notifications/lt_notification_table.png create mode 100644 frontend/public/imgs/docs/notifications/lt_profile.png create mode 100644 frontend/public/imgs/docs/notifications/lt_reprints.png create mode 100644 frontend/src/docs/notifications/intro.tsx create mode 100644 frontend/src/docs/notifications/reprints.tsx create mode 100644 frontend/src/routes/docs/$.tsx create mode 100644 frontend/src/routes/docs/index.tsx diff --git a/backend/notification/notification.reprintLabels.ts b/backend/notification/notification.reprintLabels.ts index b3f10a8..26c05e5 100644 --- a/backend/notification/notification.reprintLabels.ts +++ b/backend/notification/notification.reprintLabels.ts @@ -9,11 +9,15 @@ import { import { returnFunc } from "../utils/returnHelper.utils.js"; import { sendEmail } from "../utils/sendEmail.utils.js"; import { tryCatch } from "../utils/trycatch.utils.js"; -import { v1QueryRun } from "../utils/pgConnectToLst.utils.js"; +import { v2QueryRun } from "../utils/pgConnectToLst.utils.js"; -const reprint = async (data: any, emails: string) => { - // TODO: remove this disable once all 17 plants are on this new lst - v1QueryRun(`update public.notifications set active = false where name = '${data.name}'`) +let shutoffv1 = false +const func = async (data: any, emails: string) => { + // TODO: remove this disable once all 17 plants are on this new lst + if (!shutoffv1){ + v2QueryRun(`update public.notifications set active = false where name = '${data.name}'`) + shutoffv1 = true + } const { data: l, error: le } = (await tryCatch( db.select().from(notifications).where(eq(notifications.id, data.id)), @@ -106,4 +110,4 @@ const reprint = async (data: any, emails: string) => { } }; -export default reprint; +export default func; diff --git a/brunoApi/environments/lstv3.bru b/brunoApi/environments/lstv3.bru index a09dc00..b05fb6c 100644 --- a/brunoApi/environments/lstv3.bru +++ b/brunoApi/environments/lstv3.bru @@ -1,5 +1,5 @@ vars { - url: http://localhost:3600/lst + url: http://localhost:3000/lst readerIp: 10.44.14.215 } vars:secret [ diff --git a/brunoApi/notifications/Subscribe to notification.bru b/brunoApi/notifications/Subscribe to notification.bru index a357482..5b0a86d 100644 --- a/brunoApi/notifications/Subscribe to notification.bru +++ b/brunoApi/notifications/Subscribe to notification.bru @@ -14,7 +14,7 @@ body:json { { "userId":"m6AbQXFwOXoX3YKLfwWgq2LIdDqS5jqv", "notificationId": "0399eb2a-39df-48b7-9f1c-d233cec94d2e", - "emails": ["blake.mattes@alpla.com","cowchmonkey@gmail.com"] + "emails": ["blake.matthes@alpla.com","blake.matthes@alpla.com"] } } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index e1bf8c3..6288c65 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -24,6 +24,8 @@ "radix-ui": "^1.4.3", "react": "^19.1.1", "react-dom": "^19.1.1", + "react-markdown": "^10.1.0", + "remark-gfm": "^4.0.1", "shadcn": "^4.0.8", "socket.io-client": "^4.8.3", "sonner": "^2.0.7", @@ -34,6 +36,7 @@ }, "devDependencies": { "@eslint/js": "^9.36.0", + "@tailwindcss/typography": "^0.5.19", "@tanstack/router-plugin": "^1.166.7", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", @@ -3982,6 +3985,33 @@ "node": ">= 20" } }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz", + "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@tailwindcss/vite": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.1.tgz", @@ -4446,12 +4476,39 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "license": "MIT" }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -4459,11 +4516,25 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, "node_modules/@types/react": { "version": "19.2.14", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", - "devOptional": true, "license": "MIT", "dependencies": { "csstype": "^3.2.2" @@ -4485,6 +4556,12 @@ "integrity": "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==", "license": "MIT" }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, "node_modules/@types/validate-npm-package-name": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/validate-npm-package-name/-/validate-npm-package-name-4.0.2.tgz", @@ -4790,6 +4867,12 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, "node_modules/@vitejs/plugin-react-swc": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.3.0.tgz", @@ -5057,6 +5140,16 @@ "@babel/types": "^7.23.6" } }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -5491,6 +5584,16 @@ ], "license": "CC-BY-4.0" }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -5508,6 +5611,46 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -5711,6 +5854,16 @@ "node": ">= 0.8" } }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/commander": { "version": "14.0.3", "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", @@ -5880,6 +6033,19 @@ } } }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/dedent": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", @@ -5974,6 +6140,15 @@ "node": ">= 0.8" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -5989,6 +6164,19 @@ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", "license": "MIT" }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/diff": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", @@ -6453,6 +6641,16 @@ "node": ">=4.0" } }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -6605,6 +6803,12 @@ "url": "https://opencollective.com/express" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -7154,6 +7358,46 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/headers-polyfill": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", @@ -7169,6 +7413,16 @@ "node": ">=16.9.0" } }, + "node_modules/html-url-attributes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", + "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", @@ -7268,6 +7522,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, "node_modules/ip-address": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", @@ -7286,6 +7546,30 @@ "node": ">= 0.10" } }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -7305,6 +7589,16 @@ "node": ">=8" } }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-docker": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", @@ -7350,6 +7644,16 @@ "node": ">=0.10.0" } }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-in-ssh": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", @@ -7968,6 +8272,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -7995,6 +8309,16 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -8004,6 +8328,288 @@ "node": ">= 0.4" } }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/media-typer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", @@ -8047,6 +8653,569 @@ "node": ">= 8" } }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -8599,6 +9768,31 @@ "node": ">=6" } }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -8819,6 +10013,16 @@ "node": ">=6" } }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -9004,6 +10208,33 @@ "react": "^19.2.4" } }, + "node_modules/react-markdown": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz", + "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=18", + "react": ">=18" + } + }, "node_modules/react-remove-scroll": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", @@ -9124,6 +10355,72 @@ "node": ">=0.10.0" } }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -9654,6 +10951,16 @@ "node": ">=0.10.0" } }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -9708,6 +11015,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/stringify-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-5.0.0.tgz", @@ -9774,6 +11095,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9920,6 +11259,26 @@ "node": ">=18" } }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ts-api-utils": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", @@ -10109,6 +11468,93 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -10268,6 +11714,34 @@ "node": ">= 0.8" } }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vite": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", @@ -10650,6 +12124,16 @@ "peerDependencies": { "zod": "^3.25 || ^4" } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/frontend/package.json b/frontend/package.json index 2752dfe..dc11e1d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -26,6 +26,8 @@ "radix-ui": "^1.4.3", "react": "^19.1.1", "react-dom": "^19.1.1", + "react-markdown": "^10.1.0", + "remark-gfm": "^4.0.1", "shadcn": "^4.0.8", "socket.io-client": "^4.8.3", "sonner": "^2.0.7", @@ -36,6 +38,7 @@ }, "devDependencies": { "@eslint/js": "^9.36.0", + "@tailwindcss/typography": "^0.5.19", "@tanstack/router-plugin": "^1.166.7", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", diff --git a/frontend/public/imgs/docs/notifications/dk_profile.png b/frontend/public/imgs/docs/notifications/dk_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..6d4bffba5330b737b661c2de823f98a0ea4ae87d GIT binary patch literal 5981 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 literal 0 HcmV?d00001 diff --git a/frontend/public/imgs/docs/notifications/lt_notification_table.png b/frontend/public/imgs/docs/notifications/lt_notification_table.png new file mode 100644 index 0000000000000000000000000000000000000000..c409dcd8fa72f46a2e6b8851203c6dcf2e3f8396 GIT binary patch literal 20305 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 Uu3yX6oggzkUHx3vIVCg!07hS$Vo*l*`k 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 T|H3SE`$?0Z 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 +

Notifications

+ +

+ All notifications are a subscription based, please open the menu and + select the notification you would like to know more info about +

+ +
+

To subscribe to a notification

+
    +
  1. Click on your profile
  2. + + Reprint notification example +
  3. Click account
  4. +
  5. Select the notification you would like to subscribe to.
  6. + Reprint notification example +
  7. + If you want to have more people on the notification you can add more + emails by clicking the add email button.{" "} +

    + Please note that each user can subscribe on there own so you do not + need to add others unless you want to add them. +

    +
  8. +
  9. When you are ready click subscribe
  10. +
+
+

+ NOTE: you can select the same notification and add more people or just + your self only, when you do this it will override you current + subscription and add / remove the emails +

+
+
+

+ The table at the bottom of your profile is where all of your current + subscriptions will be at. +

+

+ Clicking the trash can will remove the notifications from sending you + emails +

+ Reprint notification example +
+ + ); +} diff --git a/frontend/src/docs/notifications/reprints.tsx b/frontend/src/docs/notifications/reprints.tsx new file mode 100644 index 0000000..2919618 --- /dev/null +++ b/frontend/src/docs/notifications/reprints.tsx @@ -0,0 +1,18 @@ +export default function reprints() { + return ( +
+

Reprints

+ +

+ The reprint alert will monitor for labels that have been printed within + a defined time. when a label is printed in the defined time an email + will sent out that looks similar to the below +

+ Reprint notification example +
+ ); +} diff --git a/frontend/src/routes/docs/$.tsx b/frontend/src/routes/docs/$.tsx new file mode 100644 index 0000000..82723b8 --- /dev/null +++ b/frontend/src/routes/docs/$.tsx @@ -0,0 +1,31 @@ +import { createFileRoute, Link } from "@tanstack/react-router"; +import { getDoc } from "../../lib/docs"; + +export const Route = createFileRoute("/docs/$")({ + component: RouteComponent, +}); + +function RouteComponent() { + const { _splat } = Route.useParams(); + const slug = _splat || ""; + + const Doc = getDoc(slug); + + if (!Doc) { + return ( +
+

+ You Have reached a doc page that dose not seem to exist please + validate and come back +

+ Docs Home +
+ ); + } + + return ( +
+ +
+ ); +} diff --git a/frontend/src/routes/docs/index.tsx b/frontend/src/routes/docs/index.tsx new file mode 100644 index 0000000..9fda92d --- /dev/null +++ b/frontend/src/routes/docs/index.tsx @@ -0,0 +1,100 @@ +import { createFileRoute, Link } from "@tanstack/react-router"; + +export const Route = createFileRoute("/docs/")({ + component: RouteComponent, +}); + +function RouteComponent() { + return ( +
+

Logistics Support Tool Intro

+

What is lst

+

+ Lst is a logistics support tool, and aid to ALPLAprod All data in here + is just to be treated as an aid and can still be completed manually in + alplaprod. These docs are here to help show what LST has to offer as + well as the manual process via alpla prod. +

+
+

What dose LST offer

+
    +
  • One click print
  • +
      +
    • Controls printing of labels
    • +
    • devices that can be used
    • +
        +
      • Printer control
      • +
      • plc control
      • +
      • ame palletizer control
      • +
      +
    • considers more business logic than alplaprod
    • +
        +
      • + enough material is needed in the system to create the next pallet +
      • +
      • this will be the same for packaging as well.
      • +
      +
    • special processes
    • +
        +
      • in-house delivery triggered once booked in
      • +
      • stop gap on printing labels at specific times
      • +
      • per line delay in printing
      • +
      +
    +
  • Silos Management
  • +
      +
    • Silo adjustments per location
    • +
        +
      • Charts for the last 10 adjustments
      • +
      • Historical data
      • +
      • Comments on per adjustment
      • +
      • Automatic email for more than 5% deviation
      • +
      +
    • Attach silo
    • +
        +
      • Only shows machines not attached to this silo
      • +
      +
    • Detach silo
    • +
        + Only shows machines that are attached to the silo. +
      +
    +
  • TMS integration
  • +
      +
    • integration with TI to auto add in orders
    • +
        +
      • orders are based on a time defined per plant.
      • +
      • carriers can be auto set.
      • +
      +
    +
  • + + Notifications + +
  • +
      +
    • Automated alerts
    • +
    • Subscription based
    • +
    • Processes notifications
    • +
    +
  • Datamart
  • +
      +
    • queries that can be pulled via excel
    • +
    • queries are created to allow better views for the plants
    • +
    • Faster customer reports
    • +
    +
  • Fake EDI (Demand Management)
  • +
      +
    • Orders in (standard template)
    • +
    • Customer specific orders templates per plant
    • +
    • Forecast (standard Template)
    • +
    • Customer specific forecast per plant
    • +
    +
+
+ ); +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 42bc1de..74f5e2b 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -4,6 +4,7 @@ import { tanstackRouter } from "@tanstack/router-plugin/vite"; import react from "@vitejs/plugin-react-swc"; import { defineConfig } from "vite"; + // https://vite.dev/config/ export default defineConfig({ plugins: [