From dd027e16150586a77abb2ddc9c70bbf1117e6c08 Mon Sep 17 00:00:00 2001 From: AG Date: Tue, 16 Dec 2025 16:41:50 +0200 Subject: [PATCH] AI Coach messages bookmarking. Top bar refined. --- package-lock.json | 1471 ++++++++++++++++- package.json | 4 +- playwright-report/index.html | 2 +- server/.env | 22 + server/prisma/dev.db | Bin 475136 -> 106496 bytes .../migration.sql | 9 + server/prisma/schema.prisma | 10 + server/prod.db | Bin 90112 -> 98304 bytes .../src/controllers/bookmarks.controller.ts | 79 + server/src/index.ts | 2 + server/src/routes/bookmarks.ts | 13 + server/test.db | Bin 90112 -> 192512 bytes specs/gymflow-test-plan.md | 77 +- specs/requirements.md | 34 +- src/components/AICoach.tsx | 176 +- src/components/History.tsx | 11 +- src/components/Plans.tsx | 39 +- src/components/Profile.tsx | 20 +- src/components/SavedMessagesSheet.tsx | 114 ++ src/components/Stats.tsx | 154 +- src/components/Tracker/IdleView.tsx | 200 +-- src/components/ui/TopBar.tsx | 22 + src/services/api.ts | 35 +- src/services/bookmarks.ts | 44 + tests/ai-coach.spec.ts | 92 ++ tests/repro_edit_fields.spec.ts | 136 ++ 26 files changed, 2496 insertions(+), 270 deletions(-) create mode 100644 server/.env create mode 100644 server/prisma/migrations/20251216135012_add_saved_messages/migration.sql create mode 100644 server/src/controllers/bookmarks.controller.ts create mode 100644 server/src/routes/bookmarks.ts create mode 100644 src/components/SavedMessagesSheet.tsx create mode 100644 src/components/ui/TopBar.tsx create mode 100644 src/services/bookmarks.ts create mode 100644 tests/ai-coach.spec.ts create mode 100644 tests/repro_edit_fields.spec.ts diff --git a/package-lock.json b/package-lock.json index 3cedb88..2db7e56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,8 +18,10 @@ "playwright-test": "^14.1.12", "react": "^19.2.0", "react-dom": "^19.2.0", + "react-markdown": "^10.1.0", "react-router-dom": "^7.10.1", - "recharts": "^3.4.1" + "recharts": "^3.4.1", + "remark-gfm": "^4.0.1" }, "devDependencies": { "@playwright/test": "^1.57.0", @@ -1494,19 +1496,60 @@ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", "license": "MIT" }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "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==", - "dev": true, "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/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "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/node": { "version": "22.19.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz", @@ -1517,12 +1560,34 @@ "undici-types": "~6.21.0" } }, + "node_modules/@types/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz", + "integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==", + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, + "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/use-sync-external-store": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", "license": "MIT" }, + "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": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.1.tgz", @@ -1754,6 +1819,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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", @@ -2027,6 +2102,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", @@ -2073,6 +2158,46 @@ "node": ">=8" } }, + "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": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -2229,6 +2354,16 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "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": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -2346,6 +2481,13 @@ "node": ">=4" } }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT", + "peer": true + }, "node_modules/d3-array": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", @@ -2567,6 +2709,19 @@ "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", "license": "MIT" }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -2601,6 +2756,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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/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/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -2879,6 +3056,16 @@ "node": ">=0.8.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/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", @@ -3505,6 +3692,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/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -3517,6 +3744,16 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "license": "MIT" }, + "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/https-proxy-agent": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", @@ -3575,6 +3812,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/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", @@ -3598,6 +3841,30 @@ "node": ">=12" } }, + "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-arguments": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", @@ -3760,6 +4027,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3826,6 +4103,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-interactive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", @@ -4334,6 +4621,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", @@ -4380,6 +4677,16 @@ "node": ">=10" } }, + "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/matchit": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/matchit/-/matchit-1.1.0.tgz", @@ -4401,6 +4708,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.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "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/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -4440,6 +5029,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", @@ -5069,6 +6221,31 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "license": "BlueOak-1.0.0" }, + "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": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -5998,6 +7175,16 @@ "node": ">= 0.6.0" } }, + "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/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6047,6 +7234,33 @@ "license": "MIT", "peer": true }, + "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-redux": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", @@ -6266,6 +7480,72 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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", @@ -6737,6 +8017,16 @@ "source-map": "^0.6.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/spawn-command": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", @@ -6952,6 +8242,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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/strip-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", @@ -7010,6 +8314,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/sucrase": { "version": "3.35.1", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", @@ -7293,6 +8615,26 @@ "tree-kill": "cli.js" } }, + "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/trouter": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/trouter/-/trouter-2.0.1.tgz", @@ -7455,6 +8797,25 @@ "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/unique-string": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", @@ -7470,6 +8831,74 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "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/update-browserslist-db": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", @@ -7553,6 +8982,34 @@ "spdx-expression-parse": "^3.0.0" } }, + "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/victory-vendor": { "version": "37.3.6", "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", @@ -7994,6 +9451,16 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "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/package.json b/package.json index b40c362..34d7aca 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,10 @@ "playwright-test": "^14.1.12", "react": "^19.2.0", "react-dom": "^19.2.0", + "react-markdown": "^10.1.0", "react-router-dom": "^7.10.1", - "recharts": "^3.4.1" + "recharts": "^3.4.1", + "remark-gfm": "^4.0.1" }, "devDependencies": { "@playwright/test": "^1.57.0", diff --git a/playwright-report/index.html b/playwright-report/index.html index fc99077..8968129 100644 --- a/playwright-report/index.html +++ b/playwright-report/index.html @@ -82,4 +82,4 @@ Error generating stack: `+n.message+`
- \ No newline at end of file + \ No newline at end of file diff --git a/server/.env b/server/.env new file mode 100644 index 0000000..8cc8b49 --- /dev/null +++ b/server/.env @@ -0,0 +1,22 @@ +# Generic + +# DEV +DATABASE_URL_DEV="file:./prisma/dev.db" +ADMIN_EMAIL_DEV="admin@gymflow.ai" +ADMIN_PASSWORD_DEV="admin123" + +# TEST +DATABASE_URL_TEST="file:./prisma/test.db" +ADMIN_EMAIL_TEST="admin@gymflow.ai" +ADMIN_PASSWORD_TEST="admin123" + +# PROD +DATABASE_URL_PROD="file:./prisma/prod.db" +ADMIN_EMAIL_PROD="admin-prod@gymflow.ai" +ADMIN_PASSWORD_PROD="secure-prod-password-change-me" + +# Fallback for Prisma CLI (Migrate default) +DATABASE_URL="file:./prisma/dev.db" + +GEMINI_API_KEY=AIzaSyC88SeFyFYjvSfTqgvEyr7iqLSvEhuadoE +DEFAULT_EXERCISES_CSV_PATH='default_exercises.csv' diff --git a/server/prisma/dev.db b/server/prisma/dev.db index 147078e4470a742d9ddb15574485c605db41b361..939d7a006dda15aa648ecb9211a4707a2d49b025 100644 GIT binary patch literal 106496 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⋘qn^Zl!H7s1_ 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 #Kwt75@;qZL%5nGnCO`L5I1PQ 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 diff --git a/server/prisma/migrations/20251216135012_add_saved_messages/migration.sql b/server/prisma/migrations/20251216135012_add_saved_messages/migration.sql new file mode 100644 index 0000000..b278e2e --- /dev/null +++ b/server/prisma/migrations/20251216135012_add_saved_messages/migration.sql @@ -0,0 +1,9 @@ +-- CreateTable +CREATE TABLE "SavedMessage" ( + "id" TEXT NOT NULL PRIMARY KEY, + "userId" TEXT NOT NULL, + "content" TEXT NOT NULL, + "role" TEXT NOT NULL DEFAULT 'model', + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT "SavedMessage_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE +); diff --git a/server/prisma/schema.prisma b/server/prisma/schema.prisma index 52f75e2..7fad9c9 100644 --- a/server/prisma/schema.prisma +++ b/server/prisma/schema.prisma @@ -24,6 +24,16 @@ model User { exercises Exercise[] plans WorkoutPlan[] weightRecords BodyWeightRecord[] + savedMessages SavedMessage[] +} + +model SavedMessage { + id String @id @default(uuid()) + userId String + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + content String + role String @default("model") + createdAt DateTime @default(now()) } model BodyWeightRecord { diff --git a/server/prod.db b/server/prod.db index 05771a2d420ba2a9fb2fa298b92cfd972b6557c9..a45f0c2a93e432408e88ef57def909e4cc8b78a6 100644 GIT binary patch delta 249 zcmZoTz}nEjHbGjDmw|yn0*GONXQGZVD=&jyRY7CQ))dCM^73r&8F*NA8Tb$L+~irp z^_%Mm$5M_Q4pH_zw(qREY}+;q3h=TzHM5DZi>s{KA6ny{y diff --git a/server/src/controllers/bookmarks.controller.ts b/server/src/controllers/bookmarks.controller.ts new file mode 100644 index 0000000..da2dd30 --- /dev/null +++ b/server/src/controllers/bookmarks.controller.ts @@ -0,0 +1,79 @@ +import { Request, Response } from 'express'; +import prisma from '../lib/prisma'; + +export class BookmarksController { + static async getAll(req: Request, res: Response) { + try { + const userId = (req as any).user?.userId; + if (!userId) { + return res.status(401).json({ success: false, error: 'Unauthorized' }); + } + + const messages = await prisma.savedMessage.findMany({ + where: { userId }, + orderBy: { createdAt: 'desc' }, + }); + + return res.json({ success: true, data: messages }); + } catch (error) { + console.error('Failed to get bookmarks:', error); + return res.status(500).json({ success: false, error: 'Internal server error' }); + } + } + + static async create(req: Request, res: Response) { + try { + const userId = (req as any).user?.userId; + if (!userId) { + return res.status(401).json({ success: false, error: 'Unauthorized' }); + } + + const { content, role } = req.body; + if (!content) { + return res.status(400).json({ success: false, error: 'Content is required' }); + } + + const message = await prisma.savedMessage.create({ + data: { + userId, + content, + role: role || 'model', + }, + }); + + return res.json({ success: true, data: message }); + } catch (error) { + console.error('Failed to create bookmark:', error); + return res.status(500).json({ success: false, error: 'Internal server error' }); + } + } + + static async delete(req: Request, res: Response) { + try { + const userId = (req as any).user?.userId; + if (!userId) { + return res.status(401).json({ success: false, error: 'Unauthorized' }); + } + + const { id } = req.params; + + // Verify ownership + const existing = await prisma.savedMessage.findFirst({ + where: { id, userId }, + }); + + if (!existing) { + return res.status(404).json({ success: false, error: 'Bookmark not found' }); + } + + await prisma.savedMessage.delete({ + where: { id }, + }); + + return res.json({ success: true }); + } catch (error) { + console.error('Failed to delete bookmark:', error); + return res.status(500).json({ success: false, error: 'Internal server error' }); + } + } +} diff --git a/server/src/index.ts b/server/src/index.ts index 25df378..d2eaf5b 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -11,6 +11,7 @@ import sessionRoutes from './routes/sessions'; import planRoutes from './routes/plans'; import aiRoutes from './routes/ai'; import weightRoutes from './routes/weight'; +import bookmarksRoutes from './routes/bookmarks'; import bcrypt from 'bcryptjs'; import { PrismaClient } from '@prisma/client'; @@ -88,6 +89,7 @@ app.use('/api/sessions', sessionRoutes); app.use('/api/plans', planRoutes); app.use('/api/ai', aiRoutes); app.use('/api/weight', weightRoutes); +app.use('/api/bookmarks', bookmarksRoutes); app.get('/', (req, res) => { diff --git a/server/src/routes/bookmarks.ts b/server/src/routes/bookmarks.ts new file mode 100644 index 0000000..d0954dd --- /dev/null +++ b/server/src/routes/bookmarks.ts @@ -0,0 +1,13 @@ +import express from 'express'; +import { BookmarksController } from '../controllers/bookmarks.controller'; +import { authenticateToken } from '../middleware/auth'; + +const router = express.Router(); + +router.use(authenticateToken); + +router.get('/', BookmarksController.getAll); +router.post('/', BookmarksController.create); +router.delete('/:id', BookmarksController.delete); + +export default router; diff --git a/server/test.db b/server/test.db index f752d407cfe04856d35f928c39545797044be3e8..29ea0d85b34a64d581b789e3781588fdf50fa06c 100644 GIT binary patch literal 192512 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 delta 2527 zcma)8UuYaf9NxX$CHHqHDUDQ$WLwUfQYXyr&g{;F&{zmhN{bIh#99iz^+6B`MG$8$7qKt82YbiN{r1~$ zzWsiGmhYFAZ{}9Ek8C##;|X*cl^6Yo9xN?ZbiCYUk6%<9NjYON$^mKmEpIfmsz;NLHq+#fo~22`(Gp zvWB<_vNf|%ORl`~;$!j2T627x4$YTs1AGW<>mzGN<=slIe4%WwI(EK%-JUn^4{R&y z80&^&1hDl0oCDXa8{lP7QhYzNx+_;QyR+j1H8Z*UsA>*%ub$1oWO==s%k?(*ELP2I zci;!JA2j=WHJ8y$yPr1A4XVblVSs6cMu79yUb9%M9WYFzHv3eJy(sjg1Bu`i;#hbv z@~H;}B>asluO(L{E3a~Gkqi%L01hMNY1WY-U zoDrW360wjc@Ryxi=8o+Zj_jOM5}K+IA${XQXV{@~m9o^_FbeXHLomX`gPkTJ>mN+U=%&Dy%o!>ax|3Y_#g_ z*Cy=!P2OqQ%|^0(Z*+Woz8<&hjT5`=(juFACvEq_yfzVv94c;RgZ462&m& z(uXc*7*R#m5ByYowZ21#IzyZKq5xsfHcRD89*x#OK&pKri~auO5J=dLax#DOe~LWo&F zmFvRD$8joLt#1}~vVB~KaV0NN7K>wFp?S)`GSDwCWNzdM!jVXYtMpAi{;PD*4FiRU zrQ+zQuaGfiFiKRJql~&TcGV&kpf+x1s-4k93k4J7fH(>qGC^G>ER&j}ge(X`f*ek{ zms;4P$J?fc&8z(NIddI9fIbRTJ`k!9J6~g$ z*Q~v&Jz-D+Yu2cB!dg+K_>anxZboV9Mp*}@DFh`Qm?pD}I&djXt`>A;n&iv(NT$f9 zAswjGW9k3$V^Bw?F?_GBr*Uv^DA;sn = ({ lang }) => { const { currentUser } = useAuth(); const { sessions: history, plans } = useSession(); const userProfile = currentUser?.profile; + const userId = currentUser?.id; + + // Load initial messages from local storage + const [messages, setMessages] = useState(() => { + if (!userId) return []; + const saved = localStorage.getItem(`${STORAGE_KEY_PREFIX}${userId}`); + if (saved) { + try { + return JSON.parse(saved); + } catch (e) { + console.error("Failed to parse saved chat history", e); + } + } + return [{ id: 'intro', role: 'model', text: t('ai_intro', lang), timestamp: Date.now() }]; + }); - const [messages, setMessages] = useState([ - { id: 'intro', role: 'model', text: t('ai_intro', lang) } - ]); const [input, setInput] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); - const chatSessionRef = useRef(null); + const [showSavedMessages, setShowSavedMessages] = useState(false); + const [savedMessages, setSavedMessages] = useState([]); + const [snackbar, setSnackbar] = useState<{ open: boolean, message: string }>({ open: false, message: '' }); + + const chatSessionRef = useRef(null); // Type 'Chat' is hard to import perfectly here without errors if not careful const messagesEndRef = useRef(null); + // Sync with local storage + useEffect(() => { + if (userId) { + localStorage.setItem(`${STORAGE_KEY_PREFIX}${userId}`, JSON.stringify(messages)); + } + }, [messages, userId]); + + // Load bookmarks on mount to sync status + useEffect(() => { + if (!userId) return; + const loadBookmarks = async () => { + try { + const bookmarks = await getBookmarks(); + setSavedMessages(bookmarks); + // Update bookmarked status in local messages + setMessages(prev => prev.map(msg => { + const found = bookmarks.find(b => b.content === msg.text); + if (found) { + return { ...msg, isBookmarked: true, savedMessageId: found.id }; + } + return msg; + })); + } catch (e: any) { + if (e.message !== 'Unauthorized') { + console.warn("Failed to load bookmarks:", e); + } + } + }; + loadBookmarks(); + }, [userId, showSavedMessages]); + useEffect(() => { try { const chat = createFitnessChat(history, lang, userProfile, plans); if (chat) { chatSessionRef.current = chat; + // Restore history context + // Note: Gemini SDK doesn't easily allow "restoring" state without re-sending history + // This is a simplification; for full context restoration we'd need to rebuild history + // For now, we start fresh session context but display old UI messages } else { setError(t('ai_error', lang)); } @@ -57,7 +118,7 @@ const AICoach: React.FC = ({ lang }) => { const handleSend = async () => { if (!input.trim() || !chatSessionRef.current || loading) return; - const userMsg: Message = { id: generateId(), role: 'user', text: input }; + const userMsg: Message = { id: generateId(), role: 'user', text: input, timestamp: Date.now() }; setMessages(prev => [...prev, userMsg]); setInput(''); setLoading(true); @@ -69,27 +130,42 @@ const AICoach: React.FC = ({ lang }) => { const aiMsg: Message = { id: generateId(), role: 'model', - text: text || "Error generating response." + text: text || "Error generating response.", + timestamp: Date.now() }; setMessages(prev => [...prev, aiMsg]); } catch (err) { console.error(err); let errorText = 'Connection error.'; if (err instanceof Error) { - try { - const json = JSON.parse(err.message); - if (json.error) errorText = json.error; - else errorText = err.message; - } catch { - errorText = err.message; - } + errorText = err.message; } - setMessages(prev => [...prev, { id: generateId(), role: 'model', text: errorText }]); + setMessages(prev => [...prev, { id: generateId(), role: 'model', text: errorText, timestamp: Date.now() }]); } finally { setLoading(false); } }; + const toggleBookmark = async (msg: Message) => { + if (msg.role !== 'model') return; + + if (msg.isBookmarked && msg.savedMessageId) { + // Unbookmark + const success = await deleteBookmark(msg.savedMessageId); + if (success) { + setMessages(prev => prev.map(m => m.id === msg.id ? { ...m, isBookmarked: false, savedMessageId: undefined } : m)); + setSnackbar({ open: true, message: 'Bookmark removed' }); + } + } else { + // Bookmark + const newBookmark = await createBookmark(msg.text, msg.role); + if (newBookmark) { + setMessages(prev => prev.map(m => m.id === msg.id ? { ...m, isBookmarked: true, savedMessageId: newBookmark.id } : m)); + setSnackbar({ open: true, message: 'Message saved' }); + } + } + }; + if (error) { return (
@@ -101,23 +177,46 @@ const AICoach: React.FC = ({ lang }) => { return (
- {/* Header */} -
-
- -
-

{t('ai_expert', lang)}

-
+ setShowSavedMessages(true)} + className="p-2 text-on-surface hover:bg-surface-container-high rounded-full transition-colors" + title="Saved Messages" + > + + + } + /> {/* Messages */}
{messages.map((msg) => (
-
- {msg.text} +
+
+
+ + {msg.text} + +
+
+ + {/* Bookmark Action */} + {msg.role === 'model' && ( + + )}
))} @@ -152,6 +251,21 @@ const AICoach: React.FC = ({ lang }) => {
+ + setShowSavedMessages(false)} + onUnbookmark={(id) => { + setMessages(prev => prev.map(m => m.savedMessageId === id ? { ...m, isBookmarked: false, savedMessageId: undefined } : m)); + }} + /> + + setSnackbar({ ...snackbar, open: false })} + type="success" + />
); }; diff --git a/src/components/History.tsx b/src/components/History.tsx index f235883..602efc9 100644 --- a/src/components/History.tsx +++ b/src/components/History.tsx @@ -1,5 +1,7 @@ + import React, { useState } from 'react'; -import { Calendar, Clock, TrendingUp, Gauge, Pencil, Trash2, X, Save, ArrowRight, ArrowUp, Timer, Activity, Dumbbell, Percent } from 'lucide-react'; +import { Trash2, Calendar, Clock, ChevronDown, ChevronUp, History as HistoryIcon, Dumbbell, Ruler, Timer, Weight, Edit2, Gauge, Pencil, Save } from 'lucide-react'; +import { TopBar } from './ui/TopBar'; import { WorkoutSession, ExerciseType, WorkoutSet, Language } from '../types'; import { t } from '../services/i18n'; import { formatSetMetrics } from '../utils/setFormatting'; @@ -84,7 +86,7 @@ const History: React.FC = ({ lang }) => { const formatDateForInput = (timestamp: number) => { const d = new Date(timestamp); - const pad = (n: number) => n < 10 ? '0' + n : n; + const pad = (n: number) => (n < 10 ? '0' + n : n); return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}`; }; @@ -170,10 +172,7 @@ const History: React.FC = ({ lang }) => { return (
-
-

{t('tab_history', lang)}

-
- +
{/* Regular Workout Sessions */} diff --git a/src/components/Plans.tsx b/src/components/Plans.tsx index f7f8ab1..19115db 100644 --- a/src/components/Plans.tsx +++ b/src/components/Plans.tsx @@ -1,6 +1,7 @@ import React, { useState, useEffect } from 'react'; import { useSearchParams } from 'react-router-dom'; -import { Plus, Trash2, PlayCircle, Dumbbell, Save, X, List, ArrowUp, Pencil, User, Flame, Timer as TimerIcon, Ruler, Footprints, Percent, CheckCircle, GripVertical, Bot, Loader2 } from 'lucide-react'; +import { Plus, Trash2, PlayCircle, Dumbbell, Save, X, List, ArrowUp, Pencil, User, Flame, Timer as TimerIcon, Ruler, Footprints, Percent, CheckCircle, GripVertical, Bot, Loader2, ClipboardList } from 'lucide-react'; +import { TopBar } from './ui/TopBar'; import { DndContext, closestCenter, @@ -517,20 +518,24 @@ const Plans: React.FC = ({ lang }) => { if (isEditing) { return (
-
- -

{t('plan_editor', lang)}

- -
+ + + +
+ } + />
= ({ lang }) => { return (
-
-

{t('my_plans', lang)}

-
+
{plans.length === 0 ? ( diff --git a/src/components/Profile.tsx b/src/components/Profile.tsx index ff16667..0916022 100644 --- a/src/components/Profile.tsx +++ b/src/components/Profile.tsx @@ -11,6 +11,8 @@ import { t } from '../services/i18n'; import Snackbar from './Snackbar'; import { Button } from './ui/Button'; import { Card } from './ui/Card'; +import { TopBar } from './ui/TopBar'; + import { Modal } from './ui/Modal'; import { SideSheet } from './ui/SideSheet'; import { Checkbox } from './ui/Checkbox'; @@ -267,15 +269,15 @@ const Profile: React.FC = ({ user, onLogout, lang, onLanguageChang return (
-
-

- - {t('profile_title', lang)} -

- -
+ + {t('logout', lang)} + + } + />
diff --git a/src/components/SavedMessagesSheet.tsx b/src/components/SavedMessagesSheet.tsx new file mode 100644 index 0000000..7b352f1 --- /dev/null +++ b/src/components/SavedMessagesSheet.tsx @@ -0,0 +1,114 @@ +import React, { useEffect, useState } from 'react'; +import { SideSheet } from './ui/SideSheet'; +import { SavedMessage, getBookmarks, deleteBookmark } from '../services/bookmarks'; +import { Trash2, AlertCircle, BookmarkX, Loader2 } from 'lucide-react'; +import ReactMarkdown from 'react-markdown'; +import remarkGfm from 'remark-gfm'; + +interface SavedMessagesSheetProps { + isOpen: boolean; + onClose: () => void; + onUnbookmark?: (id: string) => void; +} + +const SavedMessagesSheet: React.FC = ({ isOpen, onClose, onUnbookmark }) => { + const [bookmarks, setBookmarks] = useState([]); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const fetchBookmarks = async () => { + setLoading(true); + setError(null); + try { + const data = await getBookmarks(); + setBookmarks(data); + } catch (err: any) { + if (err.message !== 'Unauthorized') { + console.warn("Failed to fetch bookmarks:", err); + } + // Fallback to empty if API fails + setBookmarks([]); + } finally { + setLoading(false); + } + }; + + useEffect(() => { + if (isOpen) { + fetchBookmarks(); + } + }, [isOpen]); + + const handleDelete = async (id: string, e: React.MouseEvent) => { + e.stopPropagation(); + try { + const success = await deleteBookmark(id); + if (success) { + setBookmarks(prev => prev.filter(b => b.id !== id)); + if (onUnbookmark) { + onUnbookmark(id); + } + } else { + // Optimistic update fallback + setBookmarks(prev => prev.filter(b => b.id !== id)); + if (onUnbookmark) { + onUnbookmark(id); + } + } + } catch (error) { + console.error("Delete failed", error); + } + }; + + return ( + +
+ {loading ? ( +
+ +

Loading...

+
+ ) : error ? ( +
+ +

{error}

+
+ ) : bookmarks.length === 0 ? ( +
+ +

No saved messages yet.

+
+ ) : ( +
+ {bookmarks.map((msg) => ( +
+
+ + {msg.content} + +
+
+ {new Date(msg.createdAt).toLocaleDateString()} + +
+
+ ))} +
+ )} +
+
+ ); +}; + +export default SavedMessagesSheet; diff --git a/src/components/Stats.tsx b/src/components/Stats.tsx index 9453198..192b844 100644 --- a/src/components/Stats.tsx +++ b/src/components/Stats.tsx @@ -4,6 +4,8 @@ import { getWeightHistory } from '../services/weight'; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, BarChart, Bar } from 'recharts'; import { t } from '../services/i18n'; import { useSession } from '../context/SessionContext'; +import { TopBar } from './ui/TopBar'; +import { BarChart2 } from 'lucide-react'; interface StatsProps { lang: Language; @@ -112,89 +114,91 @@ const Stats: React.FC = ({ lang }) => { } return ( -
-

{t('progress', lang)}

+
+ - {/* Volume Chart */} -
-
-
-

{t('volume_title', lang)}

-

{t('volume_subtitle', lang)}

+
+ {/* Volume Chart */} +
+
+
+

{t('volume_title', lang)}

+

{t('volume_subtitle', lang)}

+
+
+
+ + + + + `${(val / 1000).toFixed(1)}k`} /> + [`${val.toLocaleString()} kg`, t('volume_title', lang)]} + /> + + +
-
- - - - - `${(val / 1000).toFixed(1)}k`} /> - [`${val.toLocaleString()} kg`, t('volume_title', lang)]} - /> - - - -
-
- {/* Sessions Count Chart */} -
-

{t('sessions_count_title', lang)}

-
- - - - - - - - - + {/* Sessions Count Chart */} +
+

{t('sessions_count_title', lang)}

+
+ + + + + + + + + +
-
- {/* Sets Chart */} -
-

{t('sets_title', lang)}

-
- - - - - - - - - + {/* Sets Chart */} +
+

{t('sets_title', lang)}

+
+ + + + + + + + + +
-
- {/* Body Weight Chart */} -
-

{t('weight_title', lang)}

-
- - - - - - [`${val} kg`, t('weight_kg', lang)]} - /> - - - + {/* Body Weight Chart */} +
+

{t('weight_title', lang)}

+
+ + + + + + [`${val} kg`, t('weight_kg', lang)]} + /> + + + +
diff --git a/src/components/Tracker/IdleView.tsx b/src/components/Tracker/IdleView.tsx index 4d764d4..e5c3cbf 100644 --- a/src/components/Tracker/IdleView.tsx +++ b/src/components/Tracker/IdleView.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Dumbbell, User, PlayCircle, Plus, ArrowRight } from 'lucide-react'; +import { TopBar } from '../ui/TopBar'; import { Language } from '../../types'; import { t } from '../../services/i18n'; import { useTracker } from './useTracker'; @@ -77,110 +78,113 @@ const IdleView: React.FC = ({ tracker, lang }) => { const content = getDaysOffContent(); return ( -
-
-
-
- -
-
-

{content.title}

-

{content.subtitle}

-
-
- -
- -
- setUserBodyWeight(e.target.value)} - /> -
-

{t('change_in_profile', lang)}

-
- -
- - - -
- - {plans.length > 0 ? ( -
-

{t('or_choose_plan', lang)}

-
- {plans.map(plan => ( - - ))} +
+ +
+
+
+
+ +
+
+

{content.title}

+

{content.subtitle}

- ) : ( -
-

{t('no_plans_yet', lang)}

-
- - {t('ask_ai_to_create', lang)} - - - {t('create_manually', lang)} - + +
+ +
+ setUserBodyWeight(e.target.value)} + /> +
+

{t('change_in_profile', lang)}

+
+ +
+ + + +
+ + {plans.length > 0 ? ( +
+

{t('or_choose_plan', lang)}

+
+ {plans.map(plan => ( + + ))} +
+
+ ) : ( +
+ )} +
+ + {showPlanPrep && ( +
+
+

{showPlanPrep.name}

+
+
{t('prep_title', lang)}
+ {showPlanPrep.description || t('prep_no_instructions', lang)} +
+
+ + +
)}
- - {showPlanPrep && ( -
-
-

{showPlanPrep.name}

-
-
{t('prep_title', lang)}
- {showPlanPrep.description || t('prep_no_instructions', lang)} -
-
- - -
-
-
- )}
); }; diff --git a/src/components/ui/TopBar.tsx b/src/components/ui/TopBar.tsx new file mode 100644 index 0000000..f0493ce --- /dev/null +++ b/src/components/ui/TopBar.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { LucideIcon } from 'lucide-react'; + +interface TopBarProps { + title: string; + icon?: LucideIcon; + actions?: React.ReactNode; +} + +export const TopBar: React.FC = ({ title, icon: Icon, actions }) => { + return ( +
+ {Icon && ( +
+ +
+ )} +

{title}

+ {actions &&
{actions}
} +
+ ); +}; diff --git a/src/services/api.ts b/src/services/api.ts index cbd3466..9ce9fdc 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -12,11 +12,30 @@ const headers = () => { }; }; +const handleResponse = async (res: Response) => { + if (res.status === 401) { + removeAuthToken(); + if (window.location.pathname !== '/login') { + window.location.href = '/login'; + } + throw new Error('Unauthorized'); + } + if (!res.ok) { + const text = await res.text(); + try { + const json = JSON.parse(text); + throw new Error(json.message || json.error || text); + } catch { + throw new Error(text); + } + } + return res.json(); +}; + export const api = { get: async (endpoint: string): Promise => { const res = await fetch(`${API_URL}${endpoint}`, { headers: headers() }); - if (!res.ok) throw new Error(await res.text()); - return res.json(); + return handleResponse(res); }, post: async (endpoint: string, data: any): Promise => { const res = await fetch(`${API_URL}${endpoint}`, { @@ -24,8 +43,7 @@ export const api = { headers: headers(), body: JSON.stringify(data) }); - if (!res.ok) throw new Error(await res.text()); - return res.json(); + return handleResponse(res); }, put: async (endpoint: string, data: any): Promise => { const res = await fetch(`${API_URL}${endpoint}`, { @@ -33,16 +51,14 @@ export const api = { headers: headers(), body: JSON.stringify(data) }); - if (!res.ok) throw new Error(await res.text()); - return res.json(); + return handleResponse(res); }, delete: async (endpoint: string): Promise => { const res = await fetch(`${API_URL}${endpoint}`, { method: 'DELETE', headers: headers() }); - if (!res.ok) throw new Error(await res.text()); - return res.json(); + return handleResponse(res); }, patch: async (endpoint: string, data: any): Promise => { const res = await fetch(`${API_URL}${endpoint}`, { @@ -50,7 +66,6 @@ export const api = { headers: headers(), body: JSON.stringify(data) }); - if (!res.ok) throw new Error(await res.text()); - return res.json(); + return handleResponse(res); } }; diff --git a/src/services/bookmarks.ts b/src/services/bookmarks.ts new file mode 100644 index 0000000..c901267 --- /dev/null +++ b/src/services/bookmarks.ts @@ -0,0 +1,44 @@ +import { api } from './api'; + +export interface SavedMessage { + id: string; + content: string; + role: string; + createdAt: string; +} + +interface ApiResponse { + success: boolean; + data: T; + error?: string; +} + +export const getBookmarks = async (): Promise => { + try { + const res = await api.get>('/bookmarks'); + return res.data || []; + } catch (e) { + console.error('Failed to fetch bookmarks:', e); + return []; + } +}; + +export const createBookmark = async (content: string, role: string = 'model'): Promise => { + try { + const res = await api.post>('/bookmarks', { content, role }); + return res.data || null; + } catch (e) { + console.error('Failed to create bookmark:', e); + return null; + } +}; + +export const deleteBookmark = async (id: string): Promise => { + try { + await api.delete(`/bookmarks/${id}`); + return true; + } catch (e) { + console.error('Failed to delete bookmark:', e); + return false; + } +}; diff --git a/tests/ai-coach.spec.ts b/tests/ai-coach.spec.ts new file mode 100644 index 0000000..e1563ec --- /dev/null +++ b/tests/ai-coach.spec.ts @@ -0,0 +1,92 @@ + +import { test, expect } from './fixtures'; + +test.describe('VII. AI Coach Features', () => { + + test.beforeEach(async ({ page }) => { + await page.goto('/'); + }); + + // Helper to handle first login if needed (copied from core-auth) + async function handleFirstLogin(page: any) { + try { + const heading = page.getByRole('heading', { name: /Change Password/i }); + const dashboard = page.getByText('Free Workout'); + + await expect(heading).toBeVisible({ timeout: 5000 }); + await page.getByLabel('New Password').fill('StrongNewPass123!'); + await page.getByRole('button', { name: /Save|Change/i }).click(); + await expect(dashboard).toBeVisible(); + } catch (e) { + if (await page.getByText('Free Workout').isVisible()) return; + } + } + + test('7.1 AI Coach - Basic Conversation & Markdown', async ({ page, createUniqueUser }) => { + const user = await createUniqueUser(); + // Login + await page.getByLabel('Email').fill(user.email); + await page.getByLabel('Password').fill(user.password); + await page.getByRole('button', { name: 'Login' }).click(); + await handleFirstLogin(page); + + // Navigate to AI Coach + await page.getByText('AI Coach').click(); + + // Type message + const input = page.getByPlaceholder(/Ask your AI coach/i); + await input.fill('How to do a pushup?'); + await page.getByRole('button', { name: /Send/i }).click(); + + // Verify response (Mocked or Real - expecting Real from previous context) + // Since we can't easily mock backend without more setup, we wait for *any* response + await expect(page.locator('.prose')).toBeVisible({ timeout: 15000 }); + + // Check for markdown rendering (e.g., strong tags or list items if AI returns them) + // This is a bit flaky with real AI, but checking for visibility is a good start. + }); + + test('7.2, 7.3, 7.4 AI Coach - Bookmark Flow', async ({ page, createUniqueUser }) => { + const user = await createUniqueUser(); + // Login + await page.getByLabel('Email').fill(user.email); + await page.getByLabel('Password').fill(user.password); + await page.getByRole('button', { name: 'Login' }).click(); + await handleFirstLogin(page); + + await page.getByText('AI Coach').click(); + + // Send message + await page.getByPlaceholder(/Ask your AI coach/i).fill('Tell me a short fitness tip'); + await page.getByRole('button', { name: /Send/i }).click(); + + // Wait for response bubble + const responseBubble = page.locator('.prose').first(); + await expect(responseBubble).toBeVisible({ timeout: 15000 }); + + // 7.2 Bookmark + // Find bookmark button within the message container. + // Assuming the layout puts actions near the message. + // We look for the Bookmark icon button. + const bookmarkBtn = page.getByRole('button', { name: /Bookmark/i }).first(); + await bookmarkBtn.click(); + + // Expect success snackbar + await expect(page.getByText(/Message saved/i)).toBeVisible(); + + // 7.3 View Saved + await page.getByRole('button', { name: /Saved/i }).click(); // The TopBar action + await expect(page.getByText('Saved Messages')).toBeVisible(); // Sheet title + + // Verify content is there + await expect(page.getByText(/fitness tip/i)).toBeVisible(); // Part of our prompt/response context usually + + // 7.4 Delete Bookmark + const deleteBtn = page.getByRole('button', { name: /Delete/i }).first(); + await deleteBtn.click(); + + // Verify removal + await expect(deleteBtn).not.toBeVisible(); + }); + +}); diff --git a/tests/repro_edit_fields.spec.ts b/tests/repro_edit_fields.spec.ts new file mode 100644 index 0000000..fae7e66 --- /dev/null +++ b/tests/repro_edit_fields.spec.ts @@ -0,0 +1,136 @@ +import { test, expect } from './fixtures'; + +test.describe('Reproduction - Edit Modal Fields', () => { + + test('Verify Edit Fields for different Exercise Types', async ({ page, createUniqueUser, request }) => { + const user = await createUniqueUser(); + // Login + await page.goto('/'); + await page.getByLabel('Email').fill(user.email); + await page.getByLabel('Password').fill(user.password); + await page.getByRole('button', { name: 'Login' }).click(); + + // Wait for dashboard or password change + try { + const heading = page.getByRole('heading', { name: /Change Password/i }); + const dashboard = page.getByText('Free Workout'); + await expect(heading.or(dashboard)).toBeVisible({ timeout: 10000 }); + if (await heading.isVisible()) { + await page.getByLabel('New Password').fill('StrongNewPass123!'); + await page.getByRole('button', { name: /Save|Change/i }).click(); + await expect(dashboard).toBeVisible(); + } + } catch (e) { + console.log('Login flow exception (might be benign if already logged in):', e); + } + + // Seed exercises of different types + const types = [ + { type: 'PLYOMETRIC', name: 'Plyo Test', expectedFields: ['Reps'] }, + { type: 'STRENGTH', name: 'Strength Test', expectedFields: ['Weight', 'Reps'] }, + { type: 'CARDIO', name: 'Cardio Test', expectedFields: ['Time', 'Distance'] }, + { type: 'STATIC', name: 'Static Test', expectedFields: ['Time', 'Weight', 'Body Weight'] }, // Check if Weight is expected based on History.tsx analysis + { type: 'BODYWEIGHT', name: 'Bodyweight Test', expectedFields: ['Reps', 'Body Weight', 'Weight'] }, + { type: 'HIGH_JUMP', name: 'High Jump Test', expectedFields: ['Height'] }, + { type: 'LONG_JUMP', name: 'Long Jump Test', expectedFields: ['Distance'] }, + ]; + + const exIds: Record = {}; + + for (const t of types) { + const resp = await request.post('/api/exercises', { + data: { name: t.name, type: t.type }, + headers: { 'Authorization': `Bearer ${user.token}` } + }); + expect(resp.ok()).toBeTruthy(); + const created = await resp.json(); + // Adjust if the response structure is different (e.g. created.exercise) + exIds[t.name] = created.id || created.exercise?.id || created.data?.id; + } + + await page.reload(); + + // Construct a session payload + const now = Date.now(); + const setsStub = types.map(t => { + const set: any = { + exerciseId: exIds[t.name], + timestamp: now + 1000, + completed: true + }; + if (t.type === 'STRENGTH' || t.type === 'BODYWEIGHT' || t.type === 'PLYOMETRIC') set.reps = 10; + if (t.type === 'STRENGTH' || t.type === 'BODYWEIGHT' || t.type === 'STATIC') set.weight = 50; + if (t.type === 'BODYWEIGHT' || t.type === 'STATIC') set.bodyWeightPercentage = 100; + if (t.type === 'CARDIO' || t.type === 'STATIC') set.durationSeconds = 60; + if (t.type === 'CARDIO' || t.type === 'LONG_JUMP') set.distanceMeters = 100; + if (t.type === 'HIGH_JUMP') set.height = 150; + return set; + }); + + + + const sessionResp = await request.post('/api/sessions', { + data: { + startTime: now, + endTime: now + 3600000, + type: 'STANDARD', // History shows STANDARD sessions differently than QUICK_LOG + sets: setsStub + }, + headers: { 'Authorization': `Bearer ${user.token}` } + }); + if (!sessionResp.ok()) { + console.log('Session Create Error:', await sessionResp.text()); + } + expect(sessionResp.ok()).toBeTruthy(); + + // Go to History + await page.getByRole('button', { name: 'History' }).first().click(); + + // Find the session card and click Edit (Pencil icon) + // There should be only one session + await page.locator('.lucide-pencil').first().click(); + + await expect(page.getByText('Edit', { exact: true })).toBeVisible(); + + // Now verify fields for each exercise in the modal + for (const t of types) { + const exRow = page.locator('div').filter({ hasText: t.name }).last(); // Find the row for this exercise + // This locator might be tricky if the row structure is complex. + // In History.tsx: + // {editingSession.sets.map((set, idx) => ( + //
+ // ... {set.exerciseName} ... + //
inputs here
+ //
+ // ))} + + // So we find the container that has the exercise name, then look for inputs inside it. + const row = page.locator('.bg-surface-container-low').filter({ hasText: t.name }).first(); + await expect(row).toBeVisible(); + + console.log(`Checking fields for ${t.type} (${t.name})...`); + + for (const field of t.expectedFields) { + // Map field name to label text actually used in History.tsx + // t('weight_kg', lang) -> "Weight" (assuming en) + // t('reps', lang) -> "Reps" + // t('time_sec', lang) -> "Time" + // t('dist_m', lang) -> "Distance" + // t('height_cm', lang) -> "Height" + // t('body_weight_percent', lang) -> "Body Weight %" + + let labelPattern: RegExp; + if (field === 'Weight') labelPattern = /Weight/i; + else if (field === 'Reps') labelPattern = /Reps/i; + else if (field === 'Time') labelPattern = /Time/i; + else if (field === 'Distance') labelPattern = /Distance|Dist/i; + else if (field === 'Height') labelPattern = /Height/i; + else if (field === 'Body Weight') labelPattern = /Body Weight/i; + else labelPattern = new RegExp(field, 'i'); + + await expect(row.getByLabel(labelPattern).first()).toBeVisible({ timeout: 2000 }) + .catch(() => { throw new Error(`Missing field '${field}' for type '${t.type}'`); }); + } + } + }); +});