diff --git a/app/deps.ts b/app/deps.ts index 2b9a05d03cc3f0dada7879626490391409fed8cd..8edd40e45edeeb9af9fa6305d9049b85b6c5c778 100644 --- a/app/deps.ts +++ b/app/deps.ts @@ -1,5 +1,5 @@ -export { createSchema, createYoga } from "npm:graphql-yoga@5.1.1"; -export { useResponseCache } from "npm:@graphql-yoga/plugin-response-cache@1.0.0"; +export { createSchema, createYoga } from "npm:graphql-yoga@5.7.0"; +export { useResponseCache } from "npm:@graphql-yoga/plugin-response-cache@3.9.0"; export { GraphQLError } from "npm:graphql@16.8.1"; export * as turf from "https://esm.sh/@turf/turf@6.5.0"; export { Client, type QueryObjectResult } from "https://deno.land/x/postgres/mod.ts"; diff --git a/app/server.ts b/app/server.ts index 3ed03f750729af5048e26b409f312b6d7c00fa30..a29ef80921cb70c1105676214c8bd130121ab993 100644 --- a/app/server.ts +++ b/app/server.ts @@ -10,7 +10,16 @@ import { TrackEngagementViewParameters, TrackEngagementViewResponse, } from "./types.ts"; -import { Client, createSchema, createYoga, deadline, DeadlineError, Sentry, useResponseCache } from "./deps.ts"; +import { + Client, + createSchema, + createYoga, + deadline, + DeadlineError, + GraphQLError, + Sentry, + useResponseCache, +} from "./deps.ts"; import { fetchCategories, fetchEngagementOpportunities, trackEngagementView } from "./voltastics.ts"; import { logger } from "./logging.ts"; import { PostgresVolunteeringDB, VolunteeringDB } from "./volunteering_db.ts"; @@ -189,6 +198,20 @@ const createResolvers = ( }, }); +export class BadRequestError extends GraphQLError { + constructor(message: string) { + super(message, { + extensions: { + code: "BAD_REQUEST", + }, + }); + } + static isBadRequest(error: Error): boolean { + // deno-lint-ignore no-explicit-any + return error.name === "GraphQLError" && ((error as GraphQLError).extensions as any).code === "BAD_REQUEST"; + } +} + export const createGraphQLServer = (config: ServerConfig, volunteeringDB: VolunteeringDB): GraphQLServer => { const plugins = config.cacheEnabled ? [ @@ -200,6 +223,7 @@ export const createGraphQLServer = (config: ServerConfig, volunteeringDB: Volunt "Query.categories": config.cacheTtlMsVoltastics, "Query.filteredEngagements": config.cacheTtlMsDB, "Query.engagementRecommendations": config.cacheTtlMsDB, + "Query.engagementRecos": config.cacheTtlMsDB, }, }), ] diff --git a/app/volunteering_db.ts b/app/volunteering_db.ts index 4a1f60be5d39f1d04641ceb873c17a0e706da105..9b82cf2afd5f42ad2963df5652a73e92e59bd386 100644 --- a/app/volunteering_db.ts +++ b/app/volunteering_db.ts @@ -15,6 +15,7 @@ import { } from "./types.ts"; import { isNonEmptyString, safeJsonParse } from "./utils.ts"; import { logger } from "./logging.ts"; +import { BadRequestError } from "./server.ts"; export type VolunteeringDBConfig = { hostname: string; @@ -367,7 +368,9 @@ export class PostgresVolunteeringDB implements VolunteeringDB { skills, geolocationId, ).catch((reason) => { - logger.error("Error retrieving recommendations. Reason: ", reason); + if (!BadRequestError.isBadRequest(reason)) { + logger.error("Error retrieving recommendations. Reason: ", reason); + } throw reason; }); const recos = result.rows.map((row) => @@ -393,8 +396,10 @@ export class PostgresVolunteeringDB implements VolunteeringDB { topics, skills, geolocationId, - ).catch((reason) => { - logger.error("Error retrieving recommendations. Reason: ", reason); + ).catch((reason: Error) => { + if (!BadRequestError.isBadRequest(reason)) { + logger.error("Error retrieving recommendations. Reason: ", reason); + } throw reason; }); const recos = result.rows.map((row) => toEngagementRecommendation(this.imageProxyBaseUrl, row, topics, skills)); @@ -450,7 +455,9 @@ export class PostgresVolunteeringDB implements VolunteeringDB { ); } else { return Promise.reject( - "It is required to provide at least one of (topics, skills, or location) in order to retrieve recommendations", + new BadRequestError( + "It is required to provide at least one of (topics, skills, or location) in order to retrieve recommendations", + ), ); } } diff --git a/deno.lock b/deno.lock index 1ad9d407d1463645f7d7408f7a7a3c4f3cde324a..d58a544a4cb330a54ba94c581f96f193069de40a 100644 --- a/deno.lock +++ b/deno.lock @@ -2,19 +2,12 @@ "version": "3", "packages": { "specifiers": { - "npm:@graphql-yoga/plugin-response-cache@1.0.0": "npm:@graphql-yoga/plugin-response-cache@1.0.0_graphql@16.8.1_graphql-yoga@3.9.1__graphql@16.8.1__@envelop+core@3.0.6", + "npm:@graphql-yoga/plugin-response-cache@3.9.0": "npm:@graphql-yoga/plugin-response-cache@3.9.0_graphql@16.8.1_graphql-yoga@5.7.0__graphql@16.8.1", "npm:@types/node": "npm:@types/node@18.16.19", - "npm:graphql-yoga@5.1.1": "npm:graphql-yoga@5.1.1_graphql@16.8.1", + "npm:graphql-yoga@5.7.0": "npm:graphql-yoga@5.7.0_graphql@16.8.1", "npm:graphql@16.8.1": "npm:graphql@16.8.1" }, "npm": { - "@envelop/core@3.0.6": { - "integrity": "sha512-06t1xCPXq6QFN7W1JUEf68aCwYN0OUDNAIoJe7bAqhaoa2vn7NCcuX1VHkJ/OWpmElUgCsRO6RiBbIru1in0Ig==", - "dependencies": { - "@envelop/types": "@envelop/types@3.0.2", - "tslib": "tslib@2.7.0" - } - }, "@envelop/core@5.0.2": { "integrity": "sha512-tVL6OrMe6UjqLosiE+EH9uxh2TQC0469GwF4tE014ugRaDDKKVWwFwZe0TBMlcyHKh5MD4ZxktWo/1hqUxIuhw==", "dependencies": { @@ -22,20 +15,15 @@ "tslib": "tslib@2.7.0" } }, - "@envelop/response-cache@4.0.3_@envelop+core@3.0.6_graphql@16.8.1": { - "integrity": "sha512-5podyYKo2VzGnlPYYTbC6ivOdJ1TbzX2zOunOhVbnSbY2tAKwo+9kkpi7e2hfe4eUbpZTnuh05gpTZXcPPdo+A==", + "@envelop/response-cache@6.2.1_@envelop+core@5.0.2_graphql@16.8.1": { + "integrity": "sha512-sk+O5ieDoUjMGYAJkbi49MReH6wfDG7Avx39O2dY8/tgbbAfp/k7gju6Vcz7jVKaqqGn8ikd8eLVRpHULZCBpQ==", "dependencies": { - "@envelop/core": "@envelop/core@3.0.6", - "@graphql-tools/utils": "@graphql-tools/utils@8.13.1_graphql@16.8.1", + "@envelop/core": "@envelop/core@5.0.2", + "@graphql-tools/utils": "@graphql-tools/utils@10.5.4_graphql@16.8.1", + "@whatwg-node/fetch": "@whatwg-node/fetch@0.9.21", "fast-json-stable-stringify": "fast-json-stable-stringify@2.1.0", "graphql": "graphql@16.8.1", - "lru-cache": "lru-cache@6.0.0", - "tslib": "tslib@2.7.0" - } - }, - "@envelop/types@3.0.2": { - "integrity": "sha512-pOFea9ha0EkURWxJ/35axoH9fDGP5S2cUu/5Mmo9pb8zUf+TaEot8vB670XXihFEn/92759BMjLJNWBKmNhyng==", - "dependencies": { + "lru-cache": "lru-cache@10.4.3", "tslib": "tslib@2.7.0" } }, @@ -45,27 +33,6 @@ "tslib": "tslib@2.7.0" } }, - "@envelop/validation-cache@5.1.3_@envelop+core@3.0.6_graphql@16.8.1": { - "integrity": "sha512-MkzcScQHJJQ/9YCAPdWShEi3xZv4F4neTs+NszzSrZOdlU8z/THuRt7gZ0sO0y2be+sx+SKjHQP8Gq3VXXcTTg==", - "dependencies": { - "@envelop/core": "@envelop/core@3.0.6", - "graphql": "graphql@16.8.1", - "hash-it": "hash-it@6.0.0", - "lru-cache": "lru-cache@6.0.0", - "tslib": "tslib@2.7.0" - } - }, - "@graphql-tools/executor@0.0.18_graphql@16.8.1": { - "integrity": "sha512-xZC0C+/npXoSHBB5bsJdwxDLgtl1Gu4fL9J2TPQmXoZC3L2N506KJoppf9LgWdHU/xK04luJrhP6WjhfkIN0pQ==", - "dependencies": { - "@graphql-tools/utils": "@graphql-tools/utils@9.2.1_graphql@16.8.1", - "@graphql-typed-document-node/core": "@graphql-typed-document-node/core@3.2.0_graphql@16.8.1", - "@repeaterjs/repeater": "@repeaterjs/repeater@3.0.4", - "graphql": "graphql@16.8.1", - "tslib": "tslib@2.7.0", - "value-or-promise": "value-or-promise@1.0.12" - } - }, "@graphql-tools/executor@1.3.1_graphql@16.8.1": { "integrity": "sha512-tgJDdGf9SCAm64ofEMZdv925u6/J+eTmv36TGNLxgP2DpCJsZ6gnJ4A+0D28EazDXqJIvMiPd+3d+o3cCRCAnQ==", "dependencies": { @@ -77,14 +44,6 @@ "value-or-promise": "value-or-promise@1.0.12" } }, - "@graphql-tools/merge@8.4.2_graphql@16.8.1": { - "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", - "dependencies": { - "@graphql-tools/utils": "@graphql-tools/utils@9.2.1_graphql@16.8.1", - "graphql": "graphql@16.8.1", - "tslib": "tslib@2.7.0" - } - }, "@graphql-tools/merge@9.0.7_graphql@16.8.1": { "integrity": "sha512-lbTrIuXIbUSmSumHkPRY1QX0Z8JEtmRhnIrkH7vkfeEmf0kNn/nCWvJwqokm5U7L+a+DA1wlRM4slIlbfXjJBA==", "dependencies": { @@ -103,16 +62,6 @@ "value-or-promise": "value-or-promise@1.0.12" } }, - "@graphql-tools/schema@9.0.19_graphql@16.8.1": { - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dependencies": { - "@graphql-tools/merge": "@graphql-tools/merge@8.4.2_graphql@16.8.1", - "@graphql-tools/utils": "@graphql-tools/utils@9.2.1_graphql@16.8.1", - "graphql": "graphql@16.8.1", - "tslib": "tslib@2.7.0", - "value-or-promise": "value-or-promise@1.0.12" - } - }, "@graphql-tools/utils@10.5.4_graphql@16.8.1": { "integrity": "sha512-XHnyCWSlg1ccsD8s0y6ugo5GZ5TpkTiFVNPSYms5G0s6Z/xTuSmiLBfeqgkfaCwLmLaQnRCmNDL2JRnqc2R5bQ==", "dependencies": { @@ -123,54 +72,24 @@ "tslib": "tslib@2.7.0" } }, - "@graphql-tools/utils@8.13.1_graphql@16.8.1": { - "integrity": "sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==", - "dependencies": { - "graphql": "graphql@16.8.1", - "tslib": "tslib@2.7.0" - } - }, - "@graphql-tools/utils@9.2.1_graphql@16.8.1": { - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dependencies": { - "@graphql-typed-document-node/core": "@graphql-typed-document-node/core@3.2.0_graphql@16.8.1", - "graphql": "graphql@16.8.1", - "tslib": "tslib@2.7.0" - } - }, "@graphql-typed-document-node/core@3.2.0_graphql@16.8.1": { "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "dependencies": { "graphql": "graphql@16.8.1" } }, - "@graphql-yoga/logger@0.0.1": { - "integrity": "sha512-6npFz7eZz33mXgSm1waBLMjUNG0D5hTc/p5Hcs1mojkT3KsLpCOFokzTEKboNsBhKevYcaVa/xeA7WBj4UYMLg==", - "dependencies": { - "tslib": "tslib@2.7.0" - } - }, "@graphql-yoga/logger@2.0.0": { "integrity": "sha512-Mg8psdkAp+YTG1OGmvU+xa6xpsAmSir0hhr3yFYPyLNwzUj95DdIwsMpKadDj9xDpYgJcH3Hp/4JMal9DhQimA==", "dependencies": { "tslib": "tslib@2.7.0" } }, - "@graphql-yoga/plugin-response-cache@1.0.0_graphql@16.8.1_graphql-yoga@3.9.1__graphql@16.8.1__@envelop+core@3.0.6": { - "integrity": "sha512-8vOWIOFW0B51pCwQAkC+3mfleYraSJSIKKFhxa4eNHArp1PuhKZQkvLq7u6q6E+RehGtnc0ZyNchiYCwGZrf/w==", + "@graphql-yoga/plugin-response-cache@3.9.0_graphql@16.8.1_graphql-yoga@5.7.0__graphql@16.8.1": { + "integrity": "sha512-npuVvmPcgkh+kr7zdXjfenSNM0DgXYTG466YmiQ5/ygjDl1bnyCDxNwtss3CrLh5qDFzAn20gp72zuSHvwY0fg==", "dependencies": { - "@envelop/response-cache": "@envelop/response-cache@4.0.3_@envelop+core@3.0.6_graphql@16.8.1", + "@envelop/response-cache": "@envelop/response-cache@6.2.1_@envelop+core@5.0.2_graphql@16.8.1", "graphql": "graphql@16.8.1", - "graphql-yoga": "graphql-yoga@3.9.1_graphql@16.8.1_@envelop+core@3.0.6" - } - }, - "@graphql-yoga/subscription@3.1.0": { - "integrity": "sha512-Vc9lh8KzIHyS3n4jBlCbz7zCjcbtQnOBpsymcRvHhFr2cuH+knmRn0EmzimMQ58jQ8kxoRXXC3KJS3RIxSdPIg==", - "dependencies": { - "@graphql-yoga/typed-event-target": "@graphql-yoga/typed-event-target@1.0.0", - "@repeaterjs/repeater": "@repeaterjs/repeater@3.0.6", - "@whatwg-node/events": "@whatwg-node/events@0.0.2", - "tslib": "tslib@2.7.0" + "graphql-yoga": "graphql-yoga@5.7.0_graphql@16.8.1" } }, "@graphql-yoga/subscription@5.0.1": { @@ -182,13 +101,6 @@ "tslib": "tslib@2.7.0" } }, - "@graphql-yoga/typed-event-target@1.0.0": { - "integrity": "sha512-Mqni6AEvl3VbpMtKw+TIjc9qS9a8hKhiAjFtqX488yq5oJtj9TkNlFTIacAVS3vnPiswNsmDiQqvwUOcJgi1DA==", - "dependencies": { - "@repeaterjs/repeater": "@repeaterjs/repeater@3.0.6", - "tslib": "tslib@2.7.0" - } - }, "@graphql-yoga/typed-event-target@3.0.0": { "integrity": "sha512-w+liuBySifrstuHbFrHoHAEyVnDFVib+073q8AeAJ/qqJfvFvAwUPLLtNohR/WDVRgSasfXtl3dcNuVJWN+rjg==", "dependencies": { @@ -200,34 +112,6 @@ "integrity": "sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==", "dependencies": {} }, - "@peculiar/asn1-schema@2.3.13": { - "integrity": "sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g==", - "dependencies": { - "asn1js": "asn1js@3.0.5", - "pvtsutils": "pvtsutils@1.3.5", - "tslib": "tslib@2.7.0" - } - }, - "@peculiar/json-schema@1.1.12": { - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dependencies": { - "tslib": "tslib@2.7.0" - } - }, - "@peculiar/webcrypto@1.5.0": { - "integrity": "sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==", - "dependencies": { - "@peculiar/asn1-schema": "@peculiar/asn1-schema@2.3.13", - "@peculiar/json-schema": "@peculiar/json-schema@1.1.12", - "pvtsutils": "pvtsutils@1.3.5", - "tslib": "tslib@2.7.0", - "webcrypto-core": "webcrypto-core@1.8.0" - } - }, - "@repeaterjs/repeater@3.0.4": { - "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==", - "dependencies": {} - }, "@repeaterjs/repeater@3.0.6": { "integrity": "sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==", "dependencies": {} @@ -236,30 +120,12 @@ "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", "dependencies": {} }, - "@whatwg-node/events@0.0.2": { - "integrity": "sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==", - "dependencies": {} - }, - "@whatwg-node/events@0.0.3": { - "integrity": "sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==", - "dependencies": {} - }, "@whatwg-node/events@0.1.2": { "integrity": "sha512-ApcWxkrs1WmEMS2CaLLFUEem/49erT3sxIVjpzU5f6zmVcnijtDSrhoK2zVobOIikZJdH63jdAXOrvjf6eOUNQ==", "dependencies": { "tslib": "tslib@2.7.0" } }, - "@whatwg-node/fetch@0.8.8": { - "integrity": "sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==", - "dependencies": { - "@peculiar/webcrypto": "@peculiar/webcrypto@1.5.0", - "@whatwg-node/node-fetch": "@whatwg-node/node-fetch@0.3.6", - "busboy": "busboy@1.6.0", - "urlpattern-polyfill": "urlpattern-polyfill@8.0.2", - "web-streams-polyfill": "web-streams-polyfill@3.3.3" - } - }, "@whatwg-node/fetch@0.9.21": { "integrity": "sha512-Wt0jPb+04JjobK0pAAN7mEHxVHcGA9HoP3OyCsZtyAecNQeADXCZ1MihFwVwjsgaRYuGVmNlsCmLxlG6mor8Gw==", "dependencies": { @@ -267,16 +133,6 @@ "urlpattern-polyfill": "urlpattern-polyfill@10.0.0" } }, - "@whatwg-node/node-fetch@0.3.6": { - "integrity": "sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==", - "dependencies": { - "@whatwg-node/events": "@whatwg-node/events@0.0.3", - "busboy": "busboy@1.6.0", - "fast-querystring": "fast-querystring@1.1.2", - "fast-url-parser": "fast-url-parser@1.1.3", - "tslib": "tslib@2.7.0" - } - }, "@whatwg-node/node-fetch@0.5.26": { "integrity": "sha512-4jXDeZ4IH4bylZ6wu14VEx0aDXXhrN4TC279v9rPmn08g4EYekcYf8wdcOOnS9STjDkb6x77/6xBUTqxGgjr8g==", "dependencies": { @@ -286,13 +142,6 @@ "tslib": "tslib@2.7.0" } }, - "@whatwg-node/server@0.7.7": { - "integrity": "sha512-aHURgNDFm/48WVV3vhTMfnEKCYwYgdaRdRhZsQZx4UVFjGGkGay7Ys0+AYu9QT/jpoImv2oONkstoTMUprDofg==", - "dependencies": { - "@whatwg-node/fetch": "@whatwg-node/fetch@0.8.8", - "tslib": "tslib@2.7.0" - } - }, "@whatwg-node/server@0.9.49": { "integrity": "sha512-3KzLXw80gWnTsQ746G/LFdCThTPfDodjQs4PnmoNuPa6XUOl4HWq8TlJpxtmnEEB+y+UYLal+3VQ68dtYlbUDQ==", "dependencies": { @@ -300,14 +149,6 @@ "tslib": "tslib@2.7.0" } }, - "asn1js@3.0.5": { - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dependencies": { - "pvtsutils": "pvtsutils@1.3.5", - "pvutils": "pvutils@1.1.3", - "tslib": "tslib@2.7.0" - } - }, "busboy@1.6.0": { "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", "dependencies": { @@ -338,32 +179,8 @@ "fast-decode-uri-component": "fast-decode-uri-component@1.0.1" } }, - "fast-url-parser@1.1.3": { - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dependencies": { - "punycode": "punycode@1.4.1" - } - }, - "graphql-yoga@3.9.1_graphql@16.8.1_@envelop+core@3.0.6": { - "integrity": "sha512-BB6EkN64VBTXWmf9Kym2OsVZFzBC0mAsQNo9eNB5xIr3t+x7qepQ34xW5A353NWol3Js3xpzxwIKFVF6l9VsPg==", - "dependencies": { - "@envelop/core": "@envelop/core@3.0.6", - "@envelop/validation-cache": "@envelop/validation-cache@5.1.3_@envelop+core@3.0.6_graphql@16.8.1", - "@graphql-tools/executor": "@graphql-tools/executor@0.0.18_graphql@16.8.1", - "@graphql-tools/schema": "@graphql-tools/schema@9.0.19_graphql@16.8.1", - "@graphql-tools/utils": "@graphql-tools/utils@9.2.1_graphql@16.8.1", - "@graphql-yoga/logger": "@graphql-yoga/logger@0.0.1", - "@graphql-yoga/subscription": "@graphql-yoga/subscription@3.1.0", - "@whatwg-node/fetch": "@whatwg-node/fetch@0.8.8", - "@whatwg-node/server": "@whatwg-node/server@0.7.7", - "dset": "dset@3.1.4", - "graphql": "graphql@16.8.1", - "lru-cache": "lru-cache@7.18.3", - "tslib": "tslib@2.7.0" - } - }, - "graphql-yoga@5.1.1_graphql@16.8.1": { - "integrity": "sha512-oak5nVKTHpqJgpA1aT3cJPOlCidrW7l6nbc5L6w07VdFul16ielGI2ZnQDAXO+qQih09/4WspD5x0SsSZH+hkg==", + "graphql-yoga@5.7.0_graphql@16.8.1": { + "integrity": "sha512-QyGVvFAvGhMrzjJvhjsxsyoE+e4lNrj5f5qOsRYJuWIjyw7tHfbBvybZIwzNOGY0aB5sgA8BlVvu5hxjdKJ5tQ==", "dependencies": { "@envelop/core": "@envelop/core@5.0.2", "@graphql-tools/executor": "@graphql-tools/executor@1.3.1_graphql@16.8.1", @@ -383,38 +200,10 @@ "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", "dependencies": {} }, - "hash-it@6.0.0": { - "integrity": "sha512-KHzmSFx1KwyMPw0kXeeUD752q/Kfbzhy6dAZrjXV9kAIXGqzGvv8vhkUqj+2MGZldTo0IBpw6v7iWE7uxsvH0w==", - "dependencies": {} - }, "lru-cache@10.4.3": { "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dependencies": {} }, - "lru-cache@6.0.0": { - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "yallist@4.0.0" - } - }, - "lru-cache@7.18.3": { - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dependencies": {} - }, - "punycode@1.4.1": { - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dependencies": {} - }, - "pvtsutils@1.3.5": { - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", - "dependencies": { - "tslib": "tslib@2.7.0" - } - }, - "pvutils@1.1.3": { - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "dependencies": {} - }, "streamsearch@1.1.0": { "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", "dependencies": {} @@ -427,31 +216,9 @@ "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", "dependencies": {} }, - "urlpattern-polyfill@8.0.2": { - "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", - "dependencies": {} - }, "value-or-promise@1.0.12": { "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", "dependencies": {} - }, - "web-streams-polyfill@3.3.3": { - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "dependencies": {} - }, - "webcrypto-core@1.8.0": { - "integrity": "sha512-kR1UQNH8MD42CYuLzvibfakG5Ew5seG85dMMoAM/1LqvckxaF6pUiidLuraIu4V+YCIFabYecUZAW0TuxAoaqw==", - "dependencies": { - "@peculiar/asn1-schema": "@peculiar/asn1-schema@2.3.13", - "@peculiar/json-schema": "@peculiar/json-schema@1.1.12", - "asn1js": "asn1js@3.0.5", - "pvtsutils": "pvtsutils@1.3.5", - "tslib": "tslib@2.7.0" - } - }, - "yallist@4.0.0": { - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dependencies": {} } } },