From 92fdd638a5f5514eac456b7c391d5f89c7b11375 Mon Sep 17 00:00:00 2001 From: Valerie Pomerleau Date: Thu, 23 Apr 2026 22:45:28 -0700 Subject: [PATCH] chore(sentry): remove unused @nestjs/apollo, @nestjs/graphql, @apollo/server MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Because: - fxa-graphql-api was retired and fxa-admin-server/admin-panel migrated from GraphQL to REST, so nothing in the monorepo reaches @nestjs/apollo, @nestjs/graphql, or @apollo/server at runtime. - The only remaining surface was three stale Sentry integration files: a SentryPlugin class with zero importers and two dead `graphql` context branches in the reporting helpers. - Dropping them shrinks the NestJS 11 lockstep upgrade scope (FXA-13358), obsoletes dependabot PR #20275 (@apollo/server 4 → 5), and eliminates five related advisories including GHSA-9q82-xgwf-vj6h. This commit: - Deletes libs/shared/sentry/src/lib/nest/sentry.plugin.ts and its barrel export. - Strips @nestjs/graphql and @apollo/server imports, isApolloError, and processException from reporting.ts in both libs/shared/sentry and libs/shared/sentry-nest, and removes the isApolloError call from ignoreError. - Removes the "should ignore apollo errors" test and GraphQLError import from both reporting.spec.ts files. - Removes @apollo/server, @nestjs/apollo, and @nestjs/graphql from the root package.json and the corresponding yarn.lock entries. - Drops '@nestjs/apollo' and '@nestjs/graphql' from the serverExternalPackages array in apps/payments/next/next.config.js since those packages no longer resolve. - Pins @types/node-fetch ^2.6.12 as a direct root devDependency — @apollo/server was transitively providing it, and packages/fxa-admin-server/src/newsletters/basket.service.ts still imports from node-fetch. - Migrates libs/vendored/jwtool/src/lib/jwtool.ts to Node 22's global fetch (typed via @types/node/globals.d.ts) so the vendored library no longer imports node-fetch. Closes #FXA-13606 --- apps/payments/next/next.config.js | 2 - .../sentry-nest/src/lib/reporting.spec.ts | 11 - libs/shared/sentry-nest/src/lib/reporting.ts | 45 +- libs/shared/sentry/src/index.ts | 1 - .../sentry/src/lib/nest/sentry.plugin.ts | 127 ---- libs/shared/sentry/src/lib/reporting.spec.ts | 11 - libs/shared/sentry/src/lib/reporting.ts | 43 +- libs/vendored/jwtool/src/lib/jwtool.ts | 1 - package.json | 4 +- yarn.lock | 556 +----------------- 10 files changed, 34 insertions(+), 767 deletions(-) delete mode 100644 libs/shared/sentry/src/lib/nest/sentry.plugin.ts diff --git a/apps/payments/next/next.config.js b/apps/payments/next/next.config.js index 7e22a7ac39b..cc46b41dd68 100644 --- a/apps/payments/next/next.config.js +++ b/apps/payments/next/next.config.js @@ -32,11 +32,9 @@ const nextConfig = { '@googleapis/androidpublisher', '@googlemaps/google-maps-services-js', '@grpc', - '@nestjs/apollo', '@nestjs/common', '@nestjs/config', '@nestjs/core', - '@nestjs/graphql', '@nestjs/mapped-types', '@nestjs/passport', '@nestjs/platform-express', diff --git a/libs/shared/sentry-nest/src/lib/reporting.spec.ts b/libs/shared/sentry-nest/src/lib/reporting.spec.ts index 3298f70b393..b52116793c9 100644 --- a/libs/shared/sentry-nest/src/lib/reporting.spec.ts +++ b/libs/shared/sentry-nest/src/lib/reporting.spec.ts @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { ignoreError, isAuthServerError } from './reporting'; -import { GraphQLError } from 'graphql'; import { HttpException } from '@nestjs/common'; describe('detects auth server error', () => { @@ -65,16 +64,6 @@ describe('error ignore policies', () => { ).toBeTruthy(); }); - it('should ignore apollo errors', () => { - // Apollo errors should be sent to clients and we don't report them. - const err = new GraphQLError('BOOM', { - extensions: { - code: 'BAD_REQUEST', - }, - }); - expect(ignoreError(err)).toBeTruthy(); - }); - it('should ignore non 500 errors', () => { // Non-500s are expected responses for clients and we don't report them. expect(ignoreError(new HttpException('Not Found', 404))).toBeTruthy(); diff --git a/libs/shared/sentry-nest/src/lib/reporting.ts b/libs/shared/sentry-nest/src/lib/reporting.ts index e36a6c24092..b525ac29a51 100644 --- a/libs/shared/sentry-nest/src/lib/reporting.ts +++ b/libs/shared/sentry-nest/src/lib/reporting.ts @@ -1,9 +1,5 @@ import * as Sentry from '@sentry/nestjs'; -import { ExecutionContext, HttpException } from '@nestjs/common'; -import { GqlContextType, GqlExecutionContext } from '@nestjs/graphql'; -import { ApolloServerErrorCode } from '@apollo/server/errors'; - -import { GraphQLError } from 'graphql'; +import { HttpException } from '@nestjs/common'; import { Message } from '@aws-sdk/client-sqs'; import { Request } from 'express'; @@ -27,26 +23,10 @@ export function captureSqsError(err: Error, message?: Message): void { }); } -/** - * Determine if an error is an ApolloError. - * Prior to GQL 16.8 and apollo-server 4.9.3, we used ApolloError from apollo-server. - * Now, we populate fields on GraphQL error to mimic the previous state of ApolloError. - */ -export function isApolloError(err: Error): boolean { - if (err instanceof GraphQLError) { - const code = err.extensions?.['code']; - if (typeof code === 'string') { - return Object.keys(ApolloServerErrorCode).includes(code); - } - } - return false; -} - /** Indicates if error should be sent to Sentry */ export function ignoreError(err: any): boolean { return ( isAuthServerError(err) || - isApolloError(err) || isOriginallyHttpError(err) || (isHttpException(err) && !isInternalServerError(err)) ); @@ -127,26 +107,3 @@ export function reportRequestException( exception.reported = true; }); } - -// TODO: Dead code? -export function processException(context: ExecutionContext, exception: Error) { - // First determine what type of a request this is - let request: Request | undefined; - let gqlExec: GqlExecutionContext | undefined; - if (context.getType() === 'http') { - request = context.switchToHttp().getRequest(); - } else if (context.getType() === 'graphql') { - gqlExec = GqlExecutionContext.create(context); - request = gqlExec.getContext().req; - } - const excContexts: ExtraContext[] = []; - if (gqlExec) { - const info = gqlExec.getInfo(); - excContexts.push({ - name: 'graphql', - fieldData: { fieldName: info.fieldName, path: info.path }, - }); - } - - reportRequestException(exception, excContexts, request); -} diff --git a/libs/shared/sentry/src/index.ts b/libs/shared/sentry/src/index.ts index febc66627ef..d45bcf8d636 100644 --- a/libs/shared/sentry/src/index.ts +++ b/libs/shared/sentry/src/index.ts @@ -2,7 +2,6 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -export * from './lib/nest/sentry.plugin'; export * from './lib/nest/sentry.constants'; export * from './lib/reporting'; export * from './lib/node'; diff --git a/libs/shared/sentry/src/lib/nest/sentry.plugin.ts b/libs/shared/sentry/src/lib/nest/sentry.plugin.ts deleted file mode 100644 index cabc4321891..00000000000 --- a/libs/shared/sentry/src/lib/nest/sentry.plugin.ts +++ /dev/null @@ -1,127 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/** - * Apollo-Server plugin for Sentry - * - * Modeled after: - * https://blog.sentry.io/2020/07/22/handling-graphql-errors-using-sentry - * - * This makes the following assumptions about the Apollo Server setup: - * 1. The request object to Apollo's context as `.req`. - * 2. `SentryPlugin` is passed in the `plugins` option. - */ - -import { Request } from 'express'; - -import { - ApolloServerPlugin, - BaseContext, - GraphQLRequestContext, - GraphQLRequestListener, -} from '@apollo/server'; -import { Plugin } from '@nestjs/apollo'; -import * as Sentry from '@sentry/node'; - -import { LOGGER_PROVIDER } from '@fxa/shared/log'; -import type { LoggerService } from '@nestjs/common'; -import { Inject } from '@nestjs/common'; -import { - ExtraContext, - ignoreError, - reportRequestException, -} from '../reporting'; - -interface Context extends BaseContext { - transaction: Sentry.Span; - request: Request; -} - -export async function createContext(ctx: any): Promise { - const transaction = Sentry.startInactiveSpan({ - op: 'gql', - name: 'GraphQLTransaction', - forceTransaction: true, - }); - return { request: ctx.req, transaction }; -} - -@Plugin() -export class SentryPlugin implements ApolloServerPlugin { - constructor(@Inject(LOGGER_PROVIDER) private log: LoggerService) {} - - async requestDidStart({ - request, - contextValue, - }: GraphQLRequestContext): Promise> { - const log = this.log; - - if (request.operationName != null) { - try { - contextValue.transaction.updateName(request.operationName); - } catch (err) { - log.error('sentry-plugin', err); - } - } - - return { - async willSendResponse({ contextValue }) { - try { - contextValue.transaction.end(); - } catch (err) { - log.error('sentry-plugin', err); - } - }, - - async executionDidStart() { - return { - willResolveField({ contextValue, info }) { - let span: Sentry.Span; - try { - span = Sentry.startInactiveSpan({ - op: 'resolver', - name: `${info.parentType.name}.${info.fieldName}`, - scope: contextValue.transaction, - }); - } catch (err) { - log.error('sentry-plugin', err); - } - - return () => { - span?.end(); - }; - }, - }; - }, - - async didEncounterErrors({ contextValue, errors, operation }) { - // If we couldn't parse the operation, don't - // do anything here - if (!operation) { - return; - } - for (const err of errors) { - // Skip HttpExceptions with status code < 500. - if (ignoreError(err)) { - return; - } - - const excContexts: ExtraContext[] = []; - if ((err as any).path?.join) { - excContexts.push({ - name: 'graphql', - fieldData: { - path: err.path?.join(' > ') ?? '', - }, - }); - } - reportRequestException( - err.originalError ?? err, - excContexts, - contextValue.request - ); - } - }, - }; - } -} diff --git a/libs/shared/sentry/src/lib/reporting.spec.ts b/libs/shared/sentry/src/lib/reporting.spec.ts index 1af8a3229a6..146357da7ef 100644 --- a/libs/shared/sentry/src/lib/reporting.spec.ts +++ b/libs/shared/sentry/src/lib/reporting.spec.ts @@ -2,7 +2,6 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { ignoreError, isAuthServerError } from './reporting'; -import { GraphQLError } from 'graphql'; import { HttpException } from '@nestjs/common'; describe('detects auth server error', () => { @@ -64,16 +63,6 @@ describe('error ignore policies', () => { ).toBeTruthy(); }); - it('should ignore apollo errors', () => { - // Apollo errors should be sent to clients and we don't report them. - const err = new GraphQLError('BOOM', { - extensions: { - code: 'BAD_REQUEST', - }, - }); - expect(ignoreError(err)).toBeTruthy(); - }); - it('should ignore non 500 errors', () => { // Non-500s are expected responses for clients and we don't report them. expect(ignoreError(new HttpException('Not Found', 404))).toBeTruthy(); diff --git a/libs/shared/sentry/src/lib/reporting.ts b/libs/shared/sentry/src/lib/reporting.ts index 43424719e3f..9441b0cb176 100644 --- a/libs/shared/sentry/src/lib/reporting.ts +++ b/libs/shared/sentry/src/lib/reporting.ts @@ -1,10 +1,7 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { ExecutionContext, HttpException } from '@nestjs/common'; -import { ApolloServerErrorCode } from '@apollo/server/errors'; -import { GraphQLError } from 'graphql'; -import { GqlContextType, GqlExecutionContext } from '@nestjs/graphql'; +import { HttpException } from '@nestjs/common'; import * as Sentry from '@sentry/node'; import { Message } from '@aws-sdk/client-sqs'; import { Request } from 'express'; @@ -33,27 +30,11 @@ export function tagFxaName(data: any, name?: string) { export function ignoreError(err: any): boolean { return ( isAuthServerError(err) || - isApolloError(err) || isOriginallyHttpError(err) || (isHttpException(err) && !isInternalServerError(err)) ); } -/** - * Determine if an error is an ApolloError. - * Prior to GQL 16.8 and apollo-server 4.9.3, we used ApolloError from apollo-server. - * Now, we populate fields on GraphQL error to mimic the previous state of ApolloError. - */ -export function isApolloError(err: Error): boolean { - if (err instanceof GraphQLError) { - const code = err.extensions?.code; - if (typeof code === 'string') { - return Object.keys(ApolloServerErrorCode).includes(code); - } - } - return false; -} - /** * Determine if an error originates from auth-server. Auth server responds with error * codes and numbers, and client applications handle these states accordingly. These @@ -145,25 +126,3 @@ export function reportRequestException( exception.reported = true; }); } - -export function processException(context: ExecutionContext, exception: Error) { - // First determine what type of a request this is - let request: Request | undefined; - let gqlExec: GqlExecutionContext | undefined; - if (context.getType() === 'http') { - request = context.switchToHttp().getRequest(); - } else if (context.getType() === 'graphql') { - gqlExec = GqlExecutionContext.create(context); - request = gqlExec.getContext().req; - } - const excContexts: ExtraContext[] = []; - if (gqlExec) { - const info = gqlExec.getInfo(); - excContexts.push({ - name: 'graphql', - fieldData: { fieldName: info.fieldName, path: info.path }, - }); - } - - reportRequestException(exception, excContexts, request); -} diff --git a/libs/vendored/jwtool/src/lib/jwtool.ts b/libs/vendored/jwtool/src/lib/jwtool.ts index 9d9b6e187db..af3643a73d0 100644 --- a/libs/vendored/jwtool/src/lib/jwtool.ts +++ b/libs/vendored/jwtool/src/lib/jwtool.ts @@ -4,7 +4,6 @@ import * as crypto from 'crypto'; import * as fs from 'fs'; -import fetch from 'node-fetch'; import { jwk2pem, pem2jwk } from '@fxa/shared/pem-jwk'; diff --git a/package.json b/package.json index af573ec9677..ffed3d79da0 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "license": "MPL-2.0", "dependencies": { "@apollo/client": "^3.11.1", - "@apollo/server": "^4.13.0", "@aws-sdk/client-s3": "^3.973.0", "@aws-sdk/client-sns": "^3.973.0", "@aws-sdk/client-sqs": "^3.973.0", @@ -59,11 +58,9 @@ "@googlemaps/google-maps-services-js": "^3.4.0", "@grpc/grpc-js": "^1.11.1", "@mozilla/glean": "^5.0.8", - "@nestjs/apollo": "^12.2.1", "@nestjs/common": "^10.4.5", "@nestjs/config": "^3.3.0", "@nestjs/core": "^10.4.1", - "@nestjs/graphql": "^12.2.0", "@nestjs/mapped-types": "^2.0.5", "@nestjs/passport": "^10.0.3", "@nestjs/platform-express": "^10.4.18", @@ -233,6 +230,7 @@ "@types/module-alias": "^2", "@types/mysql": "^2", "@types/node": "^22.13.5", + "@types/node-fetch": "^2.6.12", "@types/nodemailer": "^7.0.4", "@types/passport": "^1.0.6", "@types/passport-http-bearer": "^1.0.36", diff --git a/yarn.lock b/yarn.lock index 09ee8f9b3cf..68f5cb57420 100644 --- a/yarn.lock +++ b/yarn.lock @@ -251,15 +251,6 @@ __metadata: languageName: node linkType: hard -"@apollo/cache-control-types@npm:^1.0.3": - version: 1.0.3 - resolution: "@apollo/cache-control-types@npm:1.0.3" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/b49a9e99c7d5af6dfe12b775eb6374c8a54894e17ffa882b3d85f4501ca19ee413bdcc1a787a4b44dcc2903ce2c28f19b69116f338f88670c4f6f2e10a0bc498 - languageName: node - linkType: hard - "@apollo/client@npm:^3.11.1": version: 3.13.8 resolution: "@apollo/client@npm:3.13.8" @@ -296,218 +287,6 @@ __metadata: languageName: node linkType: hard -"@apollo/protobufjs@npm:1.2.7": - version: 1.2.7 - resolution: "@apollo/protobufjs@npm:1.2.7" - dependencies: - "@protobufjs/aspromise": "npm:^1.1.2" - "@protobufjs/base64": "npm:^1.1.2" - "@protobufjs/codegen": "npm:^2.0.4" - "@protobufjs/eventemitter": "npm:^1.1.0" - "@protobufjs/fetch": "npm:^1.1.0" - "@protobufjs/float": "npm:^1.0.2" - "@protobufjs/inquire": "npm:^1.1.0" - "@protobufjs/path": "npm:^1.1.2" - "@protobufjs/pool": "npm:^1.1.0" - "@protobufjs/utf8": "npm:^1.1.0" - "@types/long": "npm:^4.0.0" - long: "npm:^4.0.0" - bin: - apollo-pbjs: bin/pbjs - apollo-pbts: bin/pbts - checksum: 10c0/24b08929c5216f75e3bf457cf7e132d957d6774b0feebb104e98d9b0c06e801ef3919ee23d6a63a6297fb4aa41da3491b8e9acc3481fea0909c90f41f1e5a0f6 - languageName: node - linkType: hard - -"@apollo/server-gateway-interface@npm:^1.1.1": - version: 1.1.1 - resolution: "@apollo/server-gateway-interface@npm:1.1.1" - dependencies: - "@apollo/usage-reporting-protobuf": "npm:^4.1.1" - "@apollo/utils.fetcher": "npm:^2.0.0" - "@apollo/utils.keyvaluecache": "npm:^2.1.0" - "@apollo/utils.logger": "npm:^2.0.0" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/2787b2954028f5aff55846df98b3967f38f40df4c5e4c9df0da56ac16d4323ba0aeabd76d4b134fedc9f6fe7d63e6fd9e9a133eb5d209408eac34c0e25cbe7dd - languageName: node - linkType: hard - -"@apollo/server-plugin-landing-page-graphql-playground@npm:4.0.0": - version: 4.0.0 - resolution: "@apollo/server-plugin-landing-page-graphql-playground@npm:4.0.0" - dependencies: - "@apollographql/graphql-playground-html": "npm:1.6.29" - peerDependencies: - "@apollo/server": ^4.0.0 - checksum: 10c0/f05c26a4f91922787423f024f1ee6e07a018477edba64cb4cf8d0b583fd5650f3c549ea60d5dcf9c6606a69d1986f9ef0cc6e667cd1cd62580860f6a812a0ba8 - languageName: node - linkType: hard - -"@apollo/server@npm:^4.13.0": - version: 4.13.0 - resolution: "@apollo/server@npm:4.13.0" - dependencies: - "@apollo/cache-control-types": "npm:^1.0.3" - "@apollo/server-gateway-interface": "npm:^1.1.1" - "@apollo/usage-reporting-protobuf": "npm:^4.1.1" - "@apollo/utils.createhash": "npm:^2.0.2" - "@apollo/utils.fetcher": "npm:^2.0.0" - "@apollo/utils.isnodelike": "npm:^2.0.0" - "@apollo/utils.keyvaluecache": "npm:^2.1.0" - "@apollo/utils.logger": "npm:^2.0.0" - "@apollo/utils.usagereporting": "npm:^2.1.0" - "@apollo/utils.withrequired": "npm:^2.0.0" - "@graphql-tools/schema": "npm:^9.0.0" - "@types/express": "npm:^4.17.13" - "@types/express-serve-static-core": "npm:^4.17.30" - "@types/node-fetch": "npm:^2.6.1" - async-retry: "npm:^1.2.1" - content-type: "npm:^1.0.5" - cors: "npm:^2.8.5" - express: "npm:^4.21.1" - loglevel: "npm:^1.6.8" - lru-cache: "npm:^7.10.1" - negotiator: "npm:^0.6.3" - node-abort-controller: "npm:^3.1.1" - node-fetch: "npm:^2.6.7" - uuid: "npm:^9.0.0" - whatwg-mimetype: "npm:^3.0.0" - peerDependencies: - graphql: ^16.6.0 - checksum: 10c0/c88d6a495580b77447a3f19e37b9cbd8cd131a6aab5a844aa05bef6228a26c0e095247006dbf5ed688ed0a9eb034e4c91a6b45ac081fdc77e367982c0e5867d2 - languageName: node - linkType: hard - -"@apollo/usage-reporting-protobuf@npm:^4.1.0, @apollo/usage-reporting-protobuf@npm:^4.1.1": - version: 4.1.1 - resolution: "@apollo/usage-reporting-protobuf@npm:4.1.1" - dependencies: - "@apollo/protobufjs": "npm:1.2.7" - checksum: 10c0/45f0167a87d4ae8a12124831ebb29905122d28afdbfa23a4f25f4570189d5ddaa6f2829ef97923f5909b9753e39dbd28f810ca2a93ad9fcd60b2baf5669f5223 - languageName: node - linkType: hard - -"@apollo/utils.createhash@npm:^2.0.2": - version: 2.0.2 - resolution: "@apollo/utils.createhash@npm:2.0.2" - dependencies: - "@apollo/utils.isnodelike": "npm:^2.0.1" - sha.js: "npm:^2.4.11" - checksum: 10c0/2f8f3b617155e1128949fb3e84bd64923a77d4f3db71d5a2fba42e6771267c02f61b762fd4101074e1c5df846940965217f16f9fa759b9c4319f477e5fc258b0 - languageName: node - linkType: hard - -"@apollo/utils.dropunuseddefinitions@npm:^2.0.1": - version: 2.0.1 - resolution: "@apollo/utils.dropunuseddefinitions@npm:2.0.1" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/4f646ac18219c16b77ffacf25cd18be4f0dfe7b4bd1fa4d57de7e0105c6f2daa71e30a9ba3266a322d4adb6fbbb2494b053748f3fbe7ed035683cf490b6abf38 - languageName: node - linkType: hard - -"@apollo/utils.fetcher@npm:^2.0.0": - version: 2.0.1 - resolution: "@apollo/utils.fetcher@npm:2.0.1" - checksum: 10c0/6634468a8f65e32935de65ca1729fae1434d53b6bf48b1b3097a47241f7b802643aa5b2c76cd0e1a67fd17ddd0bb3e58b4290f6b2121535f69e891125c372e8e - languageName: node - linkType: hard - -"@apollo/utils.isnodelike@npm:^2.0.0, @apollo/utils.isnodelike@npm:^2.0.1": - version: 2.0.1 - resolution: "@apollo/utils.isnodelike@npm:2.0.1" - checksum: 10c0/05b41bf608d6232cc859204b59766131196d24d5fcf2a9588c4631a2ec87c833dd7f39b0fe016ee3d2c22bb4561ed1801ae39f9adb5d7cc3cbe544adb2d3de44 - languageName: node - linkType: hard - -"@apollo/utils.keyvaluecache@npm:^2.1.0": - version: 2.1.1 - resolution: "@apollo/utils.keyvaluecache@npm:2.1.1" - dependencies: - "@apollo/utils.logger": "npm:^2.0.1" - lru-cache: "npm:^7.14.1" - checksum: 10c0/393a66ccae32d0f0d346f796b9196c983abd9300e340ecdefa7edb5acd577693ef31ab72de73ef0acee689856a80f977938aab57d3eb9d8cbd3ce494cc4c0233 - languageName: node - linkType: hard - -"@apollo/utils.logger@npm:^2.0.0, @apollo/utils.logger@npm:^2.0.1": - version: 2.0.1 - resolution: "@apollo/utils.logger@npm:2.0.1" - checksum: 10c0/7fcf72fdce95540907647ed99b878e2b84f82b963ab00e3bcfea082597d51a5b825411659e378c1497485f858e4e0bb7eb55369c502d96a0b87375d5036a92ba - languageName: node - linkType: hard - -"@apollo/utils.printwithreducedwhitespace@npm:^2.0.1": - version: 2.0.1 - resolution: "@apollo/utils.printwithreducedwhitespace@npm:2.0.1" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/e4af07f8608bff93970574f891c98cb34c960faa3036d467180bb8964684c5d89357311269f78113e1871fc670a2be7672096f6de06180eb170a3219571a7881 - languageName: node - linkType: hard - -"@apollo/utils.removealiases@npm:2.0.1": - version: 2.0.1 - resolution: "@apollo/utils.removealiases@npm:2.0.1" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/8783fc0cfc04a3127d6537bef950c500c2ddf50206847e691b630dde9e7f3a402ed540800e19e69405e7421bdcc05fba84ce45cba9a824e550b405900efffcae - languageName: node - linkType: hard - -"@apollo/utils.sortast@npm:^2.0.1": - version: 2.0.1 - resolution: "@apollo/utils.sortast@npm:2.0.1" - dependencies: - lodash.sortby: "npm:^4.7.0" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/5b8ccabfa4e86c31ab5108f72bcea8968fdc63f1a9306707365ddf77f7d8bd406dea494b269e4dee210c97a681ee031c60f9a34368dcee4692ec462d076a0bd9 - languageName: node - linkType: hard - -"@apollo/utils.stripsensitiveliterals@npm:^2.0.1": - version: 2.0.1 - resolution: "@apollo/utils.stripsensitiveliterals@npm:2.0.1" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/eb6b22e5a140be574e526da044a48ac0f8949b6f87dccb0c4224c02a5a3df4db82873ab128177476765f1091edde4f3dcae5cb73077827b2cb91489c1c7a8130 - languageName: node - linkType: hard - -"@apollo/utils.usagereporting@npm:^2.1.0": - version: 2.1.0 - resolution: "@apollo/utils.usagereporting@npm:2.1.0" - dependencies: - "@apollo/usage-reporting-protobuf": "npm:^4.1.0" - "@apollo/utils.dropunuseddefinitions": "npm:^2.0.1" - "@apollo/utils.printwithreducedwhitespace": "npm:^2.0.1" - "@apollo/utils.removealiases": "npm:2.0.1" - "@apollo/utils.sortast": "npm:^2.0.1" - "@apollo/utils.stripsensitiveliterals": "npm:^2.0.1" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/5c2b06a14c5094d0ee8eab7ff78449da1efff3bb4c82ef311b2bb90190437c6c59f2783702a428775f394f12455a53a9723e625e53e18e47b423df8cb9eb26d8 - languageName: node - linkType: hard - -"@apollo/utils.withrequired@npm:^2.0.0": - version: 2.0.1 - resolution: "@apollo/utils.withrequired@npm:2.0.1" - checksum: 10c0/04d871f5934e3b9cacc28bc36ae44f640bfbfd147ad83088e26013f7444377449f1dde8d4bee665e86342a49cd4698e8d0c9aba46a532a5fab41b98e39fb1f9a - languageName: node - linkType: hard - -"@apollographql/graphql-playground-html@npm:1.6.29": - version: 1.6.29 - resolution: "@apollographql/graphql-playground-html@npm:1.6.29" - dependencies: - xss: "npm:^1.0.8" - checksum: 10c0/49621b9d18064ca299e16397023ad44bfd6847f65b2cfbee03c63a9bb5598a94a29cc9be5c247138e844a586e3e9c744ff82f9479daf7c160ce50a76107be2fa - languageName: node - linkType: hard - "@ardatan/relay-compiler@npm:^12.0.3": version: 12.0.3 resolution: "@ardatan/relay-compiler@npm:12.0.3" @@ -6961,31 +6740,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/merge@npm:9.0.11": - version: 9.0.11 - resolution: "@graphql-tools/merge@npm:9.0.11" - dependencies: - "@graphql-tools/utils": "npm:^10.6.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/51df1cf3d6fd97d2468ed6359f2e60e8e69a0fa10e1090bdd6c0b6ec45da3c4b9eafae750144e6e84f85cc5ee0a23d05f07cb72b26a8f6fcba92c2c37938a8b7 - languageName: node - linkType: hard - -"@graphql-tools/merge@npm:^8.4.1": - version: 8.4.2 - resolution: "@graphql-tools/merge@npm:8.4.2" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/2df55222b48e010e683572f456cf265aabae5748c59f7c1260c66dec9794b7a076d3706f04da969b77f0a32c7ccb4551fee30125931d3fe9c98a8806aae9a3f4 - languageName: node - linkType: hard - -"@graphql-tools/merge@npm:^9.0.0, @graphql-tools/merge@npm:^9.0.11, @graphql-tools/merge@npm:^9.0.24": +"@graphql-tools/merge@npm:^9.0.0, @graphql-tools/merge@npm:^9.0.24": version: 9.0.24 resolution: "@graphql-tools/merge@npm:9.0.24" dependencies: @@ -7047,20 +6802,6 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/schema@npm:10.0.10": - version: 10.0.10 - resolution: "@graphql-tools/schema@npm:10.0.10" - dependencies: - "@graphql-tools/merge": "npm:^9.0.11" - "@graphql-tools/utils": "npm:^10.6.1" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/bb74e9b2eca491c23bb7893d92ffa5acd94bd2177d06f962403b8869d4929992c28eec13f3dd3b32d7d450ce8a436b4e2f4ca95911ed4d2946e5777d9ce81695 - languageName: node - linkType: hard - "@graphql-tools/schema@npm:^10.0.0, @graphql-tools/schema@npm:^10.0.11, @graphql-tools/schema@npm:^10.0.23": version: 10.0.23 resolution: "@graphql-tools/schema@npm:10.0.23" @@ -7074,20 +6815,6 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/schema@npm:^9.0.0": - version: 9.0.19 - resolution: "@graphql-tools/schema@npm:9.0.19" - dependencies: - "@graphql-tools/merge": "npm:^8.4.1" - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/42fd8ca8d3c8d60b583077c201980518482ff0cd5ed0c1f14bd9b835a2689ad41d02cbd3478f7d7dea7aec1227f7639fd5deb5e6360852a2e542b96b44bfb7a4 - languageName: node - linkType: hard - "@graphql-tools/url-loader@npm:^8.0.0, @graphql-tools/url-loader@npm:^8.0.15": version: 8.0.31 resolution: "@graphql-tools/url-loader@npm:8.0.31" @@ -7110,21 +6837,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/utils@npm:10.6.1": - version: 10.6.1 - resolution: "@graphql-tools/utils@npm:10.6.1" - dependencies: - "@graphql-typed-document-node/core": "npm:^3.1.1" - cross-inspect: "npm:1.0.1" - dset: "npm:^3.1.2" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/00cd131e34e0adf85c4b879fc301fcf0b51709d8b802efe0349d0207dbc64990b018f3588d8bc122de805c0759f96e145ec1f80083a2f95a37f4ea83ce0329ed - languageName: node - linkType: hard - -"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.5.6, @graphql-tools/utils@npm:^10.6.1, @graphql-tools/utils@npm:^10.8.1, @graphql-tools/utils@npm:^10.8.6": +"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.5.6, @graphql-tools/utils@npm:^10.8.1, @graphql-tools/utils@npm:^10.8.6": version: 10.8.6 resolution: "@graphql-tools/utils@npm:10.8.6" dependencies: @@ -7139,18 +6852,6 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/utils@npm:^9.2.1": - version: 9.2.1 - resolution: "@graphql-tools/utils@npm:9.2.1" - dependencies: - "@graphql-typed-document-node/core": "npm:^3.1.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/37a7bd7e14d28ff1bacc007dca84bc6cef2d7d7af9a547b5dbe52fcd134afddd6d4a7b2148cfbaff5ddba91a868453d597da77bd0457fb0be15928f916901606 - languageName: node - linkType: hard - "@graphql-tools/wrap@npm:^10.0.16": version: 10.1.1 resolution: "@graphql-tools/wrap@npm:10.1.1" @@ -9875,34 +9576,6 @@ __metadata: languageName: node linkType: hard -"@nestjs/apollo@npm:^12.2.1": - version: 12.2.2 - resolution: "@nestjs/apollo@npm:12.2.2" - dependencies: - "@apollo/server-plugin-landing-page-graphql-playground": "npm:4.0.0" - iterall: "npm:1.3.0" - lodash.omit: "npm:4.5.0" - tslib: "npm:2.8.1" - peerDependencies: - "@apollo/gateway": ^2.0.0 - "@apollo/server": ^4.3.2 - "@apollo/subgraph": ^2.0.0 - "@as-integrations/fastify": ^1.3.0 || ^2.0.0 - "@nestjs/common": ^9.3.8 || ^10.0.0 - "@nestjs/core": ^9.3.8 || ^10.0.0 - "@nestjs/graphql": ^12.0.0 - graphql: ^16.6.0 - peerDependenciesMeta: - "@apollo/gateway": - optional: true - "@apollo/subgraph": - optional: true - "@as-integrations/fastify": - optional: true - checksum: 10c0/3f79a5f6064102e69078f01956cb8d88f1ee2b2530161052cc7ecdb47fc6d451718617f8a8f7b1b0d6d43ade71e7699034fc9fe7d97bc45621194e4f498c0bb0 - languageName: node - linkType: hard - "@nestjs/axios@npm:>= 0.1.0": version: 4.0.0 resolution: "@nestjs/axios@npm:4.0.0" @@ -10015,63 +9688,6 @@ __metadata: languageName: node linkType: hard -"@nestjs/graphql@npm:^12.2.0": - version: 12.2.2 - resolution: "@nestjs/graphql@npm:12.2.2" - dependencies: - "@graphql-tools/merge": "npm:9.0.11" - "@graphql-tools/schema": "npm:10.0.10" - "@graphql-tools/utils": "npm:10.6.1" - "@nestjs/mapped-types": "npm:2.0.6" - chokidar: "npm:4.0.1" - fast-glob: "npm:3.3.2" - graphql-tag: "npm:2.12.6" - graphql-ws: "npm:5.16.0" - lodash: "npm:4.17.21" - normalize-path: "npm:3.0.0" - subscriptions-transport-ws: "npm:0.11.0" - tslib: "npm:2.8.1" - uuid: "npm:11.0.3" - ws: "npm:8.18.0" - peerDependencies: - "@apollo/subgraph": ^2.0.0 - "@nestjs/common": ^9.3.8 || ^10.0.0 - "@nestjs/core": ^9.3.8 || ^10.0.0 - class-transformer: "*" - class-validator: "*" - graphql: ^16.6.0 - reflect-metadata: ^0.1.13 || ^0.2.0 - ts-morph: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^24.0.0 - peerDependenciesMeta: - "@apollo/subgraph": - optional: true - class-transformer: - optional: true - class-validator: - optional: true - ts-morph: - optional: true - checksum: 10c0/61b773471b9ce4628f561391c99ec2c6f9fbe8c6fdfd99290ba2ec2c22d7e3e82a8273b8223abf5b3195cec9eaca3228ed60a0abdeaee5b8c567ce7081ed8bc2 - languageName: node - linkType: hard - -"@nestjs/mapped-types@npm:2.0.6": - version: 2.0.6 - resolution: "@nestjs/mapped-types@npm:2.0.6" - peerDependencies: - "@nestjs/common": ^8.0.0 || ^9.0.0 || ^10.0.0 - class-transformer: ^0.4.0 || ^0.5.0 - class-validator: ^0.13.0 || ^0.14.0 - reflect-metadata: ^0.1.12 || ^0.2.0 - peerDependenciesMeta: - class-transformer: - optional: true - class-validator: - optional: true - checksum: 10c0/c04ba9518d75c76ac6d00faa7a701d111b20bd220706bdef99777a4678f3423fa259ff5cc2968967a54bb58a08a85a7be6a781bfa07ddfb26304f82ee63c628b - languageName: node - linkType: hard - "@nestjs/mapped-types@npm:^2.0.5": version: 2.1.0 resolution: "@nestjs/mapped-types@npm:2.1.0" @@ -18861,7 +18477,7 @@ __metadata: languageName: node linkType: hard -"@types/express-serve-static-core@npm:^4.17.21, @types/express-serve-static-core@npm:^4.17.30, @types/express-serve-static-core@npm:^4.17.33": +"@types/express-serve-static-core@npm:^4.17.21, @types/express-serve-static-core@npm:^4.17.33": version: 4.19.6 resolution: "@types/express-serve-static-core@npm:4.19.6" dependencies: @@ -19474,13 +19090,13 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.6.1": - version: 2.6.12 - resolution: "@types/node-fetch@npm:2.6.12" +"@types/node-fetch@npm:^2.6.12": + version: 2.6.13 + resolution: "@types/node-fetch@npm:2.6.13" dependencies: "@types/node": "npm:*" - form-data: "npm:^4.0.0" - checksum: 10c0/7693acad5499b7df2d1727d46cff092a63896dc04645f36b973dd6dd754a59a7faba76fcb777bdaa35d80625c6a9dd7257cca9c401a4bab03b04480cda7fd1af + form-data: "npm:^4.0.4" + checksum: 10c0/6313c89f62c50bd0513a6839cdff0a06727ac5495ccbb2eeda51bb2bbbc4f3c0a76c0393a491b7610af703d3d2deb6cf60e37e59c81ceeca803ffde745dbf309 languageName: node linkType: hard @@ -22719,7 +22335,7 @@ __metadata: languageName: node linkType: hard -"async-retry@npm:^1.2.1, async-retry@npm:^1.3.3": +"async-retry@npm:^1.3.3": version: 1.3.3 resolution: "async-retry@npm:1.3.3" dependencies: @@ -23283,13 +22899,6 @@ __metadata: languageName: node linkType: hard -"backo2@npm:^1.0.2": - version: 1.0.2 - resolution: "backo2@npm:1.0.2" - checksum: 10c0/a9e825a6a38a6d1c4a94476eabc13d6127dfaafb0967baf104affbb67806ae26abbb58dab8d572d2cd21ef06634ff57c3ad48dff14b904e18de1474cc2f22bf3 - languageName: node - linkType: hard - "backoff@npm:^2.5.0": version: 2.5.0 resolution: "backoff@npm:2.5.0" @@ -24737,15 +24346,6 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:4.0.1": - version: 4.0.1 - resolution: "chokidar@npm:4.0.1" - dependencies: - readdirp: "npm:^4.0.1" - checksum: 10c0/4bb7a3adc304059810bb6c420c43261a15bb44f610d77c35547addc84faa0374265c3adc67f25d06f363d9a4571962b02679268c40de07676d260de1986efea9 - languageName: node - linkType: hard - "chokidar@npm:4.0.3, chokidar@npm:^4.0.0, chokidar@npm:^4.0.1": version: 4.0.3 resolution: "chokidar@npm:4.0.3" @@ -25388,7 +24988,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.11.0, commander@npm:^2.19.0, commander@npm:^2.20.0, commander@npm:^2.20.3": +"commander@npm:^2.11.0, commander@npm:^2.19.0, commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 @@ -25771,7 +25371,7 @@ __metadata: languageName: node linkType: hard -"content-type@npm:^1.0.4, content-type@npm:^1.0.5, content-type@npm:~1.0.4, content-type@npm:~1.0.5": +"content-type@npm:^1.0.4, content-type@npm:~1.0.4, content-type@npm:~1.0.5": version: 1.0.5 resolution: "content-type@npm:1.0.5" checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af @@ -26661,13 +26261,6 @@ __metadata: languageName: node linkType: hard -"cssfilter@npm:0.0.10": - version: 0.0.10 - resolution: "cssfilter@npm:0.0.10" - checksum: 10c0/478a227a616fb6e9bb338eb95f690df141b86231ec737cbea574484f31a09a51db894b4921afc4987459dae08d584355fd689ff2a7a7c7a74de4bb4c072ce553 - languageName: node - linkType: hard - "cssnano-preset-default@npm:^5.2.14": version: 5.2.14 resolution: "cssnano-preset-default@npm:5.2.14" @@ -29732,13 +29325,6 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:^3.1.0": - version: 3.1.2 - resolution: "eventemitter3@npm:3.1.2" - checksum: 10c0/c67262eccbf85848b7cc6d4abb6c6e34155e15686db2a01c57669fd0d44441a574a19d44d25948b442929e065774cbe5003d8e77eed47674fbf876ac77887793 - languageName: node - linkType: hard - "eventemitter3@npm:^4.0.0": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" @@ -29938,7 +29524,7 @@ __metadata: languageName: node linkType: hard -"express@npm:4.21.2, express@npm:^4.17.3, express@npm:^4.21.1, express@npm:^4.21.2": +"express@npm:4.21.2, express@npm:^4.17.3, express@npm:^4.21.2": version: 4.21.2 resolution: "express@npm:4.21.2" dependencies: @@ -32322,7 +31908,6 @@ __metadata: resolution: "fxa@workspace:." dependencies: "@apollo/client": "npm:^3.11.1" - "@apollo/server": "npm:^4.13.0" "@aws-sdk/client-s3": "npm:^3.973.0" "@aws-sdk/client-sns": "npm:^3.973.0" "@aws-sdk/client-sqs": "npm:^3.973.0" @@ -32347,12 +31932,10 @@ __metadata: "@graphql-codegen/typescript-document-nodes": "npm:^4.0.1" "@grpc/grpc-js": "npm:^1.11.1" "@mozilla/glean": "npm:^5.0.8" - "@nestjs/apollo": "npm:^12.2.1" "@nestjs/cli": "npm:^11.0.1" "@nestjs/common": "npm:^10.4.5" "@nestjs/config": "npm:^3.3.0" "@nestjs/core": "npm:^10.4.1" - "@nestjs/graphql": "npm:^12.2.0" "@nestjs/mapped-types": "npm:^2.0.5" "@nestjs/passport": "npm:^10.0.3" "@nestjs/platform-express": "npm:^10.4.18" @@ -32424,6 +32007,7 @@ __metadata: "@types/module-alias": "npm:^2" "@types/mysql": "npm:^2" "@types/node": "npm:^22.13.5" + "@types/node-fetch": "npm:^2.6.12" "@types/nodemailer": "npm:^7.0.4" "@types/passport": "npm:^1.0.6" "@types/passport-http-bearer": "npm:^1.0.36" @@ -33327,7 +32911,7 @@ __metadata: languageName: node linkType: hard -"graphql-tag@npm:2.12.6, graphql-tag@npm:^2.11.0, graphql-tag@npm:^2.12.6": +"graphql-tag@npm:^2.11.0, graphql-tag@npm:^2.12.6": version: 2.12.6 resolution: "graphql-tag@npm:2.12.6" dependencies: @@ -33338,15 +32922,6 @@ __metadata: languageName: node linkType: hard -"graphql-ws@npm:5.16.0": - version: 5.16.0 - resolution: "graphql-ws@npm:5.16.0" - peerDependencies: - graphql: ">=0.11 <=16" - checksum: 10c0/5e538c3460ca997a1634bd0f64236d8d7aa6ac75c58aba549b49953faf0dd2497f4fa43eedb0bc82cfff50426c7ce47682a670d2571fd7f3af5dcf00911c9e1b - languageName: node - linkType: hard - "graphql-ws@npm:^6.0.3": version: 6.0.5 resolution: "graphql-ws@npm:6.0.5" @@ -36376,13 +35951,6 @@ __metadata: languageName: node linkType: hard -"iterall@npm:1.3.0, iterall@npm:^1.2.1": - version: 1.3.0 - resolution: "iterall@npm:1.3.0" - checksum: 10c0/40de624e5fe937c4c0e511981b91caea9ff2142bfc0316cccc8506eaa03aa253820cc17c5bc5f0a98706c7268a373e5ebee9af9a0c8a359730cf7c05938b57b5 - languageName: node - linkType: hard - "iterare@npm:1.2.1": version: 1.2.1 resolution: "iterare@npm:1.2.1" @@ -39280,13 +38848,6 @@ __metadata: languageName: node linkType: hard -"lodash.omit@npm:4.5.0": - version: 4.5.0 - resolution: "lodash.omit@npm:4.5.0" - checksum: 10c0/3808b9b6faae35177174b6ab327f1177e29c91f1e98dcbccf13a72a6767bba337306449d537a4e0d8a33d2673f10d39bc732e30c4b803274ea0c1168ea60e549 - languageName: node - linkType: hard - "lodash.omitby@npm:^4.6.0": version: 4.6.0 resolution: "lodash.omitby@npm:4.6.0" @@ -39419,13 +38980,6 @@ __metadata: languageName: node linkType: hard -"loglevel@npm:^1.6.8": - version: 1.9.2 - resolution: "loglevel@npm:1.9.2" - checksum: 10c0/1e317fa4648fe0b4a4cffef6de037340592cee8547b07d4ce97a487abe9153e704b98451100c799b032c72bb89c9366d71c9fb8192ada8703269263ae77acdc7 - languageName: node - linkType: hard - "lolex@npm:^2.2.0": version: 2.7.5 resolution: "lolex@npm:2.7.5" @@ -39449,13 +39003,6 @@ __metadata: languageName: node linkType: hard -"long@npm:^4.0.0": - version: 4.0.0 - resolution: "long@npm:4.0.0" - checksum: 10c0/50a6417d15b06104dbe4e3d4a667c39b137f130a9108ea8752b352a4cfae047531a3ac351c181792f3f8768fe17cca6b0f406674a541a86fb638aaac560d83ed - languageName: node - linkType: hard - "long@npm:^5.0.0, long@npm:^5.2.0, long@npm:^5.2.1": version: 5.3.2 resolution: "long@npm:5.3.2" @@ -39571,7 +39118,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.10.1, lru-cache@npm:^7.14.1": +"lru-cache@npm:^7.14.1": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" checksum: 10c0/b3a452b491433db885beed95041eb104c157ef7794b9c9b4d647be503be91769d11206bb573849a16b4cc0d03cbd15ffd22df7960997788b74c1d399ac7a4fed @@ -41613,13 +41160,6 @@ __metadata: 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 - "negotiator@npm:^1.0.0": version: 1.0.0 resolution: "negotiator@npm:1.0.0" @@ -41627,6 +41167,13 @@ __metadata: languageName: node linkType: hard +"negotiator@npm:~0.6.4": + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 10c0/3e677139c7fb7628a6f36335bf11a885a62c21d5390204590a1a214a5631fcbe5ea74ef6a610b60afe84b4d975cbe0566a23f20ee17c77c73e74b80032108dea + languageName: node + linkType: hard + "neo-async@npm:^2.5.0, neo-async@npm:^2.6.1, neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" @@ -41851,7 +41398,7 @@ __metadata: languageName: node linkType: hard -"node-abort-controller@npm:^3.0.1, node-abort-controller@npm:^3.1.1": +"node-abort-controller@npm:^3.0.1": version: 3.1.1 resolution: "node-abort-controller@npm:3.1.1" checksum: 10c0/f7ad0e7a8e33809d4f3a0d1d65036a711c39e9d23e0319d80ebe076b9a3b4432b4d6b86a7fab65521de3f6872ffed36fc35d1327487c48eb88c517803403eda3 @@ -42195,13 +41742,6 @@ __metadata: languageName: node linkType: hard -"normalize-path@npm:3.0.0, normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 - languageName: node - linkType: hard - "normalize-path@npm:^2.1.1": version: 2.1.1 resolution: "normalize-path@npm:2.1.1" @@ -42211,6 +41751,13 @@ __metadata: languageName: node linkType: hard +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 + languageName: node + linkType: hard + "normalize-range@npm:^0.1.2": version: 0.1.2 resolution: "normalize-range@npm:0.1.2" @@ -51079,21 +50626,6 @@ __metadata: languageName: node linkType: hard -"subscriptions-transport-ws@npm:0.11.0": - version: 0.11.0 - resolution: "subscriptions-transport-ws@npm:0.11.0" - dependencies: - backo2: "npm:^1.0.2" - eventemitter3: "npm:^3.1.0" - iterall: "npm:^1.2.1" - symbol-observable: "npm:^1.0.4" - ws: "npm:^5.2.0 || ^6.0.0 || ^7.0.0" - peerDependencies: - graphql: ^15.7.2 || ^16.0.0 - checksum: 10c0/697441333e59b6932bff51212e29f8dcac477badb067971bd94c30c5f3f7a2e2ea72fb1a21f3c1abbf32774da01515aa24739e620be45f6d576784bd96fd10da - languageName: node - linkType: hard - "sucrase@npm:^3.32.0, sucrase@npm:^3.35.0": version: 3.35.0 resolution: "sucrase@npm:3.35.0" @@ -51321,13 +50853,6 @@ __metadata: languageName: node linkType: hard -"symbol-observable@npm:^1.0.4": - version: 1.2.0 - resolution: "symbol-observable@npm:1.2.0" - checksum: 10c0/009fee50798ef80ed4b8195048288f108b03de162db07493f2e1fd993b33fafa72d659e832b584da5a2427daa78e5a738fb2a9ab027ee9454252e0bedbcd1fdc - languageName: node - linkType: hard - "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" @@ -54020,13 +53545,6 @@ __metadata: languageName: node linkType: hard -"value-or-promise@npm:^1.0.12": - version: 1.0.12 - resolution: "value-or-promise@npm:1.0.12" - checksum: 10c0/b75657b74e4d17552bd88e0c2857020fbab34a4d091dc058db18c470e7da0336067e72c130b3358e3321ac0a6ff11c0b92b67a382318a3705ad5d57de7ff3262 - languageName: node - linkType: hard - "varint@npm:^6.0.0": version: 6.0.0 resolution: "varint@npm:6.0.0" @@ -55712,7 +55230,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^5.2.0 || ^6.0.0 || ^7.0.0, ws@npm:^7, ws@npm:^7.0.0, ws@npm:^7.3.1, ws@npm:^7.4.6, ws@npm:^7.5.5, ws@npm:~7.5.10": +"ws@npm:^7, ws@npm:^7.0.0, ws@npm:^7.3.1, ws@npm:^7.4.6, ws@npm:^7.5.5, ws@npm:~7.5.10": version: 7.5.10 resolution: "ws@npm:7.5.10" peerDependencies: @@ -55831,18 +55349,6 @@ __metadata: languageName: node linkType: hard -"xss@npm:^1.0.8": - version: 1.0.15 - resolution: "xss@npm:1.0.15" - dependencies: - commander: "npm:^2.20.3" - cssfilter: "npm:0.0.10" - bin: - xss: bin/xss - checksum: 10c0/9b31bee62a208f78e2b7bc8154e3ee87d980f4661dc4ab850ce6f4de7bc50eb152f0bdc13fa759ff8ab6d9bfdf8c0d79cf9f6f86249872b92181912309bccd08 - languageName: node - linkType: hard - "xtend@npm:^4.0.0, xtend@npm:^4.0.2, xtend@npm:~4.0.0, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2"