diff --git a/package.json b/package.json index f0f17965..df722ff7 100644 --- a/package.json +++ b/package.json @@ -31,9 +31,9 @@ "@graphql-tools/schema": "^10.0.23", "@ndla/licenses": "^9.0.3", "cheerio": "^1.1.0", - "compression": "^1.7.4", - "dataloader": "^1.4.0", - "dotenv": "^6.2.0", + "compression": "^1.8.0", + "dataloader": "^2.2.3", + "dotenv": "^16.5.0", "express": "^4.21.2", "express-prom-bundle": "^7.0.0", "graphql": "^16.11.0", @@ -42,15 +42,15 @@ "he": "^1.2.0", "lodash": "^4.17.21", "lru-cache": "^7.0.0", - "marked": "^9.1.0", - "node-fetch": "2.6.7", - "open-graph-scraper": "^6.8.3", + "marked": "^15.0.12", + "node-fetch": "2.7.0", + "open-graph-scraper": "^6.10.0", "openapi-fetch": "^0.13.5", "prismjs": "^1.30.0", "prom-client": "^15.1.3", "punycode": "^2.3.1", - "query-string": "^6.2.0", - "sanitize-html": "^2.13.1", + "query-string": "^9.2.1", + "sanitize-html": "^2.17.0", "source-map-support": "^0.5.21", "winston": "^3.13.0" }, @@ -64,29 +64,29 @@ "@ndla/types-backend": "^1.0.55", "@ndla/types-embed": "^5.0.16-alpha.0", "@ndla/types-taxonomy": "^1.0.34", - "@types/compression": "^1.7.2", - "@types/cors": "^2.8.4", - "@types/dotenv": "^6.1.0", + "@types/compression": "^1.8.1", + "@types/cors": "^2.8.19", + "@types/dotenv": "^8.2.3", "@types/express": "^4.17.21", - "@types/graphql": "^14.2.3", - "@types/he": "^1.1.1", - "@types/lodash": "^4.14.118", + "@types/graphql": "^14.5.0", + "@types/he": "^1.2.3", + "@types/lodash": "^4.17.18", "@types/node": "^22.15.0", - "@types/node-fetch": "^2.1.2", + "@types/node-fetch": "^2.6.12", "@types/open-graph-scraper": "^4.8.5", - "@types/prismjs": "^1.26.0", + "@types/prismjs": "^1.26.5", "@types/punycode": "^2.1.4", - "@types/query-string": "^6.1.1", - "@types/sanitize-html": "^2.11.0", + "@types/query-string": "^6.3.0", + "@types/sanitize-html": "^2.16.0", "@types/source-map-support": "^0", "@vercel/ncc": "^0.34.0", "concurrently": "^9.1.0", "eslint": "^9.16.0", "eslint-config-ndla": "^6.0.0-alpha.0", - "prettier": "^3.1.0", - "typescript": "^5.8.2", - "typescript-eslint": "^8.17.0", - "vitest": "^3.2.3" + "prettier": "^3.5.3", + "typescript": "^5.8.3", + "typescript-eslint": "^8.34.1", + "vitest": "^3.2.4" }, "packageManager": "yarn@4.9.2" } diff --git a/src/api/articleApi.ts b/src/api/articleApi.ts index 0b94c9eb..88b49759 100644 --- a/src/api/articleApi.ts +++ b/src/api/articleApi.ts @@ -163,7 +163,10 @@ export async function fetchArticlesPage( .then(resolveJsonOATS); } -export async function fetchArticles(articleIds: string[], context: Context): Promise<(IArticleV2DTO | undefined)[]> { +export async function fetchArticles( + articleIds: readonly string[], + context: Context, +): Promise<(IArticleV2DTO | undefined)[]> { const pageSize = 100; const ids = articleIds.map((id) => parseInt(id)).filter((id) => isNaN(id) === false); const numberOfPages = Math.ceil(ids.length / pageSize); diff --git a/src/api/folderApi.ts b/src/api/folderApi.ts index 6cc9fe4c..49055626 100644 --- a/src/api/folderApi.ts +++ b/src/api/folderApi.ts @@ -6,7 +6,6 @@ * */ -import qs from "query-string"; import { IMyNDLAUserDTO, IFolderDTO, @@ -41,15 +40,6 @@ import { createAuthClient, resolveJsonOATS, resolveOATS } from "../utils/openapi const client = createAuthClient({ disableCache: true }); -interface QueryParamsType { - [key: string]: any; -} - -export const queryString = (params: QueryParamsType) => { - const stringified = qs.stringify(params); - return stringified.length ? `?${stringified}` : ""; -}; - export async function fetchFolders( { includeResources, includeSubfolders }: GQLQueryFoldersArgs, _context: Context, diff --git a/src/api/folderResourceMetaApi.ts b/src/api/folderResourceMetaApi.ts index de4cf6be..67dbe0a7 100644 --- a/src/api/folderResourceMetaApi.ts +++ b/src/api/folderResourceMetaApi.ts @@ -71,7 +71,10 @@ const fetchAndTransformResourceMeta = async ( ]); return ids .map((id) => { - const node = nodes.flatMap((x) => x).find((n) => !!n && n.contentUri === `urn:${nodeType}:${id}`); + const node = nodes + .filter((n): n is Node[] => !!n) + .flatMap((x) => x) + .find((n) => !!n && n.contentUri === `urn:${nodeType}:${id}`); const element = elements.find((e) => e?.id === Number(id)); return element ? { diff --git a/src/api/learningpathApi.ts b/src/api/learningpathApi.ts index 3563e568..b3d024fe 100644 --- a/src/api/learningpathApi.ts +++ b/src/api/learningpathApi.ts @@ -25,14 +25,15 @@ const client = createAuthClient(); const cachelessClient = createAuthClient({ disableCache: true }); export async function fetchLearningpaths( - learningpathIds: number[], + learningpathIds: readonly number[], context: Context, ): Promise> { + const ids = learningpathIds.filter((id) => isNaN(id) === false); const json = await client .GET("/learningpath-api/v2/learningpaths/ids", { params: { query: { - ids: learningpathIds, + ids: ids, language: context.language, fallback: true, }, diff --git a/src/api/taxonomyApi.ts b/src/api/taxonomyApi.ts index d5364b34..40f99763 100644 --- a/src/api/taxonomyApi.ts +++ b/src/api/taxonomyApi.ts @@ -56,7 +56,10 @@ export async function fetchNode( return await resolveJson(response); } -export async function searchNodes(params: { contentUris: string[] }, context: Context): Promise> { +export async function searchNodes( + params: { contentUris: readonly string[] }, + context: Context, +): Promise> { const { contentUris } = params; const query = qs.stringify({ language: context.language, diff --git a/src/resolvers/frontpageResolvers.ts b/src/resolvers/frontpageResolvers.ts index 121a5810..afa2dd1e 100644 --- a/src/resolvers/frontpageResolvers.ts +++ b/src/resolvers/frontpageResolvers.ts @@ -42,7 +42,7 @@ export const resolvers = { return context.loaders.articlesLoader.load(`${menu.articleId}`); }, async hideLevel(menu: IFrontPageDTO | IMenuDTO): Promise { - return "hideLevel" in menu ? menu.hideLevel ?? false : false; + return "hideLevel" in menu ? (menu.hideLevel ?? false) : false; }, }, diff --git a/src/resolvers/subjectResolvers.ts b/src/resolvers/subjectResolvers.ts index 1a32de9c..0b382597 100644 --- a/src/resolvers/subjectResolvers.ts +++ b/src/resolvers/subjectResolvers.ts @@ -100,25 +100,28 @@ export const resolvers = { }, SubjectPage: { async connectedTo(subjectpage: ISubjectPageDTO, _: any, context: ContextWithLoaders): Promise { - return await context.loaders.nodeLoader.loadMany( + const connectedTo = await context.loaders.nodeLoader.loadMany( subjectpage.connectedTo.map((id) => { return { id }; }), ); + return connectedTo.filter((sub): sub is Node => !!sub); }, async buildsOn(subjectpage: ISubjectPageDTO, _: any, context: ContextWithLoaders): Promise { - return await context.loaders.nodeLoader.loadMany( + const buildsOn = await context.loaders.nodeLoader.loadMany( subjectpage.buildsOn.map((id) => { return { id }; }), ); + return buildsOn.filter((sub): sub is Node => !!sub); }, async leadsTo(subjectpage: ISubjectPageDTO, _: any, context: ContextWithLoaders): Promise { - return await context.loaders.nodeLoader.loadMany( + const leadsTo = await context.loaders.nodeLoader.loadMany( subjectpage.leadsTo.map((id) => { return { id }; }), ); + return leadsTo.filter((sub): sub is Node => !!sub); }, }, SubjectPageVisualElement: { diff --git a/src/utils/articleHelpers.ts b/src/utils/articleHelpers.ts index 98e1ac14..e102b465 100644 --- a/src/utils/articleHelpers.ts +++ b/src/utils/articleHelpers.ts @@ -36,12 +36,12 @@ export async function filterMissingArticles !!taxonomyEntity.contentUri); - const learningpathResources = entitiesWithContentUri.filter( - (taxonomyEntity) => taxonomyEntity.contentUri?.includes("urn:learningpath"), + const learningpathResources = entitiesWithContentUri.filter((taxonomyEntity) => + taxonomyEntity.contentUri?.includes("urn:learningpath"), ); - const articleResources = entitiesWithContentUri.filter( - (taxonomyEntity) => taxonomyEntity.contentUri?.includes("urn:article"), + const articleResources = entitiesWithContentUri.filter((taxonomyEntity) => + taxonomyEntity.contentUri?.includes("urn:article"), ); const articles = await context.loaders.articlesLoader.loadMany( diff --git a/yarn.lock b/yarn.lock index 2f68a4eb..cc9b0750 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1059,14 +1059,14 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.7.0": + version: 4.7.0 + resolution: "@eslint-community/eslint-utils@npm:4.7.0" dependencies: - eslint-visitor-keys: "npm:^3.3.0" + eslint-visitor-keys: "npm:^3.4.3" peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10c0/7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e + checksum: 10c0/c0f4f2bd73b7b7a9de74b716a664873d08ab71ab439e51befe77d61915af41a81ecec93b408778b3a7856185244c34c2c8ee28912072ec14def84ba2dec70adf languageName: node linkType: hard @@ -2279,12 +2279,13 @@ __metadata: languageName: node linkType: hard -"@types/compression@npm:^1.7.2": - version: 1.7.2 - resolution: "@types/compression@npm:1.7.2" +"@types/compression@npm:^1.8.1": + version: 1.8.1 + resolution: "@types/compression@npm:1.8.1" dependencies: "@types/express": "npm:*" - checksum: 10c0/1ef9ad65cde187abd386db93c9f962c9415b77b1a81549a88cc6c7b45dac09502363efee0270493ab1541548a88b3e93115084a84d936c5cd02d59d17505dc13 + "@types/node": "npm:*" + checksum: 10c0/3b958b1c9b7cdf9852cd8fbd85fb9067196656fb771aaed950b1ae6ebab5e87d2f7b75260160c772038919a12c8ca8bee42aaa3fdb989b0646163979d75fe8b2 languageName: node linkType: hard @@ -2297,12 +2298,12 @@ __metadata: languageName: node linkType: hard -"@types/cors@npm:^2.8.4": - version: 2.8.6 - resolution: "@types/cors@npm:2.8.6" +"@types/cors@npm:^2.8.19": + version: 2.8.19 + resolution: "@types/cors@npm:2.8.19" dependencies: - "@types/express": "npm:*" - checksum: 10c0/fd96736356dce644774c39d70628372ea698f5dc84a47058359ed873c98a7c8a6963876cf879c236baadc66e9d186ca2d480408f0392979b42a7beb96a325a74 + "@types/node": "npm:*" + checksum: 10c0/b5dd407040db7d8aa1bd36e79e5f3f32292f6b075abc287529e9f48df1a25fda3e3799ba30b4656667ffb931d3b75690c1d6ca71e39f7337ea6dfda8581916d0 languageName: node linkType: hard @@ -2313,12 +2314,12 @@ __metadata: languageName: node linkType: hard -"@types/dotenv@npm:^6.1.0": - version: 6.1.1 - resolution: "@types/dotenv@npm:6.1.1" +"@types/dotenv@npm:^8.2.3": + version: 8.2.3 + resolution: "@types/dotenv@npm:8.2.3" dependencies: - "@types/node": "npm:*" - checksum: 10c0/74f802d3bec395d4b368a0235178c71d72fb4ba537109912255ebb1bdc29c7d1fef0edc4d7d4b211682f6f440fffccfe0d5523d831d586a9269ac9e4b47a5d2a + dotenv: "npm:*" + checksum: 10c0/af9178da617959cddc8259aaa3f16c474523ead469f4a03490de2f2d1cafc8615c5d0d1ed3fad837096218126421c38cd46b4065548bb5aee3cc002c518b69f7 languageName: node linkType: hard @@ -2360,17 +2361,19 @@ __metadata: languageName: node linkType: hard -"@types/graphql@npm:^14.2.3": - version: 14.2.3 - resolution: "@types/graphql@npm:14.2.3" - checksum: 10c0/c97a1df0bfd40d557b6ce59f931e9d177d64ba65a594a6768b5576616284e4198853dca0df5567f5428971625acc0a906c44b33a8c3eed81676be686961c2874 +"@types/graphql@npm:^14.5.0": + version: 14.5.0 + resolution: "@types/graphql@npm:14.5.0" + dependencies: + graphql: "npm:*" + checksum: 10c0/b55a22e7654d161c6337e90c5ff04277977ef3acf78a8d14d26e4b039d1e8cc98ca108c8d93ea92576530222410b5d4bd47cb75293ef60505d454a9300d487ff languageName: node linkType: hard -"@types/he@npm:^1.1.1": - version: 1.1.1 - resolution: "@types/he@npm:1.1.1" - checksum: 10c0/acf24bf43c966100775512e583a9ebc4eeb21d0ad3ef8645554d0189211b4c09d018ac86e1039a1e8a4ccbaf370eaa042b4b2c8c1b8b559c041a309bfb0cf668 +"@types/he@npm:^1.2.3": + version: 1.2.3 + resolution: "@types/he@npm:1.2.3" + checksum: 10c0/562e4ec00e31e3d464e79e6da4b8a5c21999d38ceca6a8facaa96e89c2d646f410bb58bb81f48a7472aeb4655ce40d27b7d77e5a4fa5a2d9caa0f3037caab5b7 languageName: node linkType: hard @@ -2402,10 +2405,10 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:^4.14.118": - version: 4.14.158 - resolution: "@types/lodash@npm:4.14.158" - checksum: 10c0/3bcd51ed9cdbf2ef2d6cdfbcb0afef213bd40f33c652b8763e9bbbdcfe56e304d465114fab65a5f0b13d53e67bbc1642bd2c12f1359975c80aeec2475168be6a +"@types/lodash@npm:^4.17.18": + version: 4.17.18 + resolution: "@types/lodash@npm:4.17.18" + checksum: 10c0/d25f86941990403d59dcaae42b42fc9fef55a0a7f398790517e7189300183e425a94127594cbeaf9b5fcdc4f6c2b285e34f4301fb56c92f81ccd8505a41ab5f5 languageName: node linkType: hard @@ -2423,13 +2426,13 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.1.2, @types/node-fetch@npm:^2.6.1": - version: 2.6.2 - resolution: "@types/node-fetch@npm:2.6.2" +"@types/node-fetch@npm:^2.6.1, @types/node-fetch@npm:^2.6.12": + version: 2.6.12 + resolution: "@types/node-fetch@npm:2.6.12" dependencies: "@types/node": "npm:*" - form-data: "npm:^3.0.0" - checksum: 10c0/bd2ce7621905f9d80cd2fbe003d32a8d304f4aa53c12eb01a498255a1fc570d82216cff9a7ed38ff32570c78e46c924a8e23187a011ecfcfec4c530c7bdecdbb + form-data: "npm:^4.0.0" + checksum: 10c0/7693acad5499b7df2d1727d46cff092a63896dc04645f36b973dd6dd754a59a7faba76fcb777bdaa35d80625c6a9dd7257cca9c401a4bab03b04480cda7fd1af languageName: node linkType: hard @@ -2451,10 +2454,10 @@ __metadata: languageName: node linkType: hard -"@types/prismjs@npm:^1.26.0": - version: 1.26.0 - resolution: "@types/prismjs@npm:1.26.0" - checksum: 10c0/dce1388a626c20b95fa2715917deef5a401eec33e9e181f202840ee3b3c7d8a84d5558c834af4c29b8e007741a6a18639b074db8ecccdd6e7de15280fc4dfdd2 +"@types/prismjs@npm:^1.26.5": + version: 1.26.5 + resolution: "@types/prismjs@npm:1.26.5" + checksum: 10c0/5619cb449e0d8df098c8759d6f47bf8fdd510abf5dbdfa999e55c6a2545efbd1e209cc85a33d8d9f4ff2898089a1a6d9a70737c9baffaae635c46852c40d384a languageName: node linkType: hard @@ -2472,7 +2475,7 @@ __metadata: languageName: node linkType: hard -"@types/query-string@npm:^6.1.1": +"@types/query-string@npm:^6.3.0": version: 6.3.0 resolution: "@types/query-string@npm:6.3.0" dependencies: @@ -2488,12 +2491,12 @@ __metadata: languageName: node linkType: hard -"@types/sanitize-html@npm:^2.11.0": - version: 2.11.0 - resolution: "@types/sanitize-html@npm:2.11.0" +"@types/sanitize-html@npm:^2.16.0": + version: 2.16.0 + resolution: "@types/sanitize-html@npm:2.16.0" dependencies: htmlparser2: "npm:^8.0.0" - checksum: 10c0/6b559184b4c9d86f7ad067288c59f7fd1d88aa4832e627f5c2174c99aafe697583cde0d0c279ab8cb92993b84eb7e7658508c3454e4d8b455cc4adcee758183e + checksum: 10c0/1d5ff68e07815d86a6832fba9b86f21af1824fd1080b765485688dc2777e03c22c6058ae12ba67ac3ee1aa1731f99626ed465e914ed6982bfe7c6c7144b79d45 languageName: node linkType: hard @@ -2543,124 +2546,139 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.17.0": - version: 8.17.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.17.0" +"@typescript-eslint/eslint-plugin@npm:8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.34.1" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.17.0" - "@typescript-eslint/type-utils": "npm:8.17.0" - "@typescript-eslint/utils": "npm:8.17.0" - "@typescript-eslint/visitor-keys": "npm:8.17.0" + "@typescript-eslint/scope-manager": "npm:8.34.1" + "@typescript-eslint/type-utils": "npm:8.34.1" + "@typescript-eslint/utils": "npm:8.34.1" + "@typescript-eslint/visitor-keys": "npm:8.34.1" graphemer: "npm:^1.4.0" - ignore: "npm:^5.3.1" + ignore: "npm:^7.0.0" natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^1.3.0" + ts-api-utils: "npm:^2.1.0" peerDependencies: - "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + "@typescript-eslint/parser": ^8.34.1 eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/d78778173571a9a1370345bc2aa3e850235a489d16b8a8b5ba3086b988bbef7549bdae38e509d7a679ba3179c688cc5a408376b158be402770836e94ffc9602d + typescript: ">=4.8.4 <5.9.0" + checksum: 10c0/f1c9f25e4fe4b59622312dfa0ca1e80fa7945296ba5c04362a5fda084a17e23a6b98dac331f5a13bcb1ba34a2b598a3f5c41aa288f0c51fe60196e912954e56a languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.17.0": - version: 8.17.0 - resolution: "@typescript-eslint/parser@npm:8.17.0" +"@typescript-eslint/parser@npm:8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/parser@npm:8.34.1" dependencies: - "@typescript-eslint/scope-manager": "npm:8.17.0" - "@typescript-eslint/types": "npm:8.17.0" - "@typescript-eslint/typescript-estree": "npm:8.17.0" - "@typescript-eslint/visitor-keys": "npm:8.17.0" + "@typescript-eslint/scope-manager": "npm:8.34.1" + "@typescript-eslint/types": "npm:8.34.1" + "@typescript-eslint/typescript-estree": "npm:8.34.1" + "@typescript-eslint/visitor-keys": "npm:8.34.1" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/2543deadf01302a92d3b6f58a4c14f98d8936c4d976e7da05e3bb65608f19d8de93b25282e343c304eca3e3f37f2ac23e97fa9c11c6edff36dd2d4f6b601a630 + typescript: ">=4.8.4 <5.9.0" + checksum: 10c0/bf8070245d53ef6926ff6630bb72f245923f545304e2a61508fb944802a83fed8eab961d9010956d07999d51afdfbbec82aea9d6185295551a7c17c00d759183 + languageName: node + linkType: hard + +"@typescript-eslint/project-service@npm:8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/project-service@npm:8.34.1" + dependencies: + "@typescript-eslint/tsconfig-utils": "npm:^8.34.1" + "@typescript-eslint/types": "npm:^8.34.1" + debug: "npm:^4.3.4" + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: 10c0/9333a890625f6777054db17a6b299281ae7502bb7615261d15b885a75b8cf65fc91591389c93b37ecd14b651d8e94851dac8718e5dcc8ed0600533535dae855c languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.17.0": - version: 8.17.0 - resolution: "@typescript-eslint/scope-manager@npm:8.17.0" +"@typescript-eslint/scope-manager@npm:8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/scope-manager@npm:8.34.1" dependencies: - "@typescript-eslint/types": "npm:8.17.0" - "@typescript-eslint/visitor-keys": "npm:8.17.0" - checksum: 10c0/0c08d14240bad4b3f6874f08ba80b29db1a6657437089a6f109db458c544d835bcdc06ba9140bb4f835233ba4326d9a86e6cf6bdb5209960d2f7025aa3191f4f + "@typescript-eslint/types": "npm:8.34.1" + "@typescript-eslint/visitor-keys": "npm:8.34.1" + checksum: 10c0/2af608fa3900f4726322e33bf4f3a376fdace3ac0f310cf7d9256bbc2905c3896138176a47dd195d2c2229f27fe43f5deb4bc7729db2eb18389926dedea78077 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.17.0": - version: 8.17.0 - resolution: "@typescript-eslint/type-utils@npm:8.17.0" +"@typescript-eslint/tsconfig-utils@npm:8.34.1, @typescript-eslint/tsconfig-utils@npm:^8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.34.1" + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: 10c0/8d1ead8b7c279b48e2ed96f083ec119a9aeea1ca9cdd40576ec271b996b9fd8cfa0ddb0aafbb4e14bc27fc62c69c5be66d39b1de68eab9ddd7f1861da267423d + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/type-utils@npm:8.34.1" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.17.0" - "@typescript-eslint/utils": "npm:8.17.0" + "@typescript-eslint/typescript-estree": "npm:8.34.1" + "@typescript-eslint/utils": "npm:8.34.1" debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.3.0" + ts-api-utils: "npm:^2.1.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/6138ec71b5692d4b5e0bf3d7f66a6fa4e91ddea7031907b0ac45a7693df0a2f4cc5bca7218311e0639620d636ceb7efec83a137dfcd5938304d873b774fcc8bd + typescript: ">=4.8.4 <5.9.0" + checksum: 10c0/502a2cdfe47f1f34206c747b5a70e0242dd99f570511db3dda9c5f999d9abadfbbb1dfa82a1fa437a1689d232715412e61c97d95f19c9314ba5ad23196b4096d languageName: node linkType: hard -"@typescript-eslint/types@npm:8.17.0": - version: 8.17.0 - resolution: "@typescript-eslint/types@npm:8.17.0" - checksum: 10c0/26b1bf9dfc3ee783c85c6f354b84c28706d5689d777f3ff2de2cb496e45f9d0189c0d561c03ccbc8b24712438be17cf63dd0871ff3ca2083e7f48749770d1893 +"@typescript-eslint/types@npm:8.34.1, @typescript-eslint/types@npm:^8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/types@npm:8.34.1" + checksum: 10c0/db1b3dce6a70b28ddb13c76fbb5983240d9395656df5f7cbd99bfd9905e39c0dab2132870f01dbc406b48739c437f7d344a879a824cedaba81b91a53110dc23a languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.17.0": - version: 8.17.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.17.0" +"@typescript-eslint/typescript-estree@npm:8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.34.1" dependencies: - "@typescript-eslint/types": "npm:8.17.0" - "@typescript-eslint/visitor-keys": "npm:8.17.0" + "@typescript-eslint/project-service": "npm:8.34.1" + "@typescript-eslint/tsconfig-utils": "npm:8.34.1" + "@typescript-eslint/types": "npm:8.34.1" + "@typescript-eslint/visitor-keys": "npm:8.34.1" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" minimatch: "npm:^9.0.4" semver: "npm:^7.6.0" - ts-api-utils: "npm:^1.3.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/523013f9b5cf2c58c566868e4c3b0b9ac1b4807223a6d64e2a7c58e01e53b6587ba61f1a8241eade361f3f426d6057657515473176141ef8aebb352bc0d223ce + ts-api-utils: "npm:^2.1.0" + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: 10c0/4ee7249db91b9840361f34f80b7b6d646a3af159c7298d79a33d8a11c98792fd3a395343e5e17e0fa29529e8f0113bac8baadcef90d1e140bd736a48f0485042 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.17.0": - version: 8.17.0 - resolution: "@typescript-eslint/utils@npm:8.17.0" +"@typescript-eslint/utils@npm:8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/utils@npm:8.34.1" dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.17.0" - "@typescript-eslint/types": "npm:8.17.0" - "@typescript-eslint/typescript-estree": "npm:8.17.0" + "@eslint-community/eslint-utils": "npm:^4.7.0" + "@typescript-eslint/scope-manager": "npm:8.34.1" + "@typescript-eslint/types": "npm:8.34.1" + "@typescript-eslint/typescript-estree": "npm:8.34.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/a9785ae5f7e7b51d521dc3f48b15093948e4fcd03352c0b60f39bae366cbc935947d215f91e2ae3182d52fa6affb5ccbb50feff487bd1209011f3e0da02cdf07 + typescript: ">=4.8.4 <5.9.0" + checksum: 10c0/e3085877f7940c02a37653e6bc52ac6cde115e755b1f788fe4331202f371b3421cc4d0878c7d3eb054e14e9b3a064496a707a73eac471cb2b73593b9e9d4b998 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.17.0": - version: 8.17.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.17.0" +"@typescript-eslint/visitor-keys@npm:8.34.1": + version: 8.34.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.34.1" dependencies: - "@typescript-eslint/types": "npm:8.17.0" - eslint-visitor-keys: "npm:^4.2.0" - checksum: 10c0/9144c4e4a63034fb2031a0ee1fc77e80594f30cab3faafa9a1f7f83782695774dd32fac8986f260698b4e150b4dd52444f2611c07e4c101501f08353eb47c82c + "@typescript-eslint/types": "npm:8.34.1" + eslint-visitor-keys: "npm:^4.2.1" + checksum: 10c0/0e5a9b3d93905d16d3cf8cb5fb346dcc6f760482eb7d0ac209aefc09a32f78ef28a687634df6ad08e81fb3e1083e8805f34472de6bbc501c0105ad654d518f40 languageName: node linkType: hard @@ -2675,24 +2693,24 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:3.2.3": - version: 3.2.3 - resolution: "@vitest/expect@npm:3.2.3" +"@vitest/expect@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/expect@npm:3.2.4" dependencies: "@types/chai": "npm:^5.2.2" - "@vitest/spy": "npm:3.2.3" - "@vitest/utils": "npm:3.2.3" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" chai: "npm:^5.2.0" tinyrainbow: "npm:^2.0.0" - checksum: 10c0/5eb6278be8f5294779472d1276e150a1b573274441a68c2681c447179abd22af451813fdfbe87e04f5909ca7a0926700f9b79022f227c9816e5d0fa8e0229e15 + checksum: 10c0/7586104e3fd31dbe1e6ecaafb9a70131e4197dce2940f727b6a84131eee3decac7b10f9c7c72fa5edbdb68b6f854353bd4c0fa84779e274207fb7379563b10db languageName: node linkType: hard -"@vitest/mocker@npm:3.2.3": - version: 3.2.3 - resolution: "@vitest/mocker@npm:3.2.3" +"@vitest/mocker@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/mocker@npm:3.2.4" dependencies: - "@vitest/spy": "npm:3.2.3" + "@vitest/spy": "npm:3.2.4" estree-walker: "npm:^3.0.3" magic-string: "npm:^0.30.17" peerDependencies: @@ -2703,58 +2721,58 @@ __metadata: optional: true vite: optional: true - checksum: 10c0/b670f229c3b1de5561de3cbbecb18f964d4888355d7f1cb8bbff4350b2cfbe477bef834cc2f66af7727ca7dc567540018885eb652f46e0be1cda4015491dc0a9 + checksum: 10c0/f7a4aea19bbbf8f15905847ee9143b6298b2c110f8b64789224cb0ffdc2e96f9802876aa2ca83f1ec1b6e1ff45e822abb34f0054c24d57b29ab18add06536ccd languageName: node linkType: hard -"@vitest/pretty-format@npm:3.2.3, @vitest/pretty-format@npm:^3.2.3": - version: 3.2.3 - resolution: "@vitest/pretty-format@npm:3.2.3" +"@vitest/pretty-format@npm:3.2.4, @vitest/pretty-format@npm:^3.2.4": + version: 3.2.4 + resolution: "@vitest/pretty-format@npm:3.2.4" dependencies: tinyrainbow: "npm:^2.0.0" - checksum: 10c0/e8fa7b97822c58404bef07d19fa9a49d5b7edb6797dd355584ad7246585bbbe9c55dd1fb05d0c3939b9c15fba05c3e134e2b96ea0cb64ca79a2b9dab60087a6a + checksum: 10c0/5ad7d4278e067390d7d633e307fee8103958806a419ca380aec0e33fae71b44a64415f7a9b4bc11635d3c13d4a9186111c581d3cef9c65cc317e68f077456887 languageName: node linkType: hard -"@vitest/runner@npm:3.2.3": - version: 3.2.3 - resolution: "@vitest/runner@npm:3.2.3" +"@vitest/runner@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/runner@npm:3.2.4" dependencies: - "@vitest/utils": "npm:3.2.3" + "@vitest/utils": "npm:3.2.4" pathe: "npm:^2.0.3" strip-literal: "npm:^3.0.0" - checksum: 10c0/c20cb6e2ac4fdfb3d4f5136714ea65f9063562d3afaa1574dc82f53d061444bc01583f9915346768ca75f5ea0658f02fb594752e21abbca5ab50290f58732147 + checksum: 10c0/e8be51666c72b3668ae3ea348b0196656a4a5adb836cb5e270720885d9517421815b0d6c98bfdf1795ed02b994b7bfb2b21566ee356a40021f5bf4f6ed4e418a languageName: node linkType: hard -"@vitest/snapshot@npm:3.2.3": - version: 3.2.3 - resolution: "@vitest/snapshot@npm:3.2.3" +"@vitest/snapshot@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/snapshot@npm:3.2.4" dependencies: - "@vitest/pretty-format": "npm:3.2.3" + "@vitest/pretty-format": "npm:3.2.4" magic-string: "npm:^0.30.17" pathe: "npm:^2.0.3" - checksum: 10c0/f6dd0248afb3f3cbcbbb9fd39c2c8273c4ec92176f65e6ba9d36a0c33552d3658013e3a02944e14c7637f51d6702a5c07963b59707ca459bd1ac31f39c81160c + checksum: 10c0/f8301a3d7d1559fd3d59ed51176dd52e1ed5c2d23aa6d8d6aa18787ef46e295056bc726a021698d8454c16ed825ecba163362f42fa90258bb4a98cfd2c9424fc languageName: node linkType: hard -"@vitest/spy@npm:3.2.3": - version: 3.2.3 - resolution: "@vitest/spy@npm:3.2.3" +"@vitest/spy@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/spy@npm:3.2.4" dependencies: tinyspy: "npm:^4.0.3" - checksum: 10c0/ce77d5934ac4741513993aad9d8ff44ff03ff5cf5a177e010c7ffcd8d3060087e56df1938c1100d49de712daf952cd2c72dd83e1684d043e698bd2afe0025f5e + checksum: 10c0/6ebf0b4697dc238476d6b6a60c76ba9eb1dd8167a307e30f08f64149612fd50227682b876420e4c2e09a76334e73f72e3ebf0e350714dc22474258292e202024 languageName: node linkType: hard -"@vitest/utils@npm:3.2.3": - version: 3.2.3 - resolution: "@vitest/utils@npm:3.2.3" +"@vitest/utils@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/utils@npm:3.2.4" dependencies: - "@vitest/pretty-format": "npm:3.2.3" - loupe: "npm:^3.1.3" + "@vitest/pretty-format": "npm:3.2.4" + loupe: "npm:^3.1.4" tinyrainbow: "npm:^2.0.0" - checksum: 10c0/c7a785a73bc0d7c0202ced0d9912639b9deb6f05dd6c25700a13d97e13320ccec57660f11ad1f9225419ac485339fdf7af28c8d77456bcb9558e6c7d73ad538a + checksum: 10c0/024a9b8c8bcc12cf40183c246c244b52ecff861c6deb3477cbf487ac8781ad44c68a9c5fd69f8c1361878e55b97c10d99d511f2597f1f7244b5e5101d028ba64 languageName: node linkType: hard @@ -2806,7 +2824,7 @@ __metadata: languageName: node linkType: hard -"accepts@npm:~1.3.5, accepts@npm:~1.3.8": +"accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -3319,13 +3337,6 @@ __metadata: languageName: node linkType: hard -"bytes@npm:3.0.0": - version: 3.0.0 - resolution: "bytes@npm:3.0.0" - checksum: 10c0/91d42c38601c76460519ffef88371caacaea483a354c8e4b8808e7b027574436a5713337c003ea3de63ee4991c2a9a637884fdfe7f761760d746929d9e8fec60 - languageName: node - linkType: hard - "bytes@npm:3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" @@ -3503,10 +3514,10 @@ __metadata: languageName: node linkType: hard -"chardet@npm:^2.0.0": - version: 2.0.0 - resolution: "chardet@npm:2.0.0" - checksum: 10c0/e4d302e6116bf421d8dd0eaac09b5b3f9d88c17d9540f81ccde40e586c2a868c8a67a0dd4b1fe702f5ad63580623832884f65c43b9dffb6814e45eb005e26215 +"chardet@npm:^2.1.0": + version: 2.1.0 + resolution: "chardet@npm:2.1.0" + checksum: 10c0/d1b03e47371851ed72741a898281d58f8a9b577aeea6fdfa75a86832898b36c550b3ad057e66d50d774a9cebd9f56c66b6880e4fe75e387794538ba7565b0b6f languageName: node linkType: hard @@ -3711,7 +3722,7 @@ __metadata: languageName: node linkType: hard -"compressible@npm:~2.0.16": +"compressible@npm:~2.0.18": version: 2.0.18 resolution: "compressible@npm:2.0.18" dependencies: @@ -3720,18 +3731,18 @@ __metadata: languageName: node linkType: hard -"compression@npm:^1.7.4": - version: 1.7.4 - resolution: "compression@npm:1.7.4" +"compression@npm:^1.8.0": + version: 1.8.0 + resolution: "compression@npm:1.8.0" dependencies: - accepts: "npm:~1.3.5" - bytes: "npm:3.0.0" - compressible: "npm:~2.0.16" + bytes: "npm:3.1.2" + compressible: "npm:~2.0.18" debug: "npm:2.6.9" + negotiator: "npm:~0.6.4" on-headers: "npm:~1.0.2" - safe-buffer: "npm:5.1.2" + safe-buffer: "npm:5.2.1" vary: "npm:~1.1.2" - checksum: 10c0/138db836202a406d8a14156a5564fb1700632a76b6e7d1546939472895a5304f2b23c80d7a22bf44c767e87a26e070dbc342ea63bb45ee9c863354fa5556bbbc + checksum: 10c0/804d3c8430939f4fd88e5128333f311b4035f6425a7f2959d74cfb5c98ef3a3e3e18143208f3f9d0fcae4cd3bcf3d2fbe525e0fcb955e6e146e070936f025a24 languageName: node linkType: hard @@ -3924,13 +3935,6 @@ __metadata: languageName: node linkType: hard -"dataloader@npm:^1.4.0": - version: 1.4.0 - resolution: "dataloader@npm:1.4.0" - checksum: 10c0/5fa4c843b9e60195092f1fc7e2acaff318ed46886dc670ddff683bc560f12d4079e6d1e77749501b7e111a8582d26a2aa2a2fbe6d7d5e1520cef64f4e1fd242d - languageName: node - linkType: hard - "dataloader@npm:^2.2.3": version: 2.2.3 resolution: "dataloader@npm:2.2.3" @@ -3982,10 +3986,10 @@ __metadata: languageName: node linkType: hard -"decode-uri-component@npm:^0.2.0": - version: 0.2.2 - resolution: "decode-uri-component@npm:0.2.2" - checksum: 10c0/1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31 +"decode-uri-component@npm:^0.4.1": + version: 0.4.1 + resolution: "decode-uri-component@npm:0.4.1" + checksum: 10c0/a180bbdb5398ec8270d236a3ac07cb988bbf6097428481780b85840f088951dc0318a8d8f9d56796e1a322b55b29859cea29982f22f9b03af0bc60974c54e591 languageName: node linkType: hard @@ -4142,17 +4146,10 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.0.0": - version: 16.0.3 - resolution: "dotenv@npm:16.0.3" - checksum: 10c0/109457ac5f9e930ca8066ea33887b6f839ab24d647a7a8b49ddcd1f32662e2c35591c5e5b9819063e430148a664d0927f0cbe60cf9575d89bc524f47ff7e78f0 - languageName: node - linkType: hard - -"dotenv@npm:^6.2.0": - version: 6.2.0 - resolution: "dotenv@npm:6.2.0" - checksum: 10c0/56886938622c34255c89ec24d584460668a5ca035afe37da7b16bfbac36f8b352d20a6dde51000b30db04fa5cac7b03caf165919fe5e9bd8c91a2735fd61c649 +"dotenv@npm:*, dotenv@npm:^16.0.0, dotenv@npm:^16.5.0": + version: 16.5.0 + resolution: "dotenv@npm:16.5.0" + checksum: 10c0/5bc94c919fbd955bf0ba44d33922a1e93d1078e64a1db5c30faeded1d996e7a83c55332cb8ea4fae5a9ca4d0be44cbceb95c5811e70f9f095298df09d1997dd9 languageName: node linkType: hard @@ -4709,17 +4706,17 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0": +"eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.2.0": - version: 4.2.0 - resolution: "eslint-visitor-keys@npm:4.2.0" - checksum: 10c0/2ed81c663b147ca6f578312919483eb040295bbab759e5a371953456c636c5b49a559883e2677112453728d66293c0a4c90ab11cab3428cf02a0236d2e738269 +"eslint-visitor-keys@npm:^4.2.0, eslint-visitor-keys@npm:^4.2.1": + version: 4.2.1 + resolution: "eslint-visitor-keys@npm:4.2.1" + checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43 languageName: node linkType: hard @@ -5059,6 +5056,13 @@ __metadata: languageName: node linkType: hard +"filter-obj@npm:^5.1.0": + version: 5.1.0 + resolution: "filter-obj@npm:5.1.0" + checksum: 10c0/716e8ad2bc352e206556b3e5695b3cdff8aab80c53ea4b00c96315bbf467b987df3640575100aef8b84e812cf5ea4251db4cd672bbe33b1e78afea88400c67dd + languageName: node + linkType: hard + "finalhandler@npm:1.3.1": version: 1.3.1 resolution: "finalhandler@npm:1.3.1" @@ -5137,16 +5141,16 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^3.0.0": - version: 3.0.4 - resolution: "form-data@npm:3.0.4" +"form-data@npm:^4.0.0": + version: 4.0.3 + resolution: "form-data@npm:4.0.3" dependencies: asynckit: "npm:^0.4.0" combined-stream: "npm:^1.0.8" es-set-tostringtag: "npm:^2.1.0" hasown: "npm:^2.0.2" - mime-types: "npm:^2.1.35" - checksum: 10c0/2451043b3e931653ce9690ba051b0bf1b5855a63029279bd7bdf8d02e4b5b42f4582b23ed3637df27a0d21bac2013c37d165ec9486e1af2470c13114aee83acc + mime-types: "npm:^2.1.12" + checksum: 10c0/f0cf45873d600110b5fadf5804478377694f73a1ed97aaa370a74c90cebd7fe6e845a081171668a5476477d0d55a73a4e03d6682968fa8661eac2a81d651fcdb languageName: node linkType: hard @@ -5538,7 +5542,7 @@ __metadata: languageName: node linkType: hard -"graphql@npm:^16.11.0": +"graphql@npm:*, graphql@npm:^16.11.0": version: 16.11.0 resolution: "graphql@npm:16.11.0" checksum: 10c0/124da7860a2292e9acf2fed0c71fc0f6a9b9ca865d390d112bdd563c1f474357141501c12891f4164fe984315764736ad67f705219c62f7580681d431a85db88 @@ -5720,13 +5724,20 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.3.1": +"ignore@npm:^5.2.0": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 languageName: node linkType: hard +"ignore@npm:^7.0.0": + version: 7.0.5 + resolution: "ignore@npm:7.0.5" + checksum: 10c0/ae00db89fe873064a093b8999fe4cc284b13ef2a178636211842cceb650b9c3e390d3339191acb145d81ed5379d2074840cf0c33a20bdbd6f32821f79eb4ad5d + languageName: node + linkType: hard + "immutable@npm:~3.7.6": version: 3.7.6 resolution: "immutable@npm:3.7.6" @@ -6555,7 +6566,7 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^3.1.0, loupe@npm:^3.1.3": +"loupe@npm:^3.1.0, loupe@npm:^3.1.4": version: 3.1.4 resolution: "loupe@npm:3.1.4" checksum: 10c0/5c2e6aefaad25f812d361c750b8cf4ff91d68de289f141d7c85c2ce9bb79eeefa06a93c85f7b87cba940531ed8f15e492f32681d47eed23842ad1963eb3a154d @@ -6638,12 +6649,12 @@ __metadata: languageName: node linkType: hard -"marked@npm:^9.1.0": - version: 9.1.0 - resolution: "marked@npm:9.1.0" +"marked@npm:^15.0.12": + version: 15.0.12 + resolution: "marked@npm:15.0.12" bin: marked: bin/marked.js - checksum: 10c0/9dfa56b5ba1b9093db2d763ebb3bb895d864e487176e14f18abb421eb6ba84d4a8003fec5e044cf962ace9ff5fb2f05cf28750f4b9b7ab2f48477a5ae1023676 + checksum: 10c0/e09da211544b787ecfb25fed07af206060bf7cd6d9de6cb123f15c496a57f83b7aabea93340aaa94dae9c94e097ae129377cad6310abc16009590972e85f4212 languageName: node linkType: hard @@ -6711,7 +6722,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.35, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -6908,27 +6919,27 @@ __metadata: "@ndla/types-backend": "npm:^1.0.55" "@ndla/types-embed": "npm:^5.0.16-alpha.0" "@ndla/types-taxonomy": "npm:^1.0.34" - "@types/compression": "npm:^1.7.2" - "@types/cors": "npm:^2.8.4" - "@types/dotenv": "npm:^6.1.0" + "@types/compression": "npm:^1.8.1" + "@types/cors": "npm:^2.8.19" + "@types/dotenv": "npm:^8.2.3" "@types/express": "npm:^4.17.21" - "@types/graphql": "npm:^14.2.3" - "@types/he": "npm:^1.1.1" - "@types/lodash": "npm:^4.14.118" + "@types/graphql": "npm:^14.5.0" + "@types/he": "npm:^1.2.3" + "@types/lodash": "npm:^4.17.18" "@types/node": "npm:^22.15.0" - "@types/node-fetch": "npm:^2.1.2" + "@types/node-fetch": "npm:^2.6.12" "@types/open-graph-scraper": "npm:^4.8.5" - "@types/prismjs": "npm:^1.26.0" + "@types/prismjs": "npm:^1.26.5" "@types/punycode": "npm:^2.1.4" - "@types/query-string": "npm:^6.1.1" - "@types/sanitize-html": "npm:^2.11.0" + "@types/query-string": "npm:^6.3.0" + "@types/sanitize-html": "npm:^2.16.0" "@types/source-map-support": "npm:^0" "@vercel/ncc": "npm:^0.34.0" cheerio: "npm:^1.1.0" - compression: "npm:^1.7.4" + compression: "npm:^1.8.0" concurrently: "npm:^9.1.0" - dataloader: "npm:^1.4.0" - dotenv: "npm:^6.2.0" + dataloader: "npm:^2.2.3" + dotenv: "npm:^16.5.0" eslint: "npm:^9.16.0" eslint-config-ndla: "npm:^6.0.0-alpha.0" express: "npm:^4.21.2" @@ -6939,31 +6950,38 @@ __metadata: he: "npm:^1.2.0" lodash: "npm:^4.17.21" lru-cache: "npm:^7.0.0" - marked: "npm:^9.1.0" - node-fetch: "npm:2.6.7" - open-graph-scraper: "npm:^6.8.3" + marked: "npm:^15.0.12" + node-fetch: "npm:2.7.0" + open-graph-scraper: "npm:^6.10.0" openapi-fetch: "npm:^0.13.5" - prettier: "npm:^3.1.0" + prettier: "npm:^3.5.3" prismjs: "npm:^1.30.0" prom-client: "npm:^15.1.3" punycode: "npm:^2.3.1" - query-string: "npm:^6.2.0" - sanitize-html: "npm:^2.13.1" + query-string: "npm:^9.2.1" + sanitize-html: "npm:^2.17.0" source-map-support: "npm:^0.5.21" - typescript: "npm:^5.8.2" - typescript-eslint: "npm:^8.17.0" - vitest: "npm:^3.2.3" + typescript: "npm:^5.8.3" + typescript-eslint: "npm:^8.34.1" + vitest: "npm:^3.2.4" winston: "npm:^3.13.0" languageName: unknown linkType: soft -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": +"negotiator@npm:0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 languageName: node linkType: hard +"negotiator@npm:^0.6.3, negotiator@npm:~0.6.4": + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 10c0/3e677139c7fb7628a6f36335bf11a885a62c21d5390204590a1a214a5631fcbe5ea74ef6a610b60afe84b4d975cbe0566a23f20ee17c77c73e74b80032108dea + languageName: node + linkType: hard + "no-case@npm:^3.0.4": version: 3.0.4 resolution: "no-case@npm:3.0.4" @@ -6995,7 +7013,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9": +"node-fetch@npm:2.7.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -7200,15 +7218,15 @@ __metadata: languageName: node linkType: hard -"open-graph-scraper@npm:^6.8.3": - version: 6.8.3 - resolution: "open-graph-scraper@npm:6.8.3" +"open-graph-scraper@npm:^6.10.0": + version: 6.10.0 + resolution: "open-graph-scraper@npm:6.10.0" dependencies: - chardet: "npm:^2.0.0" + chardet: "npm:^2.1.0" cheerio: "npm:^1.0.0-rc.12" iconv-lite: "npm:^0.6.3" - undici: "npm:^6.21.0" - checksum: 10c0/85f65f250b13b1c51ac2d88cf7fe0cc5691cc63d002ec0cf6462371736b4d2a59d386453a61bc11d7bdb568afca5dd36c43641e1e296afe924109d265ac16588 + undici: "npm:^6.21.2" + checksum: 10c0/4d07d9a7e66d003be2bceb15caea78dc2f938ab101974104aa09dc256f1bcf0399a73f1896920ade780578a1a13465ae2228d744f113534ab3266b582e6058a4 languageName: node linkType: hard @@ -7550,12 +7568,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^3.1.0": - version: 3.1.1 - resolution: "prettier@npm:3.1.1" +"prettier@npm:^3.5.3": + version: 3.5.3 + resolution: "prettier@npm:3.5.3" bin: prettier: bin/prettier.cjs - checksum: 10c0/facc944ba20e194ff4db765e830ffbcb642803381f0d2033ed397e79904fa4ccc877dc25ad68f42d36985c01d051c990ca1b905fb83d2d7d65fe69e4386fa1a3 + checksum: 10c0/3880cb90b9dc0635819ab52ff571518c35bd7f15a6e80a2054c05dbc8a3aa6e74f135519e91197de63705bcb38388ded7e7230e2178432a1468005406238b877 languageName: node linkType: hard @@ -7648,14 +7666,14 @@ __metadata: languageName: node linkType: hard -"query-string@npm:*, query-string@npm:^6.2.0": - version: 6.13.1 - resolution: "query-string@npm:6.13.1" +"query-string@npm:*, query-string@npm:^9.2.1": + version: 9.2.1 + resolution: "query-string@npm:9.2.1" dependencies: - decode-uri-component: "npm:^0.2.0" - split-on-first: "npm:^1.0.0" - strict-uri-encode: "npm:^2.0.0" - checksum: 10c0/927b066f781f0c201eb407607751f3076a2cd58c2f0f7fb584df4290a51260a00b84d3186c61e9bbfab312e436944ef00b7aa7fe40227a70e1dcae6ea1b5b840 + decode-uri-component: "npm:^0.4.1" + filter-obj: "npm:^5.1.0" + split-on-first: "npm:^3.0.0" + checksum: 10c0/ec2a1a812fb6e61b129587789c30731050e44b1e66bf77415ad075e7ff9923aa85088a8a8a36300170f6b82bcd6bda8aa64304fa168ea29116a57b597275467d languageName: node linkType: hard @@ -7999,13 +8017,6 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.1.2": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21 - languageName: node - linkType: hard - "safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -8038,9 +8049,9 @@ __metadata: languageName: node linkType: hard -"sanitize-html@npm:^2.13.1": - version: 2.13.1 - resolution: "sanitize-html@npm:2.13.1" +"sanitize-html@npm:^2.17.0": + version: 2.17.0 + resolution: "sanitize-html@npm:2.17.0" dependencies: deepmerge: "npm:^4.2.2" escape-string-regexp: "npm:^4.0.0" @@ -8048,7 +8059,7 @@ __metadata: is-plain-object: "npm:^5.0.0" parse-srcset: "npm:^1.0.2" postcss: "npm:^8.3.11" - checksum: 10c0/306c811a254e48eb45e9c523fb91cced893d77786323a64fb47f4bb3f1237b4d29e3722c0723c329e6cb6ac674ae903e961d446c3636b9db5961c83b2c0995fe + checksum: 10c0/361f71f70a12f0e7d26c73cae31c926a2a5cf0757bab16faf663b07f723823780fa2642a688eff93ad2d2346baaefc31961b1f22e791f5a4b043778e20c180f4 languageName: node linkType: hard @@ -8379,10 +8390,10 @@ __metadata: languageName: node linkType: hard -"split-on-first@npm:^1.0.0": - version: 1.1.0 - resolution: "split-on-first@npm:1.1.0" - checksum: 10c0/56df8344f5a5de8521898a5c090023df1d8b8c75be6228f56c52491e0fc1617a5236f2ac3a066adb67a73231eac216ccea7b5b4a2423a543c277cb2f48d24c29 +"split-on-first@npm:^3.0.0": + version: 3.0.0 + resolution: "split-on-first@npm:3.0.0" + checksum: 10c0/a1262eae12b68de235e1a08e011bf5b42c42621985ddf807e6221fb1e2b3304824913ae7019f18436b96b8fab8aef5f1ad80dedd2385317fdc51b521c3882cd0 languageName: node linkType: hard @@ -8439,13 +8450,6 @@ __metadata: languageName: node linkType: hard -"strict-uri-encode@npm:^2.0.0": - version: 2.0.0 - resolution: "strict-uri-encode@npm:2.0.0" - checksum: 10c0/010cbc78da0e2cf833b0f5dc769e21ae74cdc5d5f5bd555f14a4a4876c8ad2c85ab8b5bdf9a722dc71a11dcd3184085e1c3c0bd50ec6bb85fffc0f28cf82597d - languageName: node - linkType: hard - "string-env-interpolation@npm:^1.0.1": version: 1.0.1 resolution: "string-env-interpolation@npm:1.0.1" @@ -8695,10 +8699,10 @@ __metadata: languageName: node linkType: hard -"tinypool@npm:^1.1.0": - version: 1.1.0 - resolution: "tinypool@npm:1.1.0" - checksum: 10c0/deb6bde5e3d85d4ba043806c66f43fb5b649716312a47b52761a83668ffc71cd0ea4e24254c1b02a3702e5c27e02605f0189a1460f6284a5930a08bd0c06435c +"tinypool@npm:^1.1.1": + version: 1.1.1 + resolution: "tinypool@npm:1.1.1" + checksum: 10c0/bf26727d01443061b04fa863f571016950888ea994ba0cd8cba3a1c51e2458d84574341ab8dbc3664f1c3ab20885c8cf9ff1cc4b18201f04c2cde7d317fff69b languageName: node linkType: hard @@ -8773,12 +8777,12 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.3.0": - version: 1.4.3 - resolution: "ts-api-utils@npm:1.4.3" +"ts-api-utils@npm:^2.1.0": + version: 2.1.0 + resolution: "ts-api-utils@npm:2.1.0" peerDependencies: - typescript: ">=4.2.0" - checksum: 10c0/e65dc6e7e8141140c23e1dc94984bf995d4f6801919c71d6dc27cf0cd51b100a91ffcfe5217626193e5bea9d46831e8586febdc7e172df3f1091a7384299e23a + typescript: ">=4.8.4" + checksum: 10c0/9806a38adea2db0f6aa217ccc6bc9c391ddba338a9fe3080676d0d50ed806d305bb90e8cef0276e793d28c8a929f400abb184ddd7ff83a416959c0f4d2ce754f languageName: node linkType: hard @@ -8894,23 +8898,21 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^8.15.0, typescript-eslint@npm:^8.17.0": - version: 8.17.0 - resolution: "typescript-eslint@npm:8.17.0" +"typescript-eslint@npm:^8.15.0, typescript-eslint@npm:^8.34.1": + version: 8.34.1 + resolution: "typescript-eslint@npm:8.34.1" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.17.0" - "@typescript-eslint/parser": "npm:8.17.0" - "@typescript-eslint/utils": "npm:8.17.0" + "@typescript-eslint/eslint-plugin": "npm:8.34.1" + "@typescript-eslint/parser": "npm:8.34.1" + "@typescript-eslint/utils": "npm:8.34.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/b148525769b9afa789ad3c2d52249fa78e67a225d48d17f2f0117b0e8b52566112be3a35de6cd26bcaffba3114be87c1070f7f4b4e2b730c059668fec4a530bc + typescript: ">=4.8.4 <5.9.0" + checksum: 10c0/6de5d2ce180d1609a8a5383557a2787f17620ebc9a4d84fba9d9240db8005cc3084a7840ebafe532fba9970fe12822ee415615041f3527334fdfc45c411d35b6 languageName: node linkType: hard -"typescript@npm:^5.8.2": +"typescript@npm:^5.8.3": version: 5.8.3 resolution: "typescript@npm:5.8.3" bin: @@ -8920,7 +8922,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.8.2#optional!builtin": +"typescript@patch:typescript@npm%3A^5.8.3#optional!builtin": version: 5.8.3 resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin::version=5.8.3&hash=5786d5" bin: @@ -8963,7 +8965,7 @@ __metadata: languageName: node linkType: hard -"undici@npm:^6.21.0": +"undici@npm:^6.21.2": version: 6.21.3 resolution: "undici@npm:6.21.3" checksum: 10c0/294da109853fad7a6ef5a172ad0ca3fb3f1f60cf34703d062a5ec967daf69ad8c03b52e6d536c5cba3bb65615769bf08e5b30798915cbccdddaca01045173dda @@ -9110,9 +9112,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:3.2.3": - version: 3.2.3 - resolution: "vite-node@npm:3.2.3" +"vite-node@npm:3.2.4": + version: 3.2.4 + resolution: "vite-node@npm:3.2.4" dependencies: cac: "npm:^6.7.14" debug: "npm:^4.4.1" @@ -9121,7 +9123,7 @@ __metadata: vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" bin: vite-node: vite-node.mjs - checksum: 10c0/b952b0d9e45662506ea7303ac87d08e02f1e3355777cf7d426f211292c4f87e8837aef589e552bb11404d1bc0a9bd18871ce6ba874b5f0bb171f8e010de20a11 + checksum: 10c0/6ceca67c002f8ef6397d58b9539f80f2b5d79e103a18367288b3f00a8ab55affa3d711d86d9112fce5a7fa658a212a087a005a045eb8f4758947dd99af2a6c6b languageName: node linkType: hard @@ -9180,18 +9182,18 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^3.2.3": - version: 3.2.3 - resolution: "vitest@npm:3.2.3" +"vitest@npm:^3.2.4": + version: 3.2.4 + resolution: "vitest@npm:3.2.4" dependencies: "@types/chai": "npm:^5.2.2" - "@vitest/expect": "npm:3.2.3" - "@vitest/mocker": "npm:3.2.3" - "@vitest/pretty-format": "npm:^3.2.3" - "@vitest/runner": "npm:3.2.3" - "@vitest/snapshot": "npm:3.2.3" - "@vitest/spy": "npm:3.2.3" - "@vitest/utils": "npm:3.2.3" + "@vitest/expect": "npm:3.2.4" + "@vitest/mocker": "npm:3.2.4" + "@vitest/pretty-format": "npm:^3.2.4" + "@vitest/runner": "npm:3.2.4" + "@vitest/snapshot": "npm:3.2.4" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" chai: "npm:^5.2.0" debug: "npm:^4.4.1" expect-type: "npm:^1.2.1" @@ -9202,17 +9204,17 @@ __metadata: tinybench: "npm:^2.9.0" tinyexec: "npm:^0.3.2" tinyglobby: "npm:^0.2.14" - tinypool: "npm:^1.1.0" + tinypool: "npm:^1.1.1" tinyrainbow: "npm:^2.0.0" vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" - vite-node: "npm:3.2.3" + vite-node: "npm:3.2.4" why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" "@types/debug": ^4.1.12 "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - "@vitest/browser": 3.2.3 - "@vitest/ui": 3.2.3 + "@vitest/browser": 3.2.4 + "@vitest/ui": 3.2.4 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -9232,7 +9234,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10c0/1d853016622f32020e91cc72348d0dc642bde2ddcbd648655a9d33d420375c7cbd6f1a6f5c4398a5d4f59b8c2b120e62eba49fb37f8042e5d4c688b7e60148ef + checksum: 10c0/5bf53ede3ae6a0e08956d72dab279ae90503f6b5a05298a6a5e6ef47d2fd1ab386aaf48fafa61ed07a0ebfe9e371772f1ccbe5c258dd765206a8218bf2eb79eb languageName: node linkType: hard