diff --git a/.vscode/settings.json b/.vscode/settings.json index fae165739..a41a7f454 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -36,6 +36,7 @@ "dopplerhq", "EASS", "EHRC", + "estree", "estruyf", "fkey", "fontsource", @@ -105,6 +106,7 @@ "Sedar", "slidedeck", "sslmode", + "SUBJ", "superjson", "tailwindcss", "tanstack", diff --git a/apps/nextjs/src/ai-apps/lesson-planner/state/actions.ts b/apps/nextjs/src/ai-apps/lesson-planner/state/actions.ts index 6a18119b7..d237bb22e 100644 --- a/apps/nextjs/src/ai-apps/lesson-planner/state/actions.ts +++ b/apps/nextjs/src/ai-apps/lesson-planner/state/actions.ts @@ -21,36 +21,36 @@ import { * which isn't very useful */ -const enum LessonPlannerAppActions { - CreateSession = "CREATE_SESSION", - Begin = "BEGIN", +enum LessonPlannerAppActions { + AddKeyLearningPoint = "ADD_KEY_LEARNING_POINT", + AddKeyword = "ADD_KEYWORD", + AddMisconception = "ADD_MISCONCEPTION", BackToEditSubjectAndKS = "BACK_TO_EDIT_SUBJ_KS", + Begin = "BEGIN", + CreateSession = "CREATE_SESSION", + EncounteredNonRecoverableError = "ENCOUNTERED_NON_RECOVERABLE_ERROR", + ExtendedQuiz = "EXTENDED_QUIZ", + GeneratedLessonPlan = "GENERATED_LESSON_PLAN", + RegeneratedKeyLearningPoints = "REGENERATED_KEY_LEARNING_POINTS", + RegeneratedKeywords = "REGENERATED_KEYWORDS", + RegeneratedMisconceptions = "REGENERATED_MISCONCEPTIONS", + RemoveKeyLearningPoint = "REMOVE_KEY_LEARNING_POINT", + RemoveKeyword = "REMOVE_KEYWORD", + RemoveMisconception = "REMOVE_MISCONCEPTION", + RequestReset = "REQUEST_RESET", + RestoreExitQuizFromLocalStorage = "RESTORE_EXIT_QUIZ_FROM_LOCAL_STORAGE", + RestoreSession = "RESTORE_SESSION", + RestoreStarterQuizFromLocalStorage = "RESTORE_STARTER_QUIZ_FROM_LOCAL_STORAGE", SetKeyStage = "SET_KEY_STAGE", + SetLessonTitle = "SET_LESSON_TITLE", SetSubject = "SET_SUBJECT", SetTopic = "SET_TOPIC", - SetLessonTitle = "SET_LESSON_TITLE", + TweakedKeyLearningPoint = "TWEAK_KEY_LEARNING_POINT", + TweakedKeyLearningPoints = "TWEAK_KEY_LEARNING_POINTS", TweakedKeyword = "TWEAK_KEYWORD", TweakedMisconception = "TWEAK_MISCONCEPTION", - TweakedKeyLearningPoints = "TWEAK_KEY_LEARNING_POINTS", - AddKeyword = "ADD_KEYWORD", - RemoveKeyword = "REMOVE_KEYWORD", - RemoveMisconception = "REMOVE_MISCONCEPTION", - AddMisconception = "ADD_MISCONCEPTION", - TweakedKeyLearningPoint = "TWEAK_KEY_LEARNING_POINT", - AddKeyLearningPoint = "ADD_KEY_LEARNING_POINT", - RemoveKeyLearningPoint = "REMOVE_KEY_LEARNING_POINT", UpdateGenerationRateLimit = "UPDATE_GENERATION_RATE_LIMIT", UpdatePartialLessonPlan = "UPDATE_PARTIAL_LESSON_PLAN", - GeneratedLessonPlan = "GENERATED_LESSON_PLAN", - RegeneratedKeyLearningPoints = "REGENERATED_KEY_LEARNING_POINTS", - RegeneratedMisconceptions = "REGENERATED_MISCONCEPTIONS", - RegeneratedKeywords = "REGENERATED_KEYWORDS", - ExtendedQuiz = "EXTENDED_QUIZ", - RestoreStarterQuizFromLocalStorage = "RESTORE_STARTER_QUIZ_FROM_LOCAL_STORAGE", - RestoreExitQuizFromLocalStorage = "RESTORE_EXIT_QUIZ_FROM_LOCAL_STORAGE", - RestoreSession = "RESTORE_SESSION", - RequestReset = "REQUEST_RESET", - EncounteredNonRecoverableError = "ENCOUNTERED_NON_RECOVERABLE_ERROR", } export type LessonPlannerAppAction = diff --git a/packages/eslint-config-custom/package.json b/packages/eslint-config-custom/package.json index 20ffb3c74..678aabdff 100644 --- a/packages/eslint-config-custom/package.json +++ b/packages/eslint-config-custom/package.json @@ -11,8 +11,9 @@ ], "dependencies": { "@rushstack/eslint-patch": "^1.6.1", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", + "@typescript-eslint/typescript-estree": "^7.18.0", "eslint-config-next": "14.0.4", "eslint-config-prettier": "^9.1.0", "eslint-plugin-jest": "^27.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 241ce1c13..1fbe4c2c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -691,11 +691,14 @@ importers: specifier: ^1.6.1 version: 1.7.2 '@typescript-eslint/eslint-plugin': - specifier: ^6.15.0 - version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^7.18.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.15.0 - version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) + specifier: ^7.18.0 + version: 7.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': + specifier: ^7.18.0 + version: 7.18.0(typescript@5.3.3) eslint-config-next: specifier: 14.0.4 version: 14.0.4(eslint@8.56.0)(typescript@5.3.3) @@ -704,7 +707,7 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-plugin-jest: specifier: ^27.6.0 - version: 27.9.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + version: 27.9.0(@typescript-eslint/eslint-plugin@7.18.0)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-react: specifier: ^7.33.2 version: 7.33.2(eslint@8.56.0) @@ -2832,6 +2835,11 @@ packages: eslint: 8.56.0 eslint-visitor-keys: 3.4.3 + /@eslint-community/regexpp@4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: false + /@eslint-community/regexpp@4.6.2: resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -7986,30 +7994,28 @@ packages: dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 - debug: 4.3.4 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 7.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.18.0 eslint: 8.56.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.2(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -8029,12 +8035,33 @@ packages: '@typescript-eslint/types': 6.20.0 '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.20.0 - debug: 4.3.4 + debug: 4.3.5(supports-color@5.5.0) eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color + /@typescript-eslint/parser@7.18.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.5(supports-color@5.5.0) + eslint: 8.56.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8049,21 +8076,29 @@ packages: '@typescript-eslint/types': 6.20.0 '@typescript-eslint/visitor-keys': 6.20.0 - /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/scope-manager@7.18.0: + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + dev: false + + /@typescript-eslint/type-utils@7.18.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.3.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.5(supports-color@5.5.0) eslint: 8.56.0 - ts-api-utils: 1.0.2(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -8077,6 +8112,11 @@ packages: resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/types@7.18.0: + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: false + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8113,11 +8153,33 @@ packages: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.2 - ts-api-utils: 1.0.2(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color + /@typescript-eslint/typescript-estree@7.18.0(typescript@5.3.3): + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.5(supports-color@5.5.0) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8137,20 +8199,17 @@ packages: - supports-color - typescript - /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/utils@7.18.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.13 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.3.3) eslint: 8.56.0 - semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -8170,6 +8229,14 @@ packages: '@typescript-eslint/types': 6.20.0 eslint-visitor-keys: 3.4.3 + /@typescript-eslint/visitor-keys@7.18.0: + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + dev: false + /@uidotdev/usehooks@2.4.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1I+RwWyS+kdv3Mv0Vmc+p0dPYH0DTRAo04HLyXReYBL9AeseDWUJyi4THuksBJcu9F0Pih69Ak150VDnqbVnXg==} engines: {node: '>=16'} @@ -11413,7 +11480,7 @@ packages: - eslint-import-resolver-webpack - supports-color - /eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0)(typescript@5.3.3): + /eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -11426,7 +11493,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 transitivePeerDependencies: @@ -12483,7 +12550,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.2.4 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -13040,6 +13107,10 @@ packages: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} + /ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + /image-size@1.0.2: resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} engines: {node: '>=14.0.0'} @@ -16074,7 +16145,7 @@ packages: resolution: {integrity: sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==} engines: {node: '>= 10.13'} dependencies: - debug: 4.3.4 + debug: 4.3.5(supports-color@5.5.0) json-stringify-safe: 5.0.1 propagate: 2.0.1 transitivePeerDependencies: @@ -19746,9 +19817,9 @@ packages: zod-to-json-schema: 3.23.0(zod@3.23.5) dev: false - /ts-api-utils@1.0.2(typescript@5.3.3): - resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==} - engines: {node: '>=16.13.0'} + /ts-api-utils@1.3.0(typescript@5.3.3): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: