From 6445eb61e17f5072edfa68664d9a6008a42a8f0e Mon Sep 17 00:00:00 2001 From: Wyatt Ades Date: Sun, 5 Feb 2023 05:33:31 -0800 Subject: [PATCH] feat(adapters): move to `firebase-admin` in Firebase Adapter (#6225) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Balázs Orbán fixes https://github.com/nextauthjs/next-auth/issues/5049 closes https://github.com/nextauthjs/next-auth/pull/6230 closes https://github.com/nextauthjs/next-auth/pull/5449 closes https://github.com/nextauthjs/next-auth/pull/5055 fixes https://github.com/nextauthjs/next-auth/issues/4927 BREAKING CHANGE: The adapter now expects `firebase-admin` instead of the `firebase` package and also supports either passing a config object or a firestore instance. --- .gitignore | 8 +- .../03-basics/refresh-token-rotation.md | 2 +- docs/docs/reference/06-adapters/firebase.md | 75 - docs/docusaurus.config.js | 15 + docs/sidebars.js | 8 +- packages/adapter-firebase/.firebaserc | 1 - packages/adapter-firebase/CHANGELOG.md | 16 - packages/adapter-firebase/README.md | 70 +- packages/adapter-firebase/firebase.json | 5 +- packages/adapter-firebase/firestore.rules | 10 + packages/adapter-firebase/jest.config.js | 1 - packages/adapter-firebase/logo.svg | 2 +- packages/adapter-firebase/package.json | 25 +- packages/adapter-firebase/src/converter.ts | 58 - packages/adapter-firebase/src/getFirebase.ts | 11 - packages/adapter-firebase/src/index.ts | 455 +-- packages/adapter-firebase/src/utils.ts | 168 ++ packages/adapter-firebase/tests/index.test.ts | 165 +- .../adapter-firebase/tests/jest.config.js | 11 + packages/adapter-firebase/tsconfig.json | 22 +- packages/core/src/index.ts | 4 + pnpm-lock.yaml | 2481 +++++++++-------- 22 files changed, 1825 insertions(+), 1788 deletions(-) delete mode 100644 docs/docs/reference/06-adapters/firebase.md delete mode 100644 packages/adapter-firebase/.firebaserc delete mode 100644 packages/adapter-firebase/CHANGELOG.md create mode 100644 packages/adapter-firebase/firestore.rules delete mode 100644 packages/adapter-firebase/jest.config.js delete mode 100644 packages/adapter-firebase/src/converter.ts delete mode 100644 packages/adapter-firebase/src/getFirebase.ts create mode 100644 packages/adapter-firebase/src/utils.ts create mode 100644 packages/adapter-firebase/tests/jest.config.js diff --git a/.gitignore b/.gitignore index fa8e4fd134..1f4e2442fa 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ npm-debug.log* yarn-debug.log* yarn-error.log* firebase-debug.log +ui-debug.log .pnpm-debug.log @@ -78,9 +79,6 @@ docs/.docusaurus docs/providers.json # Core -packages/core/*.js -packages/core/*.d.ts -packages/core/*.d.ts.map packages/core/src/providers/oauth-types.ts packages/core/lib packages/core/providers @@ -96,3 +94,7 @@ packages/frameworks-sveltekit/.svelte-kit packages/frameworks-sveltekit/package packages/frameworks-sveltekit/vite.config.js.timestamp-* packages/frameworks-sveltekit/vite.config.ts.timestamp-* + +# Adapters + +docs/docs/reference/adapter \ No newline at end of file diff --git a/docs/docs/guides/03-basics/refresh-token-rotation.md b/docs/docs/guides/03-basics/refresh-token-rotation.md index 96b5ce2499..1adced3bd7 100644 --- a/docs/docs/guides/03-basics/refresh-token-rotation.md +++ b/docs/docs/guides/03-basics/refresh-token-rotation.md @@ -22,7 +22,7 @@ Using a JWT to store the `refresh_token` is less secure than saving it in a data #### JWT strategy -Using the [jwt](../../reference/core/interfaces/types.CallbacksOptions.md#jwt) and [session](../../reference/core/interfaces/types.CallbacksOptions.md#session) callbacks, we can persist OAuth tokens and refresh them when they expire. +Using the [jwt](../../reference/core/types#jwt) and [session](../../reference/core/types#session) callbacks, we can persist OAuth tokens and refresh them when they expire. Below is a sample implementation using Google's Identity Provider. Please note that the OAuth 2.0 request in the `refreshAccessToken()` function will vary between different providers, but the core logic should remain similar. diff --git a/docs/docs/reference/06-adapters/firebase.md b/docs/docs/reference/06-adapters/firebase.md deleted file mode 100644 index 2c4b7e0dc2..0000000000 --- a/docs/docs/reference/06-adapters/firebase.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: firebase -title: Firebase ---- - -:::warning -This adapter is still experimental and does not work with Auth.js 4 or newer. If you would like to help out upgrading it, please visit [this PR](https://github.com/nextauthjs/next-auth/pull/3873) -::: - -This is the Firebase Adapter for [`next-auth`](https://authjs.dev). This package can only be used in conjunction with the primary `next-auth` package. It is not a standalone package. - -## Getting Started - -1. Install the necessary packages - -```bash npm2yarn -npm install next-auth @next-auth/firebase-adapter@experimental -``` - -2. Add this adapter to your `pages/api/auth/[...nextauth].js` next-auth configuration object. - -```javascript title="pages/api/auth/[...nextauth].js" -import NextAuth from "next-auth" -import GoogleProvider from "next-auth/providers/google" -import { FirebaseAdapter } from "@next-auth/firebase-adapter" - -import firebase from "firebase/app" -import "firebase/firestore" - -const firestore = ( - firebase.apps[0] ?? firebase.initializeApp(/* your config */) -).firestore() - -// For more information on each option (and a full list of options) go to -// https://authjs.dev/reference/configuration/auth-options -export default NextAuth({ - // https://authjs.dev/reference/providers/ - providers: [ - GoogleProvider({ - clientId: process.env.GOOGLE_ID, - clientSecret: process.env.GOOGLE_SECRET, - }), - ], - adapter: FirebaseAdapter(firestore), - ... -}) -``` - -## Options - -When initializing the firestore adapter, you must pass in the firebase config object with the details from your project. More details on how to obtain that config object can be found [here](https://support.google.com/firebase/answer/7015592). - -An example firebase config looks like this: - -```js -const firebaseConfig = { - apiKey: "AIzaSyDOCAbC123dEf456GhI789jKl01-MnO", - authDomain: "myapp-project-123.firebaseapp.com", - databaseURL: "https://myapp-project-123.firebaseio.com", - projectId: "myapp-project-123", - storageBucket: "myapp-project-123.appspot.com", - messagingSenderId: "65211879809", - appId: "1:65211879909:web:3ae38ef1cdcb2e01fe5f0c", - measurementId: "G-8GSGZQ44ST", -} -``` - -See [firebase.google.com/docs/web/setup](https://firebase.google.com/docs/web/setup) for more details. - -:::tip **From Firebase** - -**Caution**: We do not recommend manually modifying an app's Firebase config file or object. If you initialize an app with invalid or missing values for any of these required "Firebase options", then your end users may experience serious issues. - -For open source projects, we generally do not recommend including the app's Firebase config file or object in source control because, in most cases, your users should create their own Firebase projects and point their apps to their own Firebase resources (via their own Firebase config file or object). -::: diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 193e7a95a5..0ae8e673ba 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -226,6 +226,21 @@ const docusaurusConfig = { }, }, ], + [ + "docusaurus-plugin-typedoc", + { + ...typedocConfig, + id: "firebase-adapter", + plugin: [require.resolve("./typedoc-mdn-links")], + watch: process.env.TYPEDOC_WATCH, + entryPoints: ["../packages/adapter-firebase/src/index.ts"], + tsconfig: "../packages/adapter-firebase/tsconfig.json", + out: "reference/adapter/firebase", + sidebar: { + indexLabel: "Firebase", + }, + }, + ], ], } diff --git a/docs/sidebars.js b/docs/sidebars.js index a44d60a9ea..f02bb45577 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -50,12 +50,8 @@ module.exports = { label: "Database Adapters", link: { type: "doc", id: "reference/adapters/overview" }, items: [ - { - type: "autogenerated", - dirName: "reference/06-adapters", - // See: https://github.com/facebook/docusaurus/issues/5689 - // exclude: ["index"], - }, + { type: "doc", id: "reference/adapter/firebase/index" }, + { type: "autogenerated", dirName: "reference/06-adapters" }, ], }, { diff --git a/packages/adapter-firebase/.firebaserc b/packages/adapter-firebase/.firebaserc deleted file mode 100644 index 0967ef424b..0000000000 --- a/packages/adapter-firebase/.firebaserc +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/packages/adapter-firebase/CHANGELOG.md b/packages/adapter-firebase/CHANGELOG.md deleted file mode 100644 index a5dd79580e..0000000000 --- a/packages/adapter-firebase/CHANGELOG.md +++ /dev/null @@ -1,16 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [0.1.3](https://github.com/nextauthjs/adapters/compare/@next-auth/firebase-adapter@0.1.2...@next-auth/firebase-adapter@0.1.3) (2021-08-17) - -**Note:** Version bump only for package @next-auth/firebase-adapter - -## [0.1.2](https://github.com/nextauthjs/adapters/compare/@next-auth/firebase-adapter@0.1.1...@next-auth/firebase-adapter@0.1.2) (2021-07-02) - -**Note:** Version bump only for package @next-auth/firebase-adapter - -## [0.1.1](https://github.com/nextauthjs/adapters/compare/@next-auth/firebase-adapter@0.1.0...@next-auth/firebase-adapter@0.1.1) (2021-06-30) - -**Note:** Version bump only for package @next-auth/firebase-adapter diff --git a/packages/adapter-firebase/README.md b/packages/adapter-firebase/README.md index 9f22ca805c..bfa7ccda7d 100644 --- a/packages/adapter-firebase/README.md +++ b/packages/adapter-firebase/README.md @@ -1,8 +1,8 @@


- -

Firebase Adapter - NextAuth.js

+ +

Firebase Adapter - Auth.js

Open Source. Full Stack. Own Your Data.

@@ -13,72 +13,12 @@

-## Overview -This is the Firebase Adapter for [`auth.js`](https://authjs.dev). This package can only be used in conjunction with the primary `next-auth` package. It is not a standalone package. +This is the official Firebase Adapter for [Auth.js](https://authjs.dev) / [NextAuth.js](https://next-auth.js.org/), using the [Firebase Admin SDK](https://firebase.google.com/docs/admin/setup) and [Firestore](https://firebase.google.com/docs/firestore). -You can find more Firebase information in the docs at [authjs.dev/reference/adapters/firebase](https://authjs.dev/reference/adapters/firebase). +## Documentation -## Getting Started - -1. Install `next-auth` and `@next-auth/firebase-adapter`. - -```js -npm install next-auth @next-auth/firebase-adapter -``` - -2. Add this adapter to your `pages/api/[...nextauth].js` next-auth configuration object. - -```js -import NextAuth from "next-auth" -import Providers from "next-auth/providers" -import { FirestoreAdapter } from "@next-auth/firebase-adapter" - -import { initializeApp } from "firebase/app"; -import { getFirestore } from "firebase/firestore" - -const app = initializeApp({ projectId: "next-auth-test" }); -const firestore = getFirestore(app); - -// For more information on each option (and a full list of options) go to -// https://authjs.dev/reference/configuration/auth-options -export default NextAuth({ - // https://authjs.dev/reference/providers/oauth-builtin - providers: [ - Providers.Google({ - clientId: process.env.GOOGLE_ID, - clientSecret: process.env.GOOGLE_SECRET, - }), - ], - adapter: FirestoreAdapter(firestore), - ... -}) -``` - -## Options - -When initializing the firestore adapter, you must pass in the firebase config object with the details from your project. More details on how to obtain that config object can be found [here](https://support.google.com/firebase/answer/7015592). - -An example firebase config looks like this: - -```js -const firebaseConfig = { - apiKey: "AIzaSyDOCAbC123dEf456GhI789jKl01-MnO", - authDomain: "myapp-project-123.firebaseapp.com", - databaseURL: "https://myapp-project-123.firebaseio.com", - projectId: "myapp-project-123", - storageBucket: "myapp-project-123.appspot.com", - messagingSenderId: "65211879809", - appId: "1:65211879909:web:3ae38ef1cdcb2e01fe5f0c", - measurementId: "G-8GSGZQ44ST", -} -``` - -See [firebase.google.com/docs/web/setup](https://firebase.google.com/docs/web/setup) for more details. - -> **From Firebase - Caution**: We do not recommend manually modifying an app's Firebase config file or object. If you initialize an app with invalid or missing values for any of these required "Firebase options", then your end users may experience serious issues. -> -> For open source projects, we generally do not recommend including the app's Firebase config file or object in source control because, in most cases, your users should create their own Firebase projects and point their apps to their own Firebase resources (via their own Firebase config file or object). +Check out the [documentation](https://authjs.dev/reference/adapter/firebase) to learn how to use this adapter in your project. ## Contributing diff --git a/packages/adapter-firebase/firebase.json b/packages/adapter-firebase/firebase.json index 41d19cb3d5..c361836eb0 100644 --- a/packages/adapter-firebase/firebase.json +++ b/packages/adapter-firebase/firebase.json @@ -1,5 +1,8 @@ { - "emulators": { + "firestore": { + "rules": "firestore.rules" + }, + "emulator": { "firestore": { "port": 8080 } diff --git a/packages/adapter-firebase/firestore.rules b/packages/adapter-firebase/firestore.rules new file mode 100644 index 0000000000..7e0eeeaf88 --- /dev/null +++ b/packages/adapter-firebase/firestore.rules @@ -0,0 +1,10 @@ +rules_version = '2'; + +// Deny read/write access to all users under any conditions +service cloud.firestore { + match /databases/{database}/documents { + match /{document=**} { + allow read, write: if false; + } + } +} diff --git a/packages/adapter-firebase/jest.config.js b/packages/adapter-firebase/jest.config.js deleted file mode 100644 index 4d466ea6b2..0000000000 --- a/packages/adapter-firebase/jest.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("@next-auth/adapter-test/jest/jest-preset") diff --git a/packages/adapter-firebase/logo.svg b/packages/adapter-firebase/logo.svg index f7705dc396..23a135ef21 100644 --- a/packages/adapter-firebase/logo.svg +++ b/packages/adapter-firebase/logo.svg @@ -33,4 +33,4 @@ - + \ No newline at end of file diff --git a/packages/adapter-firebase/package.json b/packages/adapter-firebase/package.json index 59bc4c3c7f..b6e9df29fe 100644 --- a/packages/adapter-firebase/package.json +++ b/packages/adapter-firebase/package.json @@ -12,35 +12,44 @@ "Nico Domino ", "Alex Meuer " ], - "main": "dist/index.js", + "type": "module", + "exports": { + ".": { + "types": "./index.d.ts", + "import": "./index.js" + } + }, "files": [ - "dist", - "index.d.ts" + "src", + "*.js", + "*.d.ts*" ], "license": "ISC", "keywords": [ "next-auth", "next.js", - "firebase" + "firebase", + "firebase-admin" ], "private": false, "publishConfig": { "access": "public" }, "scripts": { + "dev": "tsc -w", "build": "tsc", - "test": "FIRESTORE_EMULATOR_HOST=localhost:8080 firebase --token '$FIREBASE_TOKEN' emulators:exec --only firestore --project next-auth-test jest" + "test": "firebase emulators:exec --only firestore --project next-auth-test 'jest -c tests/jest.config.js'" }, "peerDependencies": { - "firebase": "^9.7.0", + "firebase-admin": "^11.4.1", "next-auth": "^4" }, "devDependencies": { "@next-auth/adapter-test": "workspace:*", "@next-auth/tsconfig": "workspace:*", - "firebase": "^9.14.0", + "firebase-admin": "^11.4.1", "firebase-tools": "^11.16.1", - "jest": "^27.4.3", + "jest": "^29.3.1", "next-auth": "workspace:*" } } diff --git a/packages/adapter-firebase/src/converter.ts b/packages/adapter-firebase/src/converter.ts deleted file mode 100644 index 27eb04b19e..0000000000 --- a/packages/adapter-firebase/src/converter.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Timestamp } from "firebase/firestore" -import type { - FirestoreDataConverter, - QueryDocumentSnapshot, - WithFieldValue, -} from "firebase/firestore" - -const isTimestamp = (value: unknown): value is Timestamp => - typeof value === "object" && value !== null && value instanceof Timestamp - -interface GetConverterOptions { - excludeId?: boolean -} - -export const getConverter = >( - options?: GetConverterOptions -): FirestoreDataConverter => ({ - // `PartialWithFieldValue` implicitly types `object` as `any`, so we want to explicitly type it - toFirestore(object: WithFieldValue) { - const document: Record = {} - - Object.keys(object).forEach((key) => { - if (object[key] !== undefined) { - document[key] = object[key] - } - }) - - return document - }, - // We need to explicitly type `snapshot` since it uses `DocumentData` for generic type - fromFirestore(snapshot: QueryDocumentSnapshot) { - if (!snapshot.exists()) { - return snapshot - } - - let document: Document = snapshot.data() - - if (!options?.excludeId) { - document = { - ...document, - id: snapshot.id, - } - } - - for (const key in document) { - const value = document[key] - - if (isTimestamp(value)) { - document = { - ...document, - [key]: value.toDate(), - } - } - } - - return document - }, -}) diff --git a/packages/adapter-firebase/src/getFirebase.ts b/packages/adapter-firebase/src/getFirebase.ts deleted file mode 100644 index b38f67b144..0000000000 --- a/packages/adapter-firebase/src/getFirebase.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { initializeApp, getApps, FirebaseOptions } from "firebase/app" - -export default function getFirebase(firebaseOptions: FirebaseOptions) { - const apps = getApps() - const app = apps.find((app) => app.name === firebaseOptions.projectId) - if (app) { - return app - } else { - return initializeApp(firebaseOptions) - } -} diff --git a/packages/adapter-firebase/src/index.ts b/packages/adapter-firebase/src/index.ts index e42d10d3e6..8ce5a822bf 100644 --- a/packages/adapter-firebase/src/index.ts +++ b/packages/adapter-firebase/src/index.ts @@ -1,283 +1,302 @@ -import { initializeApp } from "firebase/app" -import type { FirebaseOptions } from "firebase/app" +/** + *
+ * + * Official Firebase adapter for Auth.js / NextAuth.js, + * using the Firebase Admin SDK + *  and Firestore. + * + * + * + *
+ * + * ## Installation + * + * ```bash npm2yarn2pnpm + * npm install next-auth @next-auth/firebase-admin-adapter firebase-admin + * ``` + * + * ## References + * - [`GOOGLE_APPLICATION_CREDENTIALS` environment variable](https://cloud.google.com/docs/authentication/application-default-credentials#GAC) + * - [Firebase Admin SDK setup](https://firebase.google.com/docs/admin/setup#initialize-sdk) + * + * @module @next-auth/firebase-adapter + */ + +import { type AppOptions } from "firebase-admin" +import { Firestore } from "firebase-admin/firestore" + +import type { Adapter, AdapterUser } from "next-auth/adapters" import { - addDoc, - collection, - deleteDoc, - doc, + collestionsFactory, + deleteDocs, + initFirestore, getDoc, - getDocs, - getFirestore, - limit, - query, - runTransaction, - setDoc, - where, - connectFirestoreEmulator, -} from "firebase/firestore" - -import type { - Adapter, - AdapterUser, - AdapterAccount, - AdapterSession, - VerificationToken, -} from "next-auth/adapters" - -import { getConverter } from "./converter" -import getFirebase from "./getFirebase" - -export type IndexableObject = Record - -export interface FirestoreAdapterOptions { - emulator?: { - host?: string - port?: number - } + getOneDoc, + mapFieldsFactory, +} from "./utils" + +export { initFirestore } from "./utils" + +/** Configure the Firebase Adapter. */ +export interface FirebaseAdapterConfig extends AppOptions { + /** + * The name of the app passed to {@link https://firebase.google.com/docs/reference/admin/node/firebase-admin.md#initializeapp `initializeApp()`}. + */ + name?: string + firestore?: Firestore + /** + * Use this option if mixed `snake_case` and `camelCase` field names in the database is an issue for you. + * Passing `snake_case` will convert all field and collection names to `snake_case`. + * E.g. the collection `verificationTokens` will be `verification_tokens`, + * and fields like `emailVerified` will be `email_verified` instead. + * + * + * @example + * ```ts title="pages/api/auth/[...nextauth].ts" + * import NextAuth from "next-auth" + * import { FirestoreAdapter } from "@next-auth/firebase-adapter" + * + * export default NextAuth({ + * adapter: FirestoreAdapter({ namingStrategy: "snake_case" }) + * // ... + * }) + * ``` + */ + namingStrategy?: "snake_case" } -export function FirestoreAdapter({ - emulator, - ...firebaseOptions -}: FirebaseOptions & FirestoreAdapterOptions): Adapter { - const firebaseApp = getFirebase(firebaseOptions) - const db = getFirestore(firebaseApp) - - if (emulator) { - connectFirestoreEmulator( - db, - emulator?.host ?? "localhost", - emulator?.port ?? 3001 - ) - } - - const Users = collection(db, "users").withConverter( - getConverter() - ) - const Sessions = collection(db, "sessions").withConverter( - getConverter() - ) - const Accounts = collection(db, "accounts").withConverter( - getConverter() - ) - const VerificationTokens = collection(db, "verificationTokens").withConverter( - getConverter({ excludeId: true }) - ) +/** + * #### Usage + * + * First, create a Firebase project and generate a service account key. + * Visit: `https://console.firebase.google.com/u/0/project/{project-id}/settings/serviceaccounts/adminsdk` (replace `{project-id}` with your project's id) + * + * Now you have a few options to authenticate with the Firebase Admin SDK in your app: + * + * ##### 1. `GOOGLE_APPLICATION_CREDENTIALS` environment variable: + * - Download the service account key and save it in your project. (Make sure to add the file to your `.gitignore`!) + * - Add [`GOOGLE_APPLICATION_CREDENTIALS`](https://cloud.google.com/docs/authentication/application-default-credentials#GAC) to your environment variables and point it to the service account key file. + * - The adapter will automatically pick up the environment variable and use it to authenticate with the Firebase Admin SDK. + * + * @example + * ```ts title="pages/api/auth/[...nextauth].ts" + * import NextAuth from "next-auth" + * import { FirestoreAdapter } from "@next-auth/firebase-adapter" + * + * export default NextAuth({ + * adapter: FirestoreAdapter(), + * // ... + * }) + * ``` + * + * ##### 2. Service account values as environment variables + * + * - Download the service account key to a temporary location. (Make sure to not commit this file to your repository!) + * - Add the following environment variables to your project: `FIREBASE_PROJECT_ID`, `FIREBASE_CLIENT_EMAIL`, `FIREBASE_PRIVATE_KEY`. + * - Pass the config to the adapter, using the environment variables as shown in the example below. + * + * @example + * ```ts title="pages/api/auth/[...nextauth].ts" + * import NextAuth from "next-auth" + * import { FirestoreAdapter } from "@next-auth/firebase-adapter" + * import { cert } from "firebase-admin/app" + * + * export default NextAuth({ + * adapter: FirestoreAdapter({ + * credential: cert({ + * projectId: process.env.FIREBASE_PROJECT_ID, + * clientEmail: process.env.FIREBASE_CLIENT_EMAIL, + * privateKey: process.env.FIREBASE_PRIVATE_KEY, + * }) + * }) + * // ... + * }) + * ``` + * + * ##### 3. Use an existing Firestore instance + * + * If you already have a Firestore instance, you can pass that to the adapter directly instead. + * + * :::note + * When passing an instance and in a serverless environment, remember to handle duplicate app initialization. + * ::: + * + * :::tip + * You can use the {@link initFirestore} utility to initialize the app and get an instance safely. + * ::: + * + * @example + * ```ts title="pages/api/auth/[...nextauth].ts" + * import NextAuth from "next-auth" + * import { FirestoreAdapter } from "@next-auth/firebase-adapter" + * import { firestore } from "lib/firestore" + * + * export default NextAuth({ + * adapter: FirestoreAdapter(firestore), + * // ... + * }) + * ``` + */ +export function FirestoreAdapter( + config?: FirebaseAdapterConfig | Firestore +): Adapter { + const { db, namingStrategy = "default" } = + config instanceof Firestore + ? { db: config } + : { ...config, db: config?.firestore ?? initFirestore(config) } + + const preferSnakeCase = namingStrategy === "snake_case" + const C = collestionsFactory(db, preferSnakeCase) + const mapper = mapFieldsFactory(preferSnakeCase) return { - async createUser(newUser) { - const userRef = await addDoc(Users, newUser) - const userSnapshot = await getDoc(userRef) + async createUser(userInit) { + const { id: userId } = await C.users.add(userInit as AdapterUser) - if (userSnapshot.exists() && Users.converter) { - return Users.converter.fromFirestore(userSnapshot) - } + const user = await getDoc(C.users.doc(userId)) + if (!user) throw new Error("[createUser] Failed to fetch created user") - throw new Error("[createUser] Failed to create user") + return user }, - async getUser(id) { - const userSnapshot = await getDoc(doc(Users, id)) - if (userSnapshot.exists() && Users.converter) { - return Users.converter.fromFirestore(userSnapshot) - } - - return null + async getUser(id) { + return await getDoc(C.users.doc(id)) }, - async getUserByEmail(email) { - const userQuery = query(Users, where("email", "==", email), limit(1)) - const userSnapshots = await getDocs(userQuery) - const userSnapshot = userSnapshots.docs[0] - - if (userSnapshot?.exists() && Users.converter) { - return Users.converter.fromFirestore(userSnapshot) - } - return null + async getUserByEmail(email) { + return await getOneDoc(C.users.where("email", "==", email)) }, + async getUserByAccount({ provider, providerAccountId }) { - const accountQuery = query( - Accounts, - where("provider", "==", provider), - where("providerAccountId", "==", providerAccountId), - limit(1) + const account = await getOneDoc( + C.accounts + .where("provider", "==", provider) + .where(mapper.toDb("providerAccountId"), "==", providerAccountId) ) - const accountSnapshots = await getDocs(accountQuery) - const accountSnapshot = accountSnapshots.docs[0] - - if (accountSnapshot?.exists()) { - const { userId } = accountSnapshot.data() - const userDoc = await getDoc(doc(Users, userId)) - - if (userDoc.exists() && Users.converter) { - return Users.converter.fromFirestore(userDoc) - } - } + if (!account) return null - return null + return await getDoc(C.users.doc(account.userId)) }, async updateUser(partialUser) { - const userRef = doc(Users, partialUser.id) + if (!partialUser.id) throw new Error("[updateUser] Missing id") - await setDoc(userRef, partialUser, { merge: true }) + const userRef = C.users.doc(partialUser.id) - const userSnapshot = await getDoc(userRef) + await userRef.set(partialUser, { merge: true }) - if (userSnapshot.exists() && Users.converter) { - return Users.converter.fromFirestore(userSnapshot) - } + const user = await getDoc(userRef) + if (!user) throw new Error("[updateUser] Failed to fetch updated user") - throw new Error("[updateUser] Failed to update user") + return user }, async deleteUser(userId) { - const userRef = doc(Users, userId) - const accountsQuery = query(Accounts, where("userId", "==", userId)) - const sessionsQuery = query(Sessions, where("userId", "==", userId)) + await db.runTransaction(async (transaction) => { + const accounts = await C.accounts + .where(mapper.toDb("userId"), "==", userId) + .get() + const sessions = await C.sessions + .where(mapper.toDb("userId"), "==", userId) + .get() - // TODO: May be better to use events instead of transactions? - await runTransaction(db, async (transaction) => { - const accounts = await getDocs(accountsQuery) - const sessions = await getDocs(sessionsQuery) + transaction.delete(C.users.doc(userId)) - transaction.delete(userRef) accounts.forEach((account) => transaction.delete(account.ref)) sessions.forEach((session) => transaction.delete(session.ref)) }) }, - async linkAccount(account) { - const accountRef = await addDoc(Accounts, account) - const accountSnapshot = await getDoc(accountRef) - - if (accountSnapshot.exists() && Accounts.converter) { - return Accounts.converter.fromFirestore(accountSnapshot) - } + async linkAccount(accountInit) { + const ref = await C.accounts.add(accountInit) + const account = await ref.get().then((doc) => doc.data()) + return account ?? null }, async unlinkAccount({ provider, providerAccountId }) { - const accountQuery = query( - Accounts, - where("provider", "==", provider), - where("providerAccountId", "==", providerAccountId), - limit(1) + await deleteDocs( + C.accounts + .where("provider", "==", provider) + .where(mapper.toDb("providerAccountId"), "==", providerAccountId) + .limit(1) ) - const accountSnapshots = await getDocs(accountQuery) - const accountSnapshot = accountSnapshots.docs[0] - - if (accountSnapshot?.exists()) { - await deleteDoc(accountSnapshot.ref) - } }, - async createSession(session) { - const sessionRef = await addDoc(Sessions, session) - const sessionSnapshot = await getDoc(sessionRef) + async createSession(sessionInit) { + const ref = await C.sessions.add(sessionInit) + const session = await ref.get().then((doc) => doc.data()) - if (sessionSnapshot.exists() && Sessions.converter) { - return Sessions.converter.fromFirestore(sessionSnapshot) - } + if (session) return session ?? null - throw new Error("[createSession] Failed to create session") + throw new Error("[createSession] Failed to fetch created session") }, async getSessionAndUser(sessionToken) { - const sessionQuery = query( - Sessions, - where("sessionToken", "==", sessionToken), - limit(1) + const session = await getOneDoc( + C.sessions.where(mapper.toDb("sessionToken"), "==", sessionToken) ) - const sessionSnapshots = await getDocs(sessionQuery) - const sessionSnapshot = sessionSnapshots.docs[0] - - if (sessionSnapshot?.exists() && Sessions.converter) { - const session = Sessions.converter.fromFirestore(sessionSnapshot) - const userDoc = await getDoc(doc(Users, session.userId)) + if (!session) return null - if (userDoc.exists() && Users.converter) { - const user = Users.converter.fromFirestore(userDoc) + const user = await getDoc(C.users.doc(session.userId)) + if (!user) return null - return { session, user } - } - } - - return null + return { session, user } }, async updateSession(partialSession) { - const sessionQuery = query( - Sessions, - where("sessionToken", "==", partialSession.sessionToken), - limit(1) - ) - const sessionSnapshots = await getDocs(sessionQuery) - const sessionSnapshot = sessionSnapshots.docs[0] - - if (sessionSnapshot?.exists()) { - await setDoc(sessionSnapshot.ref, partialSession, { merge: true }) - - const sessionDoc = await getDoc(sessionSnapshot.ref) - - if (sessionDoc?.exists() && Sessions.converter) { - const session = Sessions.converter.fromFirestore(sessionDoc) + const sessionId = await db.runTransaction(async (transaction) => { + const sessionSnapshot = ( + await transaction.get( + C.sessions + .where( + mapper.toDb("sessionToken"), + "==", + partialSession.sessionToken + ) + .limit(1) + ) + ).docs[0] + if (!sessionSnapshot?.exists) return null + + transaction.set(sessionSnapshot.ref, partialSession, { merge: true }) + + return sessionSnapshot.id + }) - return session - } - } + if (!sessionId) return null - return null + const session = await getDoc(C.sessions.doc(sessionId)) + if (session) return session + throw new Error("[updateSession] Failed to fetch updated session") }, async deleteSession(sessionToken) { - const sessionQuery = query( - Sessions, - where("sessionToken", "==", sessionToken), - limit(1) + await deleteDocs( + C.sessions + .where(mapper.toDb("sessionToken"), "==", sessionToken) + .limit(1) ) - const sessionSnapshots = await getDocs(sessionQuery) - const sessionSnapshot = sessionSnapshots.docs[0] - - if (sessionSnapshot?.exists()) { - await deleteDoc(sessionSnapshot.ref) - } }, async createVerificationToken(verificationToken) { - const verificationTokenRef = await addDoc( - VerificationTokens, - verificationToken - ) - const verificationTokenSnapshot = await getDoc(verificationTokenRef) - - if (verificationTokenSnapshot.exists() && VerificationTokens.converter) { - const { id, ...verificationToken } = - VerificationTokens.converter.fromFirestore(verificationTokenSnapshot) - - return verificationToken - } + await C.verification_tokens.add(verificationToken) + return verificationToken }, async useVerificationToken({ identifier, token }) { - const verificationTokensQuery = query( - VerificationTokens, - where("identifier", "==", identifier), - where("token", "==", token), - limit(1) - ) - const verificationTokenSnapshots = await getDocs(verificationTokensQuery) - const verificationTokenSnapshot = verificationTokenSnapshots.docs[0] - - if (verificationTokenSnapshot?.exists() && VerificationTokens.converter) { - await deleteDoc(verificationTokenSnapshot.ref) - - const { id, ...verificationToken } = - VerificationTokens.converter.fromFirestore(verificationTokenSnapshot) - - return verificationToken - } - - return null + const verificationTokenSnapshot = ( + await C.verification_tokens + .where("identifier", "==", identifier) + .where("token", "==", token) + .limit(1) + .get() + ).docs[0] + + if (!verificationTokenSnapshot) return null + + const data = verificationTokenSnapshot.data() + await verificationTokenSnapshot.ref.delete() + return data }, } } diff --git a/packages/adapter-firebase/src/utils.ts b/packages/adapter-firebase/src/utils.ts new file mode 100644 index 0000000000..3474b27dde --- /dev/null +++ b/packages/adapter-firebase/src/utils.ts @@ -0,0 +1,168 @@ +import { AppOptions, getApps, initializeApp } from "firebase-admin/app" + +import { + getFirestore, + initializeFirestore, + Timestamp, +} from "firebase-admin/firestore" + +import type { + AdapterUser, + AdapterAccount, + AdapterSession, + VerificationToken, +} from "next-auth/adapters" +import { FirebaseAdapterConfig } from "." + +// for consistency, store all fields as snake_case in the database +const MAP_TO_FIRESTORE: Record = { + userId: "user_id", + sessionToken: "session_token", + providerAccountId: "provider_account_id", + emailVerified: "email_verified", +} +const MAP_FROM_FIRESTORE: Record = {} + +for (const key in MAP_TO_FIRESTORE) { + MAP_FROM_FIRESTORE[MAP_TO_FIRESTORE[key]!] = key +} + +const identity = (x: T) => x + +/** @internal */ +export function mapFieldsFactory(preferSnakeCase?: boolean) { + if (preferSnakeCase) { + return { + toDb: (field: string) => MAP_TO_FIRESTORE[field] ?? field, + fromDb: (field: string) => MAP_FROM_FIRESTORE[field] ?? field, + } + } + return { toDb: identity, fromDb: identity } +} + +/** @internal */ +export function getConverter>(options: { + excludeId?: boolean + preferSnakeCase?: boolean +}): FirebaseFirestore.FirestoreDataConverter { + const mapper = mapFieldsFactory(options?.preferSnakeCase ?? false) + + return { + toFirestore(object) { + const document: Record = {} + + for (const key in object) { + if (key === "id") continue + const value = object[key] + if (value !== undefined) { + document[mapper.toDb(key)] = value + } else { + console.warn(`FirebaseAdapter: value for key "${key}" is undefined`) + } + } + + return document + }, + + fromFirestore( + snapshot: FirebaseFirestore.QueryDocumentSnapshot + ): Document { + const document = snapshot.data()! // we can guarentee it exists + + const object: Record = {} + + if (!options?.excludeId) { + object.id = snapshot.id + } + + for (const key in document) { + let value: any = document[key] + if (value instanceof Timestamp) value = value.toDate() + + object[mapper.fromDb(key)] = value + } + + return object as Document + }, + } +} + +/** @internal */ +export async function getOneDoc( + querySnapshot: FirebaseFirestore.Query +): Promise { + const querySnap = await querySnapshot.limit(1).get() + return querySnap.docs[0]?.data() ?? null +} + +/** @internal */ +export async function deleteDocs( + querySnapshot: FirebaseFirestore.Query +): Promise { + const querySnap = await querySnapshot.get() + for (const doc of querySnap.docs) { + await doc.ref.delete() + } +} + +/** @internal */ +export async function getDoc( + docRef: FirebaseFirestore.DocumentReference +): Promise { + const docSnap = await docRef.get() + return docSnap.data() ?? null +} + +/** @internal */ +export function collestionsFactory( + db: FirebaseFirestore.Firestore, + preferSnakeCase = false +) { + return { + users: db + .collection("users") + .withConverter(getConverter({ preferSnakeCase })), + sessions: db + .collection("sessions") + .withConverter(getConverter({ preferSnakeCase })), + accounts: db + .collection("accounts") + .withConverter(getConverter({ preferSnakeCase })), + verification_tokens: db + .collection( + preferSnakeCase ? "verification_tokens" : "verificationTokens" + ) + .withConverter( + getConverter({ preferSnakeCase, excludeId: true }) + ), + } +} + +/** + * Utility function that helps making sure that there is no duplicate app initialization issues in serverless environments. + * If no parameter is passed, it will use the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to initialize a Firestore instance. + * + * @example + * ```ts title="lib/firestore.ts" + * import { initFirestore } from "@next-auth/firebase-adapter" + * import { cert } from "firebase-admin/app" + * + * export const firestore = initFirestore({ + * credential: cert({ + * projectId: process.env.FIREBASE_PROJECT_ID, + * clientEmail: process.env.FIREBASE_CLIENT_EMAIL, + * privateKey: process.env.FIREBASE_PRIVATE_KEY, + * }) + * }) + * ``` + */ +export function initFirestore( + options: AppOptions & { name?: FirebaseAdapterConfig["name"] } = {} +) { + const apps = getApps() + const app = options.name ? apps.find((a) => a.name === options.name) : apps[0] + + if (app) return getFirestore(app) + + return initializeFirestore(initializeApp(options, options.name)) +} diff --git a/packages/adapter-firebase/tests/index.test.ts b/packages/adapter-firebase/tests/index.test.ts index e2cd4642fd..d6426014a9 100644 --- a/packages/adapter-firebase/tests/index.test.ts +++ b/packages/adapter-firebase/tests/index.test.ts @@ -1,118 +1,57 @@ import { runBasicTests } from "@next-auth/adapter-test" -import { FirestoreAdapter } from "../src" +import { FirestoreAdapter, type FirebaseAdapterConfig } from "../src" import { - getFirestore, - connectFirestoreEmulator, - terminate, - collection, - query, - where, - limit, - getDocs, + collestionsFactory, + initFirestore, getDoc, - doc, -} from "firebase/firestore" -import { initializeApp } from "firebase/app" -import { getConverter } from "../src/converter" -import type { - AdapterSession, - AdapterUser, - VerificationToken, -} from "next-auth/adapters" -import type { Account } from "next-auth" - -const app = initializeApp({ projectId: "next-auth-test" }) -const firestore = getFirestore(app) - -connectFirestoreEmulator(firestore, "localhost", 8080) - -type IndexableObject = Record - -const Users = collection(firestore, "users").withConverter( - getConverter() -) -const Sessions = collection(firestore, "sessions").withConverter( - getConverter() + getOneDoc, + mapFieldsFactory, +} from "../src/utils" + +describe.each([ + { namingStrategy: "snake_case" }, + { namingStrategy: "default" }, +] as Partial[])( + "FirebaseAdapter with config: %s", + (config) => { + config.name = `next-auth-test-${config.namingStrategy}` + config.projectId = "next-auth-test" + config.databaseURL = "http://localhost:8080" + + const db = initFirestore(config) + const preferSnakeCase = config.namingStrategy === "snake_case" + const mapper = mapFieldsFactory(preferSnakeCase) + const C = collestionsFactory(db, preferSnakeCase) + + for (const [name, collection] of Object.entries(C)) { + test(`collection "${name}" should be empty`, async () => { + expect((await collection.count().get()).data().count).toBe(0) + }) + } + + runBasicTests({ + adapter: FirestoreAdapter(config), + db: { + disconnect: async () => await db.terminate(), + session: (sessionToken) => + getOneDoc( + C.sessions.where(mapper.toDb("sessionToken"), "==", sessionToken) + ), + user: (userId) => getDoc(C.users.doc(userId)), + account: ({ provider, providerAccountId }) => + getOneDoc( + C.accounts + .where("provider", "==", provider) + .where(mapper.toDb("providerAccountId"), "==", providerAccountId) + ), + verificationToken: ({ identifier, token }) => + getOneDoc( + C.verification_tokens + .where("identifier", "==", identifier) + .where("token", "==", token) + ), + }, + }) + } ) -const Accounts = collection(firestore, "accounts").withConverter( - getConverter() -) -const VerificationTokens = collection( - firestore, - "verificationTokens" -).withConverter( - getConverter({ excludeId: true }) -) - -runBasicTests({ - adapter: FirestoreAdapter({ projectId: "next-auth-test" }), - db: { - async disconnect() { - await terminate(firestore) - }, - async session(sessionToken) { - const snapshotQuery = query( - Sessions, - where("sessionToken", "==", sessionToken), - limit(1) - ) - const snapshots = await getDocs(snapshotQuery) - const snapshot = snapshots.docs[0] - - if (snapshot?.exists() && Sessions.converter) { - const session = Sessions.converter.fromFirestore(snapshot) - - return session - } - - return null - }, - async user(id) { - const snapshot = await getDoc(doc(Users, id)) - - if (snapshot?.exists() && Users.converter) { - const user = Users.converter.fromFirestore(snapshot) - - return user - } - - return null - }, - async account({ provider, providerAccountId }) { - const snapshotQuery = query( - Accounts, - where("provider", "==", provider), - where("providerAccountId", "==", providerAccountId), - limit(1) - ) - const snapshots = await getDocs(snapshotQuery) - const snapshot = snapshots.docs[0] - - if (snapshot?.exists() && Accounts.converter) { - const account = Accounts.converter.fromFirestore(snapshot) - - return account - } - - return null - }, - async verificationToken({ identifier, token }) { - const snapshotQuery = query( - VerificationTokens, - where("identifier", "==", identifier), - where("token", "==", token), - limit(1) - ) - const snapshots = await getDocs(snapshotQuery) - const snapshot = snapshots.docs[0] - - if (snapshot?.exists() && VerificationTokens.converter) { - const verificationToken = - VerificationTokens.converter.fromFirestore(snapshot) - - return verificationToken - } - }, - }, -}) diff --git a/packages/adapter-firebase/tests/jest.config.js b/packages/adapter-firebase/tests/jest.config.js new file mode 100644 index 0000000000..9c57406eec --- /dev/null +++ b/packages/adapter-firebase/tests/jest.config.js @@ -0,0 +1,11 @@ +import config from "@next-auth/adapter-test/jest/jest-preset.js" + +//TODO: update rest of the packages to Jest 29+ +const {testURL, ...rest} = config +export default { + ...rest, + testEnvironmentOptions: { + url: testURL + }, + rootDir: ".." +} \ No newline at end of file diff --git a/packages/adapter-firebase/tsconfig.json b/packages/adapter-firebase/tsconfig.json index aecae70fd6..d8a445f3b4 100644 --- a/packages/adapter-firebase/tsconfig.json +++ b/packages/adapter-firebase/tsconfig.json @@ -1,11 +1,23 @@ { "extends": "@next-auth/tsconfig/tsconfig.adapters.json", "compilerOptions": { - "rootDir": "src", - "outDir": "dist", "strict": true, "noUncheckedIndexedAccess": true, - "moduleResolution": "node" + "target": "ES2020", + "module": "ESNext", + "moduleResolution": "node", + "outDir": ".", + "rootDir": "src", + "skipDefaultLibCheck": true, + "strictNullChecks": true, + "stripInternal": true, + "declarationMap": true, + "declaration": true }, - "exclude": ["tests", "dist", "jest.config.js"] -} + "include": [ + "src/**/*" + ], + "exclude": [ + "tests" + ] +} \ No newline at end of file diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 7eee0ff613..fc35ca4f8d 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,4 +1,8 @@ /** + * + * :::warning Experimental + * `@auth/core` is under active development. + * ::: * * This is the main entry point to the Auth.js library. * diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5c1a77a6d9..a5f416deba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -274,16 +274,16 @@ importers: specifiers: '@next-auth/adapter-test': workspace:* '@next-auth/tsconfig': workspace:* - firebase: ^9.14.0 + firebase-admin: ^11.4.1 firebase-tools: ^11.16.1 - jest: ^27.4.3 + jest: ^29.3.1 next-auth: workspace:* devDependencies: '@next-auth/adapter-test': link:../adapter-test '@next-auth/tsconfig': link:../tsconfig - firebase: 9.14.0 + firebase-admin: 11.4.1 firebase-tools: 11.16.1 - jest: 27.5.1 + jest: 29.3.1 next-auth: link:../next-auth packages/adapter-mikro-orm: @@ -1790,7 +1790,7 @@ packages: resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.17.12 + '@babel/highlight': 7.18.6 dev: true /@babel/code-frame/7.18.6: @@ -1804,10 +1804,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/compat-data/7.20.1: - resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==} - engines: {node: '>=6.9.0'} - /@babel/compat-data/7.20.10: resolution: {integrity: sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==} engines: {node: '>=6.9.0'} @@ -1865,7 +1861,7 @@ packages: dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.7 + '@babel/generator': 7.20.14 '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-module-transforms': 7.20.11 '@babel/helpers': 7.20.7 @@ -1911,9 +1907,9 @@ packages: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 '@babel/generator': 7.20.7 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.5 - '@babel/helper-module-transforms': 7.20.2 - '@babel/helpers': 7.20.6 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.5 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helpers': 7.20.7 '@babel/parser': 7.20.7 '@babel/template': 7.20.7 '@babel/traverse': 7.20.12 @@ -1921,7 +1917,7 @@ packages: convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 - json5: 2.2.1 + json5: 2.2.3 semver: 6.3.0 transitivePeerDependencies: - supports-color @@ -1945,8 +1941,8 @@ packages: resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.4 - '@jridgewell/gen-mapping': 0.3.1 + '@babel/types': 7.20.7 + '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 dev: true @@ -1974,6 +1970,7 @@ packages: '@babel/types': 7.20.7 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 + dev: true /@babel/generator/7.20.7: resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==} @@ -1983,13 +1980,6 @@ packages: '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 - /@babel/helper-annotate-as-pure/7.16.7: - resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: true - /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} @@ -2014,61 +2004,23 @@ packages: /@babel/helper-compilation-targets/7.18.2: resolution: {integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.18.5 - '@babel/helper-validator-option': 7.16.7 - browserslist: 4.21.0 - semver: 6.3.0 - dev: true - - /@babel/helper-compilation-targets/7.18.2_@babel+core@7.18.5: - resolution: {integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.18.5 - '@babel/core': 7.18.5 - '@babel/helper-validator-option': 7.16.7 - browserslist: 4.21.0 - semver: 6.3.0 - dev: true - - /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.12: - resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.20.10 - '@babel/core': 7.20.12 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.4 - semver: 6.3.0 - - /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.2: - resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} - engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.20.10 - '@babel/core': 7.20.2 '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 dev: true - /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.5: - resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} + /@babel/helper-compilation-targets/7.18.2_@babel+core@7.18.5: + resolution: {integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.20.10 - '@babel/core': 7.20.5 + '@babel/core': 7.18.5 '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 @@ -2142,8 +2094,8 @@ packages: semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin/7.18.0: - resolution: {integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==} + /@babel/helper-create-class-features-plugin/7.20.2: + resolution: {integrity: sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2159,8 +2111,8 @@ packages: - supports-color dev: true - /@babel/helper-create-class-features-plugin/7.18.0_@babel+core@7.18.5: - resolution: {integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==} + /@babel/helper-create-class-features-plugin/7.20.2_@babel+core@7.18.5: + resolution: {integrity: sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2397,11 +2349,6 @@ packages: - supports-color dev: true - /@babel/helper-environment-visitor/7.18.2: - resolution: {integrity: sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} @@ -2419,14 +2366,6 @@ packages: dependencies: '@babel/types': 7.20.7 - /@babel/helper-function-name/7.17.9: - resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.20.7 - dev: true - /@babel/helper-function-name/7.19.0: resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} engines: {node: '>=6.9.0'} @@ -2434,13 +2373,6 @@ packages: '@babel/template': 7.20.7 '@babel/types': 7.20.7 - /@babel/helper-hoist-variables/7.16.7: - resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: true - /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} @@ -2464,34 +2396,18 @@ packages: resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.4 + '@babel/types': 7.20.7 dev: true /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 /@babel/helper-module-transforms/7.18.0: resolution: {integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.18.2 - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-simple-access': 7.18.2 - '@babel/helper-split-export-declaration': 7.16.7 - '@babel/helper-validator-identifier': 7.16.7 - '@babel/template': 7.16.7 - '@babel/traverse': 7.18.5 - '@babel/types': 7.18.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-module-transforms/7.20.11: - resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} - engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-module-imports': 7.18.6 @@ -2499,13 +2415,14 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13 + '@babel/traverse': 7.20.12 '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color + dev: true - /@babel/helper-module-transforms/7.20.2: - resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} + /@babel/helper-module-transforms/7.20.11: + resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.18.9 @@ -2518,14 +2435,6 @@ packages: '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color - dev: true - - /@babel/helper-optimise-call-expression/7.16.7: - resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: true /@babel/helper-optimise-call-expression/7.18.6: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} @@ -2540,6 +2449,7 @@ packages: /@babel/helper-plugin-utils/7.17.12: resolution: {integrity: sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-plugin-utils/7.20.2: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} @@ -2600,19 +2510,6 @@ packages: - supports-color dev: true - /@babel/helper-replace-supers/7.18.2: - resolution: {integrity: sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-member-expression-to-functions': 7.20.7 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-replace-supers/7.20.7: resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} engines: {node: '>=6.9.0'} @@ -2626,39 +2523,18 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-simple-access/7.18.2: - resolution: {integrity: sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: true - /@babel/helper-simple-access/7.20.2: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.20.7 - /@babel/helper-skip-transparent-expression-wrappers/7.16.0: - resolution: {integrity: sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: true - /@babel/helper-skip-transparent-expression-wrappers/7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.20.7 - /@babel/helper-split-export-declaration/7.16.7: - resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: true - /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} @@ -2669,10 +2545,6 @@ packages: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier/7.16.7: - resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} - engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} @@ -2712,17 +2584,6 @@ packages: /@babel/helpers/7.18.2: resolution: {integrity: sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.16.7 - '@babel/traverse': 7.18.5 - '@babel/types': 7.18.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helpers/7.20.6: - resolution: {integrity: sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==} - engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.20.7 '@babel/traverse': 7.20.13 @@ -2741,15 +2602,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/highlight/7.17.12: - resolution: {integrity: sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} @@ -2763,7 +2615,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.18.4 + '@babel/types': 7.20.7 dev: true /@babel/parser/7.20.15: @@ -2773,21 +2625,12 @@ packages: dependencies: '@babel/types': 7.20.7 - /@babel/parser/7.20.5: - resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.20.7 - dev: false - /@babel/parser/7.20.7: resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.20.7 - dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.17.12: resolution: {integrity: sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==} @@ -2795,7 +2638,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.17.12_@babel+core@7.18.5: @@ -2805,7 +2648,7 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.12: @@ -2843,9 +2686,9 @@ packages: peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - '@babel/plugin-proposal-optional-chaining': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.20.7 dev: true /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.17.12_@babel+core@7.18.5: @@ -2855,9 +2698,9 @@ packages: '@babel/core': ^7.13.0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - '@babel/plugin-proposal-optional-chaining': 7.17.12_@babel+core@7.18.5 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.18.5 dev: true /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.20.12: @@ -2901,7 +2744,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-remap-async-to-generator': 7.16.8 '@babel/plugin-syntax-async-generators': 7.8.4 transitivePeerDependencies: @@ -2915,7 +2758,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-remap-async-to-generator': 7.16.8 '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.18.5 transitivePeerDependencies: @@ -2972,8 +2815,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-create-class-features-plugin': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-create-class-features-plugin': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -2985,8 +2828,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-create-class-features-plugin': 7.18.0_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.18.5 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -3035,8 +2878,8 @@ packages: peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/helper-create-class-features-plugin': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-create-class-features-plugin': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-class-static-block': 7.14.5 transitivePeerDependencies: - supports-color @@ -3049,8 +2892,8 @@ packages: '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-create-class-features-plugin': 7.18.0_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.18.5 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.18.5 transitivePeerDependencies: - supports-color @@ -3103,7 +2946,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-dynamic-import': 7.8.3 dev: true @@ -3114,7 +2957,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.18.5 dev: true @@ -3156,7 +2999,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-export-namespace-from': 7.8.3 dev: true @@ -3167,7 +3010,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.18.5 dev: true @@ -3209,7 +3052,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-json-strings': 7.8.3 dev: true @@ -3220,7 +3063,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.18.5 dev: true @@ -3262,7 +3105,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4 dev: true @@ -3273,7 +3116,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.18.5 dev: true @@ -3315,7 +3158,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3 dev: true @@ -3326,7 +3169,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.18.5 dev: true @@ -3368,7 +3211,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-numeric-separator': 7.10.4 dev: true @@ -3379,7 +3222,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.18.5 dev: true @@ -3432,9 +3275,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.18.5 - '@babel/helper-compilation-targets': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/compat-data': 7.20.10 + '@babel/helper-compilation-targets': 7.20.7 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-object-rest-spread': 7.8.3 '@babel/plugin-transform-parameters': 7.17.12 dev: true @@ -3445,10 +3288,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.18.5 + '@babel/compat-data': 7.20.10 '@babel/core': 7.18.5 - '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.18.5 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.18.5 '@babel/plugin-transform-parameters': 7.17.12_@babel+core@7.18.5 dev: true @@ -3553,8 +3396,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/plugin-syntax-optional-chaining': 7.8.3 dev: true @@ -3565,44 +3408,32 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.18.5 - dev: true - - /@babel/plugin-proposal-optional-chaining/7.18.9_@babel+core@7.20.12: - resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.18.5 + dev: true - /@babel/plugin-proposal-optional-chaining/7.18.9_@babel+core@7.20.2: - resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} + /@babel/plugin-proposal-optional-chaining/7.20.7: + resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.2 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-optional-chaining': 7.8.3 dev: true - /@babel/plugin-proposal-optional-chaining/7.18.9_@babel+core@7.20.5: - resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} + /@babel/plugin-proposal-optional-chaining/7.20.7_@babel+core@7.18.5: + resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.5 + '@babel/core': 7.18.5 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.18.5 dev: true /@babel/plugin-proposal-optional-chaining/7.20.7_@babel+core@7.20.12: @@ -3646,8 +3477,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-create-class-features-plugin': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-create-class-features-plugin': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -3659,8 +3490,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-create-class-features-plugin': 7.18.0_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.18.5 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -3709,9 +3540,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-create-class-features-plugin': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-private-property-in-object': 7.14.5 transitivePeerDependencies: - supports-color @@ -3724,9 +3555,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-create-class-features-plugin': 7.18.0_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.18.5 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.18.5 transitivePeerDependencies: - supports-color @@ -3783,7 +3614,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/helper-create-regexp-features-plugin': 7.17.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-proposal-unicode-property-regex/7.17.12_@babel+core@7.18.5: @@ -3794,7 +3625,7 @@ packages: dependencies: '@babel/core': 7.18.5 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-proposal-unicode-property-regex/7.17.12_@babel+core@7.20.12: @@ -3805,7 +3636,7 @@ packages: dependencies: '@babel/core': 7.20.12 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-proposal-unicode-property-regex/7.17.12_@babel+core@7.20.2: resolution: {integrity: sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==} @@ -3815,7 +3646,7 @@ packages: dependencies: '@babel/core': 7.20.2 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-proposal-unicode-property-regex/7.17.12_@babel+core@7.20.5: @@ -3826,7 +3657,7 @@ packages: dependencies: '@babel/core': 7.20.5 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12: @@ -3866,7 +3697,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.18.5: @@ -3875,7 +3706,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12: @@ -3884,7 +3715,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.2: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} @@ -3892,7 +3723,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.5: @@ -3901,7 +3732,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.12: @@ -3918,7 +3749,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.18.5: @@ -3927,7 +3758,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12: @@ -3936,7 +3767,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.2: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} @@ -3944,7 +3775,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.5: @@ -3953,7 +3784,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-class-static-block/7.14.5: @@ -3962,7 +3793,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.18.5: @@ -3972,7 +3803,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.12: @@ -3982,7 +3813,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.2: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -3991,7 +3822,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.5: @@ -4001,7 +3832,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-dynamic-import/7.8.3: @@ -4052,7 +3883,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.18.5: @@ -4061,7 +3892,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.12: @@ -4070,7 +3901,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.2: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} @@ -4078,7 +3909,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.5: @@ -4087,7 +3918,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.20.12: @@ -4106,7 +3937,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-import-assertions/7.17.12_@babel+core@7.18.5: @@ -4116,7 +3947,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.12: @@ -4162,7 +3993,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.18.5: @@ -4171,7 +4002,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12: @@ -4180,7 +4011,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.2: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -4188,7 +4019,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.5: @@ -4197,7 +4028,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-jsx/7.12.1_@babel+core@7.12.9: @@ -4253,7 +4084,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.18.5: @@ -4262,7 +4093,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12: @@ -4271,7 +4102,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.2: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -4279,7 +4110,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.5: @@ -4288,7 +4119,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3: @@ -4296,7 +4127,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.18.5: @@ -4305,7 +4136,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12: @@ -4314,7 +4145,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.2: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -4322,7 +4153,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.5: @@ -4331,7 +4162,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-numeric-separator/7.10.4: @@ -4339,7 +4170,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.18.5: @@ -4348,7 +4179,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12: @@ -4357,7 +4188,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.2: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -4365,7 +4196,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.5: @@ -4374,7 +4205,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-object-rest-spread/7.8.3: @@ -4382,7 +4213,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.9: @@ -4391,7 +4222,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.18.5: @@ -4400,7 +4231,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12: @@ -4409,7 +4240,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.2: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -4417,7 +4248,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.5: @@ -4426,7 +4257,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-catch-binding/7.8.3: @@ -4434,7 +4265,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.18.5: @@ -4443,7 +4274,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12: @@ -4452,7 +4283,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.2: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -4460,7 +4291,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.5: @@ -4469,7 +4300,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-chaining/7.8.3: @@ -4477,7 +4308,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.18.5: @@ -4486,7 +4317,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12: @@ -4495,7 +4326,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.2: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -4503,7 +4334,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.5: @@ -4512,7 +4343,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-private-property-in-object/7.14.5: @@ -4521,7 +4352,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.18.5: @@ -4531,7 +4362,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.12: @@ -4541,7 +4372,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.2: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -4550,7 +4381,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.5: @@ -4560,7 +4391,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-top-level-await/7.14.5: @@ -4569,7 +4400,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.18.5: @@ -4579,7 +4410,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12: @@ -4589,7 +4420,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.2: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -4598,7 +4429,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.5: @@ -4608,7 +4439,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-typescript/7.17.12_@babel+core@7.18.5: @@ -4656,7 +4487,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-arrow-functions/7.17.12_@babel+core@7.18.5: @@ -4666,7 +4497,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.20.12: @@ -4704,8 +4535,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-remap-async-to-generator': 7.16.8 transitivePeerDependencies: - supports-color @@ -4718,8 +4549,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-remap-async-to-generator': 7.16.8 transitivePeerDependencies: - supports-color @@ -4772,7 +4603,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.18.5: @@ -4782,7 +4613,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.12: @@ -4820,7 +4651,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-block-scoping/7.18.4_@babel+core@7.18.5: @@ -4830,7 +4661,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-block-scoping/7.20.2_@babel+core@7.20.12: @@ -4868,13 +4699,13 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-environment-visitor': 7.18.2 - '@babel/helper-function-name': 7.17.9 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-replace-supers': 7.18.2 - '@babel/helper-split-export-declaration': 7.16.7 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-split-export-declaration': 7.18.6 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -4887,27 +4718,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-environment-visitor': 7.18.2 - '@babel/helper-function-name': 7.17.9 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-replace-supers': 7.18.2 - '@babel/helper-split-export-declaration': 7.16.7 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-classes/7.20.2_@babel+core@7.20.12: - resolution: {integrity: sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-optimise-call-expression': 7.18.6 @@ -4917,16 +4728,17 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true - /@babel/plugin-transform-classes/7.20.2_@babel+core@7.20.2: - resolution: {integrity: sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==} + /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.2 + '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.2 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-optimise-call-expression': 7.18.6 @@ -4936,17 +4748,16 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true - /@babel/plugin-transform-classes/7.20.2_@babel+core@7.20.5: - resolution: {integrity: sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==} + /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.2: + resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.5 + '@babel/core': 7.20.2 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.5 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.2 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-optimise-call-expression': 7.18.6 @@ -4958,15 +4769,15 @@ packages: - supports-color dev: true - /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.12: + /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.5: resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.12 + '@babel/core': 7.20.5 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.5 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-optimise-call-expression': 7.18.6 @@ -4976,7 +4787,7 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: false + dev: true /@babel/plugin-transform-computed-properties/7.17.12: resolution: {integrity: sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==} @@ -4984,7 +4795,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-computed-properties/7.17.12_@babel+core@7.18.5: @@ -4994,7 +4805,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-computed-properties/7.18.9_@babel+core@7.20.12: @@ -5032,7 +4843,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-destructuring/7.18.0_@babel+core@7.18.5: @@ -5042,7 +4853,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-destructuring/7.20.2_@babel+core@7.20.12: @@ -5081,7 +4892,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/helper-create-regexp-features-plugin': 7.17.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.18.5: @@ -5092,7 +4903,7 @@ packages: dependencies: '@babel/core': 7.18.5 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.20.12: @@ -5103,7 +4914,7 @@ packages: dependencies: '@babel/core': 7.20.12 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.20.2: resolution: {integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==} @@ -5113,7 +4924,7 @@ packages: dependencies: '@babel/core': 7.20.2 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.20.5: @@ -5124,7 +4935,7 @@ packages: dependencies: '@babel/core': 7.20.5 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.12: @@ -5165,7 +4976,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-duplicate-keys/7.17.12_@babel+core@7.18.5: @@ -5175,7 +4986,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.12: @@ -5214,7 +5025,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/helper-builder-binary-assignment-operator-visitor': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.18.5: @@ -5225,7 +5036,7 @@ packages: dependencies: '@babel/core': 7.18.5 '@babel/helper-builder-binary-assignment-operator-visitor': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.12: @@ -5277,7 +5088,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-for-of/7.18.1_@babel+core@7.18.5: @@ -5287,7 +5098,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.20.12: @@ -5325,9 +5136,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-compilation-targets': 7.18.2 - '@babel/helper-function-name': 7.17.9 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-compilation-targets': 7.20.7 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.18.5: @@ -5337,9 +5148,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.18.5 - '@babel/helper-function-name': 7.17.9 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.18.5 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.12: @@ -5383,7 +5194,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-literals/7.17.12_@babel+core@7.18.5: @@ -5393,7 +5204,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.12: @@ -5431,7 +5242,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.18.5: @@ -5441,7 +5252,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.12: @@ -5479,8 +5290,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color @@ -5493,8 +5304,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color @@ -5544,9 +5355,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-simple-access': 7.18.2 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-simple-access': 7.20.2 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color @@ -5559,9 +5370,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-simple-access': 7.18.2 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-simple-access': 7.20.2 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color @@ -5614,10 +5425,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-hoist-variables': 7.16.7 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-validator-identifier': 7.16.7 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-identifier': 7.19.1 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color @@ -5630,10 +5441,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-hoist-variables': 7.16.7 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-validator-identifier': 7.16.7 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-identifier': 7.19.1 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color @@ -5689,8 +5500,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -5702,8 +5513,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -5753,7 +5564,7 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/helper-create-regexp-features-plugin': 7.17.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-named-capturing-groups-regex/7.17.12_@babel+core@7.18.5: @@ -5764,7 +5575,7 @@ packages: dependencies: '@babel/core': 7.18.5 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-named-capturing-groups-regex/7.19.1_@babel+core@7.20.12: @@ -5805,7 +5616,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-new-target/7.18.5_@babel+core@7.18.5: @@ -5815,7 +5626,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.12: @@ -5853,8 +5664,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-replace-supers': 7.18.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 transitivePeerDependencies: - supports-color dev: true @@ -5866,8 +5677,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-replace-supers': 7.18.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 transitivePeerDependencies: - supports-color dev: true @@ -5916,7 +5727,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-parameters/7.17.12_@babel+core@7.18.5: @@ -5926,7 +5737,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-parameters/7.20.3_@babel+core@7.12.9: @@ -5974,7 +5785,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.18.5: @@ -5984,7 +5795,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.12: @@ -6033,7 +5844,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.20.12: @@ -6091,11 +5902,11 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-jsx': 7.17.12_@babel+core@7.18.5 - '@babel/types': 7.18.4 + '@babel/types': 7.20.7 dev: true /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.20.12: @@ -6132,8 +5943,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.20.12: @@ -6163,7 +5974,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 regenerator-transform: 0.15.0 dev: true @@ -6174,7 +5985,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 regenerator-transform: 0.15.0 dev: true @@ -6216,7 +6027,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-reserved-words/7.17.12_@babel+core@7.18.5: @@ -6226,7 +6037,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.12: @@ -6331,7 +6142,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.18.5: @@ -6341,7 +6152,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.12: @@ -6379,8 +6190,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true /@babel/plugin-transform-spread/7.17.12_@babel+core@7.18.5: @@ -6390,12 +6201,12 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true - /@babel/plugin-transform-spread/7.19.0_@babel+core@7.20.12: - resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6404,8 +6215,8 @@ packages: '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - /@babel/plugin-transform-spread/7.19.0_@babel+core@7.20.2: - resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.2: + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6415,8 +6226,8 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true - /@babel/plugin-transform-spread/7.19.0_@babel+core@7.20.5: - resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.5: + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6426,24 +6237,13 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true - /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.12: - resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - dev: false - /@babel/plugin-transform-sticky-regex/7.16.7: resolution: {integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.18.5: @@ -6453,7 +6253,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.12: @@ -6491,7 +6291,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-template-literals/7.18.2_@babel+core@7.18.5: @@ -6501,7 +6301,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.12: @@ -6539,7 +6339,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-typeof-symbol/7.17.12_@babel+core@7.18.5: @@ -6549,7 +6349,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.12: @@ -6588,8 +6388,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-create-class-features-plugin': 7.18.0_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.18.5 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-typescript': 7.17.12_@babel+core@7.18.5 transitivePeerDependencies: - supports-color @@ -6642,7 +6442,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.18.5: @@ -6652,7 +6452,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.12: @@ -6691,7 +6491,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/helper-create-regexp-features-plugin': 7.17.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.18.5: @@ -6702,7 +6502,7 @@ packages: dependencies: '@babel/core': 7.18.5 '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.12: @@ -6914,9 +6714,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.20.1 + '@babel/compat-data': 7.20.10 '@babel/core': 7.20.12 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.12 @@ -6932,7 +6732,7 @@ packages: '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.12 '@babel/plugin-proposal-object-rest-spread': 7.20.2_@babel+core@7.20.12 '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 '@babel/plugin-proposal-private-property-in-object': 7.18.6_@babel+core@7.20.12 '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 @@ -6955,7 +6755,7 @@ packages: '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.20.12 '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.12 '@babel/plugin-transform-block-scoping': 7.20.2_@babel+core@7.20.12 - '@babel/plugin-transform-classes': 7.20.2_@babel+core@7.20.12 + '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12 '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.20.12 '@babel/plugin-transform-destructuring': 7.20.2_@babel+core@7.20.12 '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12 @@ -6977,14 +6777,14 @@ packages: '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.20.12 '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.12 '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.20.12 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12 '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.12 '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12 '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.12 '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.12 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.12 '@babel/preset-modules': 0.1.5_@babel+core@7.20.12 - '@babel/types': 7.20.2 + '@babel/types': 7.20.7 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12 @@ -6999,9 +6799,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.20.1 + '@babel/compat-data': 7.20.10 '@babel/core': 7.20.2 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.2 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.2 @@ -7017,7 +6817,7 @@ packages: '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.2 '@babel/plugin-proposal-object-rest-spread': 7.20.2_@babel+core@7.20.2 '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.2 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.2 '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.2 '@babel/plugin-proposal-private-property-in-object': 7.18.6_@babel+core@7.20.2 '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.2 @@ -7040,7 +6840,7 @@ packages: '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.20.2 '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.2 '@babel/plugin-transform-block-scoping': 7.20.2_@babel+core@7.20.2 - '@babel/plugin-transform-classes': 7.20.2_@babel+core@7.20.2 + '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.2 '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.20.2 '@babel/plugin-transform-destructuring': 7.20.2_@babel+core@7.20.2 '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.2 @@ -7062,14 +6862,14 @@ packages: '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.20.2 '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.2 '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.2 - '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.20.2 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.2 '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.2 '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.2 '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.2 '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.2 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.2 '@babel/preset-modules': 0.1.5_@babel+core@7.20.2 - '@babel/types': 7.20.2 + '@babel/types': 7.20.7 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.2 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.2 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.2 @@ -7085,9 +6885,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.20.1 + '@babel/compat-data': 7.20.10 '@babel/core': 7.20.5 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.5 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.5 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.5 @@ -7103,7 +6903,7 @@ packages: '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.5 '@babel/plugin-proposal-object-rest-spread': 7.20.2_@babel+core@7.20.5 '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.5 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.20.5 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.5 '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.5 '@babel/plugin-proposal-private-property-in-object': 7.18.6_@babel+core@7.20.5 '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.5 @@ -7126,7 +6926,7 @@ packages: '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.20.5 '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.5 '@babel/plugin-transform-block-scoping': 7.20.2_@babel+core@7.20.5 - '@babel/plugin-transform-classes': 7.20.2_@babel+core@7.20.5 + '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.5 '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.20.5 '@babel/plugin-transform-destructuring': 7.20.2_@babel+core@7.20.5 '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.5 @@ -7148,14 +6948,14 @@ packages: '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.20.5 '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.5 '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.5 - '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.20.5 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.5 '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.5 '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.5 '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.5 '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.5 '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.5 '@babel/preset-modules': 0.1.5_@babel+core@7.20.5 - '@babel/types': 7.20.2 + '@babel/types': 7.20.7 babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.5 babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.5 babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.5 @@ -7170,10 +6970,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-proposal-unicode-property-regex': 7.17.12 '@babel/plugin-transform-dotall-regex': 7.16.7 - '@babel/types': 7.18.4 + '@babel/types': 7.20.7 esutils: 2.0.3 dev: true @@ -7183,10 +6983,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-proposal-unicode-property-regex': 7.17.12_@babel+core@7.18.5 '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.18.5 - '@babel/types': 7.18.4 + '@babel/types': 7.20.7 esutils: 2.0.3 dev: true @@ -7196,10 +6996,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-proposal-unicode-property-regex': 7.17.12_@babel+core@7.20.12 '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.20.12 - '@babel/types': 7.18.4 + '@babel/types': 7.20.7 esutils: 2.0.3 /@babel/preset-modules/0.1.5_@babel+core@7.20.2: @@ -7208,10 +7008,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-proposal-unicode-property-regex': 7.17.12_@babel+core@7.20.2 '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.20.2 - '@babel/types': 7.18.4 + '@babel/types': 7.20.7 esutils: 2.0.3 dev: true @@ -7221,10 +7021,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.5 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-proposal-unicode-property-regex': 7.17.12_@babel+core@7.20.5 '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.20.5 - '@babel/types': 7.18.4 + '@babel/types': 7.20.7 esutils: 2.0.3 dev: true @@ -7370,9 +7170,9 @@ packages: resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.7 - '@babel/parser': 7.18.5 - '@babel/types': 7.18.4 + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.20.7 + '@babel/types': 7.20.7 dev: true /@babel/template/7.18.10: @@ -7396,14 +7196,14 @@ packages: resolution: {integrity: sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.7 - '@babel/generator': 7.18.2 - '@babel/helper-environment-visitor': 7.18.2 - '@babel/helper-function-name': 7.17.9 - '@babel/helper-hoist-variables': 7.16.7 - '@babel/helper-split-export-declaration': 7.16.7 - '@babel/parser': 7.18.5 - '@babel/types': 7.18.4 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.7 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.7 + '@babel/types': 7.20.7 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -7451,7 +7251,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.7 + '@babel/generator': 7.20.14 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 @@ -7468,13 +7268,13 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.5 + '@babel/generator': 7.20.7 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.20.5 - '@babel/types': 7.20.5 + '@babel/parser': 7.20.7 + '@babel/types': 7.20.7 debug: 4.3.4_supports-color@5.5.0 globals: 11.12.0 transitivePeerDependencies: @@ -7485,24 +7285,9 @@ packages: resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.16.7 - to-fast-properties: 2.0.0 - - /@babel/types/7.20.2: - resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - - /@babel/types/7.20.5: - resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + dev: true /@babel/types/7.20.7: resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} @@ -8614,6 +8399,13 @@ packages: - supports-color dev: true + /@fastify/busboy/1.1.0: + resolution: {integrity: sha512-Fv854f94v0CzIDllbY3i/0NJPNBRNLDawf3BTYVGCe9VrIIs3Wi7AFx24F9NzCxdf0wyx/x0Q9kEVnvDOPnlxA==} + engines: {node: '>=10.17.0'} + dependencies: + text-decoding: 1.0.0 + dev: true + /@fauna-labs/fauna-schema-migrate/2.2.1_faunadb@4.6.0: resolution: {integrity: sha512-UYefaEMYwAg810vYvbvgQ2TbYGvnA2ZITZiX/yLG6BBSQEfTfA47AfzYeF9+1SQ0NM1fpUdse6d5z2NDmeDiTw==} hasBin: true @@ -8648,157 +8440,19 @@ packages: uuid: 8.3.2 dev: true - /@firebase/analytics-compat/0.1.17_dvqpjc4ehcooegrkfkqbfp67kq: - resolution: {integrity: sha512-36ByEDsH6/3YNuD6yig30s2A/+E1pt333r8SJirUE8+aHYl/DGX0PXplKvJWDGamYYjMwet3Kt4XRrB1NY8mLg==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/analytics': 0.8.4_@firebase+app@0.8.4 - '@firebase/analytics-types': 0.7.1 - '@firebase/app-compat': 0.1.39 - '@firebase/component': 0.5.21 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - dev: true - - /@firebase/analytics-types/0.7.1: - resolution: {integrity: sha512-a1INLjelc1Mqrt2CbGmGdlNBj0zsvwBv0K5q5C6Fje8GSXBMc3+iQQQjzYe/4KkK6nL54UP7ZMeI/Q3VEW72FA==} - dev: true - - /@firebase/analytics/0.8.4_@firebase+app@0.8.4: - resolution: {integrity: sha512-Bgr2tMexv0YrL6kjrOF1xVRts8PM6WWmROpfRQjh0xFU4QSoofBJhkVn2NXDXkHWrr5slFfqB5yOnmgAIsHiMw==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/installations': 0.5.16_@firebase+app@0.8.4 - '@firebase/logger': 0.3.4 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - dev: true - - /@firebase/app-check-compat/0.2.17_dvqpjc4ehcooegrkfkqbfp67kq: - resolution: {integrity: sha512-yhiAy6U4MuhbY+DCgvG5FcrXkAL+7YohRzqywycQKr31k/ftelbR5l9Zmo2WJMxdLxfubnnqeG/BYCRHlSvk7A==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-check': 0.5.17_@firebase+app@0.8.4 - '@firebase/app-check-types': 0.4.1 - '@firebase/app-compat': 0.1.39 - '@firebase/component': 0.5.21 - '@firebase/logger': 0.3.4 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - dev: true - - /@firebase/app-check-interop-types/0.1.1: - resolution: {integrity: sha512-QpYh5GmiLA9ob8NWAZpHbNNl9TzxxZI4NLevT6MYPRDXKG9BSmBI7FATRfm5uv2QQUVSQrESKog5CCmU16v+7Q==} - dev: true - - /@firebase/app-check-types/0.4.1: - resolution: {integrity: sha512-4X79w2X0H5i5qvaho3qkjZg5qdERnKR4gCfy/fxDmdMMP4QgNJHJ9IBk1E+c4cm5HlaZVcLq9K6z8xaRqjZhyw==} - dev: true - - /@firebase/app-check/0.5.17_@firebase+app@0.8.4: - resolution: {integrity: sha512-P4bm0lbs+VgS7pns322GC0hyKuTDCqYk2X4FGBf133LZaw1NXJpzOteqPdCT0hBCaR0QSHk49gxx+bdnSdd5Fg==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/logger': 0.3.4 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - dev: true - - /@firebase/app-compat/0.1.39: - resolution: {integrity: sha512-F5O/N38dVGFzpe6zM//MslYT80rpX0V+MQNMvONPUlXhvDqS5T+8NMSCWOcZ++Z4Hkj8EvgTJk59AMnD8SdyFw==} - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/logger': 0.3.4 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - dev: true - /@firebase/app-types/0.8.1: resolution: {integrity: sha512-p75Ow3QhB82kpMzmOntv866wH9eZ3b4+QbUY+8/DA5Zzdf1c8Nsk8B7kbFpzJt4wwHMdy5LTF5YUnoTc1JiWkw==} dev: true - /@firebase/app/0.8.4: - resolution: {integrity: sha512-gQntijd+sLaGWjcBQpk33giCEXNzGLB6489NMpypVgEXJwQXYQPSrtb9vUHXot1w1iy/j6xlNl4K8wwwNdRgDg==} - dependencies: - '@firebase/component': 0.5.21 - '@firebase/logger': 0.3.4 - '@firebase/util': 1.7.3 - idb: 7.0.1 - tslib: 2.4.1 - dev: true - - /@firebase/auth-compat/0.2.24_uougi3e27jpxvoatrekmluf7oy: - resolution: {integrity: sha512-IuZQScjtoOLkUHtmIUJ2F3E2OpDOyap6L/9HL/DX3nzEA1LrX7wlpeU6OF2jS9E0KLueWKIrSkIQOOsKoQj/sA==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.1.39 - '@firebase/auth': 0.20.11_@firebase+app@0.8.4 - '@firebase/auth-types': 0.11.1_ng4u4jtoxpyfdkxsmbmyeoj754 - '@firebase/component': 0.5.21 - '@firebase/util': 1.7.3 - node-fetch: 2.6.7 - selenium-webdriver: 4.5.0 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - - '@firebase/app-types' - - bufferutil - - encoding - - utf-8-validate - dev: true - - /@firebase/auth-interop-types/0.1.7_ng4u4jtoxpyfdkxsmbmyeoj754: + /@firebase/auth-interop-types/0.1.7_@firebase+util@1.7.3: resolution: {integrity: sha512-yA/dTveGGPcc85JP8ZE/KZqfGQyQTBCV10THdI8HTlP1GDvNrhr//J5jAt58MlsCOaO3XmC4DqScPBbtIsR/EA==} peerDependencies: '@firebase/app-types': 0.x '@firebase/util': 1.x dependencies: - '@firebase/app-types': 0.8.1 '@firebase/util': 1.7.3 dev: true - /@firebase/auth-types/0.11.1_ng4u4jtoxpyfdkxsmbmyeoj754: - resolution: {integrity: sha512-ud7T39VG9ptTrC2fOy/XlU+ubC+BVuBJPteuzsPZSa9l7gkntvWgVb3Z/3FxqqRPlkVUYiyvmsbRN3DE1He2ow==} - peerDependencies: - '@firebase/app-types': 0.x - '@firebase/util': 1.x - dependencies: - '@firebase/app-types': 0.8.1 - '@firebase/util': 1.7.3 - dev: true - - /@firebase/auth/0.20.11_@firebase+app@0.8.4: - resolution: {integrity: sha512-cKy91l4URDG3yWfPK7tjUySh2wCLxtTilsR59jiqQJLReBrQsKP79eFDJ6jqWwbEh3+f1lmoH1nKswwbo9XdmA==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/logger': 0.3.4 - '@firebase/util': 1.7.3 - node-fetch: 2.6.7 - selenium-webdriver: 4.5.0 - tslib: 2.4.1 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - dev: true - /@firebase/component/0.5.21: resolution: {integrity: sha512-12MMQ/ulfygKpEJpseYMR0HunJdlsLrwx2XcEs40M18jocy2+spyzHHEwegN3x/2/BLFBjR5247Etmz0G97Qpg==} dependencies: @@ -8806,11 +8460,11 @@ packages: tslib: 2.4.1 dev: true - /@firebase/database-compat/0.2.10_@firebase+app-types@0.8.1: + /@firebase/database-compat/0.2.10: resolution: {integrity: sha512-fK+IgUUqVKcWK/gltzDU+B1xauCOfY6vulO8lxoNTkcCGlSxuTtwsdqjGkFmgFRMYjXFWWJ6iFcJ/vXahzwCtA==} dependencies: '@firebase/component': 0.5.21 - '@firebase/database': 0.13.10_@firebase+app-types@0.8.1 + '@firebase/database': 0.13.10 '@firebase/database-types': 0.9.17 '@firebase/logger': 0.3.4 '@firebase/util': 1.7.3 @@ -8826,10 +8480,10 @@ packages: '@firebase/util': 1.7.3 dev: true - /@firebase/database/0.13.10_@firebase+app-types@0.8.1: + /@firebase/database/0.13.10: resolution: {integrity: sha512-KRucuzZ7ZHQsRdGEmhxId5jyM2yKsjsQWF9yv0dIhlxYg0D8rCVDZc/waoPKA5oV3/SEIoptF8F7R1Vfe7BCQA==} dependencies: - '@firebase/auth-interop-types': 0.1.7_ng4u4jtoxpyfdkxsmbmyeoj754 + '@firebase/auth-interop-types': 0.1.7_@firebase+util@1.7.3 '@firebase/component': 0.5.21 '@firebase/logger': 0.3.4 '@firebase/util': 1.7.3 @@ -8839,282 +8493,18 @@ packages: - '@firebase/app-types' dev: true - /@firebase/firestore-compat/0.2.3_uougi3e27jpxvoatrekmluf7oy: - resolution: {integrity: sha512-FgJwGCA2K+lsGk6gbJo57qn4iocQSGfOlNi2s4QsEO/WOVIU00yYGm408fN7iAGpr9d5VKyulO4sYcic7cS51g==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.1.39 - '@firebase/component': 0.5.21 - '@firebase/firestore': 3.7.3_@firebase+app@0.8.4 - '@firebase/firestore-types': 2.5.1_ng4u4jtoxpyfdkxsmbmyeoj754 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - - '@firebase/app-types' - - encoding - dev: true - - /@firebase/firestore-types/2.5.1_ng4u4jtoxpyfdkxsmbmyeoj754: - resolution: {integrity: sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==} - peerDependencies: - '@firebase/app-types': 0.x - '@firebase/util': 1.x - dependencies: - '@firebase/app-types': 0.8.1 - '@firebase/util': 1.7.3 - dev: true - - /@firebase/firestore/3.7.3_@firebase+app@0.8.4: - resolution: {integrity: sha512-hnA8hljwJBpejv0SPlt0yiej1wz3VRcLzoNAZujTCI1wLoADkRNsqic5uN/Ge0M0vbmHliLXtet/PDqvEbB9Ww==} - engines: {node: '>=10.10.0'} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/logger': 0.3.4 - '@firebase/util': 1.7.3 - '@firebase/webchannel-wrapper': 0.8.1 - '@grpc/grpc-js': 1.6.7 - '@grpc/proto-loader': 0.6.13 - node-fetch: 2.6.7 - tslib: 2.4.1 - transitivePeerDependencies: - - encoding - dev: true - - /@firebase/functions-compat/0.2.8_uougi3e27jpxvoatrekmluf7oy: - resolution: {integrity: sha512-5w668whT+bm6oVcFqIxfFbn9N77WycpNCfZNg1l0iC+5RLSt53RTVu43pqi43vh23Vp4ad+SRBgZiQGAMen5wA==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.1.39 - '@firebase/component': 0.5.21 - '@firebase/functions': 0.8.8_kuqwk5rcidsndwsionzwdbqiqi - '@firebase/functions-types': 0.5.1 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - - '@firebase/app-types' - - encoding - dev: true - - /@firebase/functions-types/0.5.1: - resolution: {integrity: sha512-olEJnTuULM/ws0pwhHA0Ze5oIdpFbZsdBGCaBhyL4pm1NUR4Moh0cyAsqr+VtqHCNMGquHU1GJ77qITkoonp0w==} - dev: true - - /@firebase/functions/0.8.8_kuqwk5rcidsndwsionzwdbqiqi: - resolution: {integrity: sha512-weNcDQJcH3/2YFaXd5dF5pUk3IQdZY60QNuWpq7yS+uaPlCRHjT0K989Q3ZcmYwXz7mHTfhlQamXdA4Yobgt+Q==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/app-check-interop-types': 0.1.1 - '@firebase/auth-interop-types': 0.1.7_ng4u4jtoxpyfdkxsmbmyeoj754 - '@firebase/component': 0.5.21 - '@firebase/messaging-interop-types': 0.1.1 - '@firebase/util': 1.7.3 - node-fetch: 2.6.7 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app-types' - - encoding - dev: true - - /@firebase/installations-compat/0.1.16_uougi3e27jpxvoatrekmluf7oy: - resolution: {integrity: sha512-Xp7s3iUMZ6/TN0a+g1kpHNEn7h59kSxi44/2I7bd3X6xwHnxMu0TqYB7U9WfqEhqiI9iKulL3g06wIZqaklElw==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.1.39 - '@firebase/component': 0.5.21 - '@firebase/installations': 0.5.16_@firebase+app@0.8.4 - '@firebase/installations-types': 0.4.1_@firebase+app-types@0.8.1 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - - '@firebase/app-types' - dev: true - - /@firebase/installations-types/0.4.1_@firebase+app-types@0.8.1: - resolution: {integrity: sha512-ac906QcmipomZjSasGDYNS1LDy4JNGzQ4VXHpFtoOrI6U2QGFkRezZpI+5bzfU062JOD+doO6irYC6Uwnv/GnA==} - peerDependencies: - '@firebase/app-types': 0.x - dependencies: - '@firebase/app-types': 0.8.1 - dev: true - - /@firebase/installations/0.5.16_@firebase+app@0.8.4: - resolution: {integrity: sha512-k3iyjr+yZnDOcJbP+CCZW3/zQJf9gYL2CNBJs9QbmFJoLz7cgIcnAT/XNDMudxcggF1goLfq4+MygpzHD0NzLA==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/util': 1.7.3 - idb: 7.0.1 - tslib: 2.4.1 - dev: true - /@firebase/logger/0.3.4: resolution: {integrity: sha512-hlFglGRgZEwoyClZcGLx/Wd+zoLfGmbDkFx56mQt/jJ0XMbfPqwId1kiPl0zgdWZX+D8iH+gT6GuLPFsJWgiGw==} dependencies: tslib: 2.4.1 dev: true - /@firebase/messaging-compat/0.1.21_dvqpjc4ehcooegrkfkqbfp67kq: - resolution: {integrity: sha512-oxQCQ8EXqpSaTybryokbEM/LAqkG0L7OJuucllCg5roqRGIHE437Abus0Bn67P8TKJaYjyKxomg8wCvfmInjlg==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.1.39 - '@firebase/component': 0.5.21 - '@firebase/messaging': 0.11.0_@firebase+app@0.8.4 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - dev: true - - /@firebase/messaging-interop-types/0.1.1: - resolution: {integrity: sha512-7XuY87zPh01EBaeS3s6co31Il5oGbPl5MxAg6Uj3fPv7PqJQlbwQ+B5k7CKSF/Y26tRxp+u+usxIvIWCSEA8CQ==} - dev: true - - /@firebase/messaging/0.11.0_@firebase+app@0.8.4: - resolution: {integrity: sha512-V7+Xw4QlB8PgINY7Wml+Uj8A3S2nR0ooVoaqfRJ8ZN3W7A4aO/DCkjPsf6DXehwfqRLA7PGB9Boe8l9Idy7icA==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/installations': 0.5.16_@firebase+app@0.8.4 - '@firebase/messaging-interop-types': 0.1.1 - '@firebase/util': 1.7.3 - idb: 7.0.1 - tslib: 2.4.1 - dev: true - - /@firebase/performance-compat/0.1.17_dvqpjc4ehcooegrkfkqbfp67kq: - resolution: {integrity: sha512-Hci5MrDlRuqwVozq7LaSAufXXElz+AtmEQArix64kLRJqHhOu5K/8TpuZXM/klR6gnLyIrk+01CrAemH3zHpDw==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.1.39 - '@firebase/component': 0.5.21 - '@firebase/logger': 0.3.4 - '@firebase/performance': 0.5.17_@firebase+app@0.8.4 - '@firebase/performance-types': 0.1.1 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - dev: true - - /@firebase/performance-types/0.1.1: - resolution: {integrity: sha512-wiJRLBg8EPaYSGJqx7aqkZ3L5fULfZa9zOTs4C06K020g0zzJh9kUUO/0U3wvHz7zRQjJxTO8Jw4SDjxs3EZrA==} - dev: true - - /@firebase/performance/0.5.17_@firebase+app@0.8.4: - resolution: {integrity: sha512-NDgzI5JYo6Itnj1FWhMkK3LtwKhtOnhC+WBkxezjzFVuCOornQjvu7ucAU1o2dHXh7MFruhHGFPsHyfkkMCljA==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/installations': 0.5.16_@firebase+app@0.8.4 - '@firebase/logger': 0.3.4 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - dev: true - - /@firebase/remote-config-compat/0.1.16_dvqpjc4ehcooegrkfkqbfp67kq: - resolution: {integrity: sha512-BWonzeqODnGki/fZ17zOnjJFR5CWbIOU0PmYGjWBnbkWxpFDdE3zNsz8JTVd/Mkt7y2PHFMYpLsyZ473E/62FQ==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.1.39 - '@firebase/component': 0.5.21 - '@firebase/logger': 0.3.4 - '@firebase/remote-config': 0.3.15_@firebase+app@0.8.4 - '@firebase/remote-config-types': 0.2.1 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - dev: true - - /@firebase/remote-config-types/0.2.1: - resolution: {integrity: sha512-1PGx4vKtMMd5uB6G1Nj2b8fOnJx7mIJGzkdyfhIM1oQx9k3dJ+pVu4StrNm46vHaD8ZlOQLr91YfUE43xSXwSg==} - dev: true - - /@firebase/remote-config/0.3.15_@firebase+app@0.8.4: - resolution: {integrity: sha512-ZCyqoCaftoNvc2r4zPaqNV4OgC4sRHjcQI+agzXESnhDLnTY8DpCaQ0m9j6deHuxxDOgu8QPDb8psLbjR+9CgQ==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/installations': 0.5.16_@firebase+app@0.8.4 - '@firebase/logger': 0.3.4 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - dev: true - - /@firebase/storage-compat/0.1.22_uougi3e27jpxvoatrekmluf7oy: - resolution: {integrity: sha512-uv33WnAEcxf2983Z03uhJmKc91LKSsRijFwut8xeoJamJoGAVj1Tc9Mio491aI1KZ+RMkNFghHL2FpxjuvxpPg==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.1.39 - '@firebase/component': 0.5.21 - '@firebase/storage': 0.9.14_@firebase+app@0.8.4 - '@firebase/storage-types': 0.6.1_ng4u4jtoxpyfdkxsmbmyeoj754 - '@firebase/util': 1.7.3 - tslib: 2.4.1 - transitivePeerDependencies: - - '@firebase/app' - - '@firebase/app-types' - - encoding - dev: true - - /@firebase/storage-types/0.6.1_ng4u4jtoxpyfdkxsmbmyeoj754: - resolution: {integrity: sha512-/pkNzKiGCSjdBBZHPvWL1kkPZfM3pFJ38HPJE1xTHwLBwdrFb4JrmY+5/E4ma5ePsbejecIOD1SZhEKDB/JwUQ==} - peerDependencies: - '@firebase/app-types': 0.x - '@firebase/util': 1.x - dependencies: - '@firebase/app-types': 0.8.1 - '@firebase/util': 1.7.3 - dev: true - - /@firebase/storage/0.9.14_@firebase+app@0.8.4: - resolution: {integrity: sha512-he8VAJ4BLkQdebnna15TI1/ymkwQTeKnjA/psKMAJ2+/UswD/68bCMKOlTrMvw6Flv3zc5YZk1xdL9DHR0i6wg==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.8.4 - '@firebase/component': 0.5.21 - '@firebase/util': 1.7.3 - node-fetch: 2.6.7 - tslib: 2.4.1 - transitivePeerDependencies: - - encoding - dev: true - /@firebase/util/1.7.3: resolution: {integrity: sha512-wxNqWbqokF551WrJ9BIFouU/V5SL1oYCGx1oudcirdhadnQRFH5v1sjgGL7cUV/UsekSycygphdrF2lxBxOYKg==} dependencies: tslib: 2.4.1 dev: true - /@firebase/webchannel-wrapper/0.8.1: - resolution: {integrity: sha512-CJW8vxt6bJaBeco2VnlJjmCmAkrrtIdf0GGKvpAB4J5gw8Gi0rHb+qsgKp6LsyS5W6ALPLawLs7phZmw02dvLw==} - dev: true - /@gar/promisify/1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -9152,6 +8542,30 @@ packages: strip-ansi: 6.0.1 dev: false + /@google-cloud/firestore/6.4.1: + resolution: {integrity: sha512-5q4sl1XCL8NH2y82KZ4WQGHDOPnrSMYq3JpIeKD5C0OCSb4MfckOTB9LeAQ3p5tlL+7UsVRHj0SyzKz27XZJjw==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + fast-deep-equal: 3.1.3 + functional-red-black-tree: 1.0.1 + google-gax: 3.5.2 + protobufjs: 7.1.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + optional: true + + /@google-cloud/paginator/3.0.7: + resolution: {integrity: sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==} + engines: {node: '>=10'} + dependencies: + arrify: 2.0.1 + extend: 3.0.2 + dev: true + optional: true + /@google-cloud/paginator/4.0.1: resolution: {integrity: sha512-6G1ui6bWhNyHjmbYwavdN7mpVPRBtyDg/bfqBTAlwr413On2TnFNfDxc9UhTJctkgoCDgQXEKiRPLPR9USlkbQ==} engines: {node: '>=12.0.0'} @@ -9175,6 +8589,12 @@ packages: engines: {node: '>=10'} dev: true + /@google-cloud/promisify/3.0.1: + resolution: {integrity: sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA==} + engines: {node: '>=12'} + dev: true + optional: true + /@google-cloud/pubsub/3.2.1: resolution: {integrity: sha512-TcGPqNkCYNwM3LTWBYjdryv1WQX2a4H52gaL9IAMZCp1i28r90syWjZoFhcUObowb3v3StTCL6a9YlPef4LY3g==} engines: {node: '>=12.0.0'} @@ -9200,6 +8620,34 @@ packages: - supports-color dev: true + /@google-cloud/storage/6.8.0: + resolution: {integrity: sha512-eRGsHrhVA7NORehYW9jLUWHRzYqFxbYiG3LQL50ZhjMekDwzhPKUQ7wbjAji9OFcO3Mk8jeNHeWdpAc/QZANCg==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + '@google-cloud/paginator': 3.0.7 + '@google-cloud/projectify': 3.0.0 + '@google-cloud/promisify': 3.0.1 + abort-controller: 3.0.0 + async-retry: 1.3.3 + compressible: 2.0.18 + duplexify: 4.1.2 + ent: 2.2.0 + extend: 3.0.2 + gaxios: 5.0.2 + google-auth-library: 8.7.0 + mime: 3.0.0 + mime-types: 2.1.35 + p-limit: 3.1.0 + retry-request: 5.0.2 + teeny-request: 8.0.2 + uuid: 8.3.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + optional: true + /@graphql-codegen/add/3.2.3_graphql@16.6.0: resolution: {integrity: sha512-sQOnWpMko4JLeykwyjFTxnhqjd/3NOG2OyMuvK76Wnnwh8DRrNf2VEs2kmSvLl7MndMlOj7Kh5U154dVcvhmKQ==} peerDependencies: @@ -9440,14 +8888,6 @@ packages: graphql: 16.6.0 dev: false - /@grpc/grpc-js/1.6.7: - resolution: {integrity: sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw==} - engines: {node: ^8.13.0 || >=10.10.0} - dependencies: - '@grpc/proto-loader': 0.6.13 - '@types/node': 18.11.10 - dev: true - /@grpc/grpc-js/1.7.3: resolution: {integrity: sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==} engines: {node: ^8.13.0 || >=10.10.0} @@ -9456,18 +8896,6 @@ packages: '@types/node': 18.11.10 dev: true - /@grpc/proto-loader/0.6.13: - resolution: {integrity: sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==} - engines: {node: '>=6'} - hasBin: true - dependencies: - '@types/long': 4.0.2 - lodash.camelcase: 4.3.0 - long: 4.0.0 - protobufjs: 6.11.3 - yargs: 16.2.0 - dev: true - /@grpc/proto-loader/0.7.3: resolution: {integrity: sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==} engines: {node: '>=6'} @@ -9572,11 +9000,11 @@ packages: resolution: {integrity: sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/node': 18.11.10 chalk: 4.1.2 jest-message-util: 28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 slash: 3.0.0 dev: true @@ -9592,6 +9020,18 @@ packages: slash: 3.0.0 dev: true + /@jest/console/29.3.1: + resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + chalk: 4.1.2 + jest-message-util: 29.3.1 + jest-util: 29.3.1 + slash: 3.0.0 + dev: true + /@jest/core/27.5.1: resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -9697,7 +9137,7 @@ packages: '@types/node': 18.11.10 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.3.2 + ci-info: 3.7.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.2.0 @@ -9722,6 +9162,48 @@ packages: - ts-node dev: true + /@jest/core/29.3.1: + resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 29.3.1 + '@jest/reporters': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.7.0 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-changed-files: 29.2.0 + jest-config: 29.3.1_@types+node@18.11.10 + jest-haste-map: 29.3.1 + jest-message-util: 29.3.1 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-resolve-dependencies: 29.3.1 + jest-runner: 29.3.1 + jest-runtime: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 + jest-watcher: 29.3.1 + micromatch: 4.0.5 + pretty-format: 29.3.1 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /@jest/create-cache-key-function/27.5.1: resolution: {integrity: sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -9764,11 +9246,21 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/fake-timers': 29.3.0 - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@types/node': 18.11.10 jest-mock: 29.3.0 dev: true + /@jest/environment/29.3.1: + resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + jest-mock: 29.3.1 + dev: true + /@jest/expect-utils/28.1.1: resolution: {integrity: sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -9783,6 +9275,13 @@ packages: jest-get-type: 29.2.0 dev: true + /@jest/expect-utils/29.3.1: + resolution: {integrity: sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.2.0 + dev: true + /@jest/expect/28.1.1: resolution: {integrity: sha512-/+tQprrFoT6lfkMj4mW/mUIfAmmk/+iQPmg7mLDIFOf2lyf7EBHaS+x3RbeR0VZVMe55IvX7QRoT/2aK3AuUXg==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -9797,8 +9296,18 @@ packages: resolution: {integrity: sha512-Lz/3x4Se5g6nBuLjTO+xE8D4OXY9fFmosZPwkXXZUJUsp9r9seN81cJa54wOGr1QjCQnhngMqclblhM4X/hcCg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.3.0 - jest-snapshot: 29.3.0 + expect: 29.3.1 + jest-snapshot: 29.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/expect/29.3.1: + resolution: {integrity: sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.3.1 + jest-snapshot: 29.3.1 transitivePeerDependencies: - supports-color dev: true @@ -9843,12 +9352,24 @@ packages: resolution: {integrity: sha512-SzmWtN6Rld+xebMRGuWeMGhytc7qHnYfFk1Zd/1QavQWsFOmA9SgtvGHCBue1wXQhdDMaSIm1aPGj2Zmyrr1Zg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@sinonjs/fake-timers': 9.1.2 '@types/node': 18.11.10 - jest-message-util: 29.2.1 + jest-message-util: 29.3.1 jest-mock: 29.3.0 - jest-util: 29.2.1 + jest-util: 29.3.1 + dev: true + + /@jest/fake-timers/29.3.1: + resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.3.1 + '@sinonjs/fake-timers': 9.1.2 + '@types/node': 18.11.10 + jest-message-util: 29.3.1 + jest-mock: 29.3.1 + jest-util: 29.3.1 dev: true /@jest/globals/27.5.1: @@ -9866,7 +9387,7 @@ packages: dependencies: '@jest/environment': 28.1.1 '@jest/expect': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 transitivePeerDependencies: - supports-color dev: true @@ -9877,12 +9398,24 @@ packages: dependencies: '@jest/environment': 29.3.0 '@jest/expect': 29.3.0 - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 jest-mock: 29.3.0 transitivePeerDependencies: - supports-color dev: true + /@jest/globals/29.3.1: + resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.3.1 + '@jest/expect': 29.3.1 + '@jest/types': 29.3.1 + jest-mock: 29.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/reporters/27.5.1: resolution: {integrity: sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -9934,7 +9467,7 @@ packages: '@jest/console': 28.1.1 '@jest/test-result': 28.1.1 '@jest/transform': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@jridgewell/trace-mapping': 0.3.17 '@types/node': 18.11.10 chalk: 4.1.2 @@ -9948,7 +9481,7 @@ packages: istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.4 jest-message-util: 28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 jest-worker: 28.1.1 slash: 3.0.0 string-length: 4.0.2 @@ -9987,7 +9520,44 @@ packages: istanbul-reports: 3.1.4 jest-message-util: 29.2.1 jest-util: 29.2.1 - jest-worker: 29.3.0 + jest-worker: 29.3.1 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters/29.3.1: + resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 + '@jridgewell/trace-mapping': 0.3.17 + '@types/node': 18.11.10 + chalk: 4.1.2 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 5.2.0 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.4 + jest-message-util: 29.3.1 + jest-util: 29.3.1 + jest-worker: 29.3.1 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -10059,7 +9629,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/console': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true @@ -10074,6 +9644,16 @@ packages: collect-v8-coverage: 1.0.1 dev: true + /@jest/test-result/29.3.1: + resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.3.1 + '@jest/types': 29.3.1 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.1 + dev: true + /@jest/test-sequencer/27.5.1: resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -10100,9 +9680,19 @@ packages: resolution: {integrity: sha512-XQlTP/S6Yf6NKV0Mt4oopFKyDxiEkDMD7hIFcCTeltKQszE0Z+LI5KLukwNW6Qxr1YzaZ/s6PlKJusiCLJNTcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.2.1 + '@jest/test-result': 29.3.1 graceful-fs: 4.2.10 - jest-haste-map: 29.3.0 + jest-haste-map: 29.3.1 + slash: 3.0.0 + dev: true + + /@jest/test-sequencer/29.3.1: + resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.3.1 + graceful-fs: 4.2.10 + jest-haste-map: 29.3.1 slash: 3.0.0 dev: true @@ -10134,7 +9724,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@babel/core': 7.20.12 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@jridgewell/trace-mapping': 0.3.17 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -10143,7 +9733,7 @@ packages: graceful-fs: 4.2.10 jest-haste-map: 28.1.1 jest-regex-util: 28.0.2 - jest-util: 28.1.1 + jest-util: 28.1.3 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -10175,6 +9765,29 @@ packages: - supports-color dev: true + /@jest/transform/29.3.1: + resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.20.12 + '@jest/types': 29.3.1 + '@jridgewell/trace-mapping': 0.3.17 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.10 + jest-haste-map: 29.3.1 + jest-regex-util: 29.2.0 + jest-util: 29.3.1 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + write-file-atomic: 4.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/types/26.6.2: resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} engines: {node: '>= 10.14.2'} @@ -10233,6 +9846,18 @@ packages: chalk: 4.1.2 dev: true + /@jest/types/29.3.1: + resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.0.0 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.11.10 + '@types/yargs': 17.0.10 + chalk: 4.1.2 + dev: true + /@jridgewell/gen-mapping/0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} @@ -10240,15 +9865,6 @@ packages: '@jridgewell/set-array': 1.1.1 '@jridgewell/sourcemap-codec': 1.4.14 - /@jridgewell/gen-mapping/0.3.1: - resolution: {integrity: sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.1 - '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.17 - dev: true - /@jridgewell/gen-mapping/0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} @@ -10257,11 +9873,6 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 '@jridgewell/trace-mapping': 0.3.17 - /@jridgewell/resolve-uri/3.0.7: - resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} - engines: {node: '>=6.0.0'} - dev: true - /@jridgewell/resolve-uri/3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} @@ -10282,7 +9893,7 @@ packages: /@jridgewell/trace-mapping/0.3.13: resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} dependencies: - '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 dev: true @@ -11062,6 +10673,11 @@ packages: engines: {node: '>=8.12.0'} dev: true + /@panva/asn1.js/1.0.0: + resolution: {integrity: sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==} + engines: {node: '>=10.13.0'} + dev: true + /@panva/hkdf/1.0.2: resolution: {integrity: sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA==} dev: false @@ -11946,7 +11562,7 @@ packages: vite: ^4.0.0 dependencies: debug: 4.3.4 - deepmerge: 4.2.2 + deepmerge: 4.3.0 kleur: 4.1.5 magic-string: 0.27.0 svelte: 3.54.0 @@ -11965,7 +11581,7 @@ packages: vite: ^4.0.0 dependencies: debug: 4.3.4 - deepmerge: 4.2.2 + deepmerge: 4.3.0 kleur: 4.1.5 magic-string: 0.27.0 svelte: 3.55.0 @@ -12562,6 +12178,14 @@ packages: '@types/range-parser': 1.2.4 dev: true + /@types/express-serve-static-core/4.17.31: + resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} + dependencies: + '@types/node': 18.11.10 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + dev: true + /@types/express/4.17.13: resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==} dependencies: @@ -12571,6 +12195,15 @@ packages: '@types/serve-static': 1.13.10 dev: true + /@types/express/4.17.15: + resolution: {integrity: sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==} + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.31 + '@types/qs': 6.9.7 + '@types/serve-static': 1.13.10 + dev: true + /@types/fs-extra/8.1.2: resolution: {integrity: sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==} dependencies: @@ -12681,6 +12314,12 @@ packages: '@types/node': 18.11.10 dev: true + /@types/jsonwebtoken/8.5.9: + resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} + dependencies: + '@types/node': 18.11.10 + dev: true + /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: @@ -14509,6 +14148,13 @@ packages: resolution: {integrity: sha512-phnXdS3RP7PPcmP6NWWzWMU0sLTeyvtZCxBPpZdkYE3seGLKSQZs9FrmVO/qwypq98FUtWWUEYxziLkdGk5nnA==} dev: true + /async-retry/1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + dependencies: + retry: 0.13.1 + dev: true + optional: true + /async-sema/3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: true @@ -14628,7 +14274,7 @@ packages: /axios/0.21.4_debug@4.3.4: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.1_debug@4.3.4 + follow-redirects: 1.15.1 transitivePeerDependencies: - debug @@ -14698,7 +14344,25 @@ packages: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.20.12 - '@jest/transform': 29.3.0 + '@jest/transform': 29.3.1 + '@types/babel__core': 7.1.19 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.2.0_@babel+core@7.20.12 + chalk: 4.1.2 + graceful-fs: 4.2.10 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-jest/29.3.1_@babel+core@7.20.12: + resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.20.12 + '@jest/transform': 29.3.1 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.2.0_@babel+core@7.20.12 @@ -14853,7 +14517,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.18.5 + '@babel/compat-data': 7.20.10 '@babel/helper-define-polyfill-provider': 0.3.1 semver: 6.3.0 transitivePeerDependencies: @@ -14865,7 +14529,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.18.5 + '@babel/compat-data': 7.20.10 '@babel/core': 7.18.5 '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.18.5 semver: 6.3.0 @@ -14917,7 +14581,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/helper-define-polyfill-provider': 0.3.1 - core-js-compat: 3.23.2 + core-js-compat: 3.26.0 transitivePeerDependencies: - supports-color dev: true @@ -14929,7 +14593,7 @@ packages: dependencies: '@babel/core': 7.18.5 '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.18.5 - core-js-compat: 3.23.2 + core-js-compat: 3.26.0 transitivePeerDependencies: - supports-color dev: true @@ -15426,17 +15090,6 @@ packages: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true - /browserslist/4.21.0: - resolution: {integrity: sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001431 - electron-to-chromium: 1.4.284 - node-releases: 2.0.6 - update-browserslist-db: 1.0.10_browserslist@4.21.0 - dev: true - /browserslist/4.21.4: resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -16502,7 +16155,7 @@ packages: /core-js-compat/3.23.2: resolution: {integrity: sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==} dependencies: - browserslist: 4.21.0 + browserslist: 4.21.4 semver: 7.0.0 dev: true @@ -17812,11 +17465,6 @@ packages: /deep-is/0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deepmerge/4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} - engines: {node: '>=0.10.0'} - dev: true - /deepmerge/4.3.0: resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==} engines: {node: '>=0.10.0'} @@ -18050,6 +17698,11 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /diff-sequences/29.3.1: + resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff/4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -18443,6 +18096,11 @@ packages: ansi-colors: 4.1.3 dev: false + /ent/2.2.0: + resolution: {integrity: sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==} + dev: true + optional: true + /entities/1.1.2: resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} dev: true @@ -19930,8 +19588,8 @@ packages: '@jest/expect-utils': 28.1.1 jest-get-type: 28.0.2 jest-matcher-utils: 28.1.1 - jest-message-util: 28.1.1 - jest-util: 28.1.1 + jest-message-util: 28.1.3 + jest-util: 28.1.3 dev: true /expect/29.3.0: @@ -19941,8 +19599,19 @@ packages: '@jest/expect-utils': 29.2.2 jest-get-type: 29.2.0 jest-matcher-utils: 29.2.2 - jest-message-util: 29.2.1 - jest-util: 29.2.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 + dev: true + + /expect/29.3.1: + resolution: {integrity: sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.3.1 + jest-get-type: 29.2.0 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 dev: true /express-basic-auth/1.2.1: @@ -20382,6 +20051,27 @@ packages: locate-path: 6.0.0 path-exists: 4.0.0 + /firebase-admin/11.4.1: + resolution: {integrity: sha512-t5+Pf8rC01TW1KPD5U8Q45AEn7eK+FJaHlpzYStFb62J+MQmN/kB/PWUEsNn+7MNAQ0DZxFUCgJoi+bRmf83oQ==} + engines: {node: '>=14'} + dependencies: + '@fastify/busboy': 1.1.0 + '@firebase/database-compat': 0.2.10 + '@firebase/database-types': 0.9.17 + '@types/node': 18.11.10 + jsonwebtoken: 9.0.0 + jwks-rsa: 2.1.5 + node-forge: 1.3.1 + uuid: 9.0.0 + optionalDependencies: + '@google-cloud/firestore': 6.4.1 + '@google-cloud/storage': 6.8.0 + transitivePeerDependencies: + - '@firebase/app-types' + - encoding + - supports-color + dev: true + /firebase-tools/11.16.1: resolution: {integrity: sha512-vi8NRUeeBXy7Be+Hk7DK0+ClF+snhjYa5s3fwPRYCGXbCX47E+jreahS6jXJIxeqMbHPmhPZrJXsy7Tdp1Ryug==} engines: {node: ^14.18.0 || >=16.4.0} @@ -20457,41 +20147,6 @@ packages: - utf-8-validate dev: true - /firebase/9.14.0: - resolution: {integrity: sha512-wePrsf7W33mhT7RVXQavragoAgXb/NDm22vuhwJXkprrQ2Y9alrEKC5LTAtLJL3P2dHdDmeylS6PLZwWPEE79A==} - dependencies: - '@firebase/analytics': 0.8.4_@firebase+app@0.8.4 - '@firebase/analytics-compat': 0.1.17_dvqpjc4ehcooegrkfkqbfp67kq - '@firebase/app': 0.8.4 - '@firebase/app-check': 0.5.17_@firebase+app@0.8.4 - '@firebase/app-check-compat': 0.2.17_dvqpjc4ehcooegrkfkqbfp67kq - '@firebase/app-compat': 0.1.39 - '@firebase/app-types': 0.8.1 - '@firebase/auth': 0.20.11_@firebase+app@0.8.4 - '@firebase/auth-compat': 0.2.24_uougi3e27jpxvoatrekmluf7oy - '@firebase/database': 0.13.10_@firebase+app-types@0.8.1 - '@firebase/database-compat': 0.2.10_@firebase+app-types@0.8.1 - '@firebase/firestore': 3.7.3_@firebase+app@0.8.4 - '@firebase/firestore-compat': 0.2.3_uougi3e27jpxvoatrekmluf7oy - '@firebase/functions': 0.8.8_kuqwk5rcidsndwsionzwdbqiqi - '@firebase/functions-compat': 0.2.8_uougi3e27jpxvoatrekmluf7oy - '@firebase/installations': 0.5.16_@firebase+app@0.8.4 - '@firebase/installations-compat': 0.1.16_uougi3e27jpxvoatrekmluf7oy - '@firebase/messaging': 0.11.0_@firebase+app@0.8.4 - '@firebase/messaging-compat': 0.1.21_dvqpjc4ehcooegrkfkqbfp67kq - '@firebase/performance': 0.5.17_@firebase+app@0.8.4 - '@firebase/performance-compat': 0.1.17_dvqpjc4ehcooegrkfkqbfp67kq - '@firebase/remote-config': 0.3.15_@firebase+app@0.8.4 - '@firebase/remote-config-compat': 0.1.16_dvqpjc4ehcooegrkfkqbfp67kq - '@firebase/storage': 0.9.14_@firebase+app@0.8.4 - '@firebase/storage-compat': 0.1.22_uougi3e27jpxvoatrekmluf7oy - '@firebase/util': 1.7.3 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - dev: true - /flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -20535,7 +20190,6 @@ packages: peerDependenciesMeta: debug: optional: true - dev: true /follow-redirects/1.15.1_debug@4.3.4: resolution: {integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==} @@ -20547,6 +20201,7 @@ packages: optional: true dependencies: debug: 4.3.4 + dev: true /for-each/0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -22333,7 +21988,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.1_debug@4.3.4 + follow-redirects: 1.15.1 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -22424,10 +22079,6 @@ packages: dependencies: postcss: 8.4.21 - /idb/7.0.1: - resolution: {integrity: sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg==} - dev: true - /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -22448,10 +22099,6 @@ packages: queue: 6.0.2 dev: true - /immediate/3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: true - /immediate/3.3.0: resolution: {integrity: sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==} dev: true @@ -23318,7 +22965,7 @@ packages: '@jest/environment': 28.1.1 '@jest/expect': 28.1.1 '@jest/test-result': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/node': 18.11.10 chalk: 4.1.2 co: 4.6.0 @@ -23326,10 +22973,10 @@ packages: is-generator-fn: 2.1.0 jest-each: 28.1.1 jest-matcher-utils: 28.1.1 - jest-message-util: 28.1.1 + jest-message-util: 28.1.3 jest-runtime: 28.1.1 jest-snapshot: 28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 pretty-format: 28.1.3 slash: 3.0.0 stack-utils: 2.0.5 @@ -23344,8 +22991,8 @@ packages: dependencies: '@jest/environment': 29.3.0 '@jest/expect': 29.3.0 - '@jest/test-result': 29.2.1 - '@jest/types': 29.2.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 18.11.10 chalk: 4.1.2 co: 4.6.0 @@ -23353,12 +23000,39 @@ packages: is-generator-fn: 2.1.0 jest-each: 29.2.1 jest-matcher-utils: 29.2.2 - jest-message-util: 29.2.1 - jest-runtime: 29.3.0 - jest-snapshot: 29.3.0 - jest-util: 29.2.1 + jest-message-util: 29.3.1 + jest-runtime: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 p-limit: 3.1.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 + slash: 3.0.0 + stack-utils: 2.0.5 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-circus/29.3.1: + resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.3.1 + '@jest/expect': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + chalk: 4.1.2 + co: 4.6.0 + dedent: 0.7.0 + is-generator-fn: 2.1.0 + jest-each: 29.3.1 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-runtime: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 + p-limit: 3.1.0 + pretty-format: 29.3.1 slash: 3.0.0 stack-utils: 2.0.5 transitivePeerDependencies: @@ -23451,6 +23125,34 @@ packages: - ts-node dev: true + /jest-cli/29.3.1: + resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + import-local: 3.1.0 + jest-config: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 + prompts: 2.4.2 + yargs: 17.5.1 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + /jest-config/27.5.1: resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -23505,7 +23207,7 @@ packages: dependencies: '@babel/core': 7.20.12 '@jest/test-sequencer': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/node': 17.0.45 babel-jest: 28.1.1_@babel+core@7.20.12 chalk: 4.1.2 @@ -23519,7 +23221,7 @@ packages: jest-regex-util: 28.0.2 jest-resolve: 28.1.1 jest-runner: 28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 jest-validate: 28.1.1 micromatch: 4.0.5 parse-json: 5.2.0 @@ -23544,7 +23246,7 @@ packages: dependencies: '@babel/core': 7.20.12 '@jest/test-sequencer': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/node': 18.11.10 babel-jest: 28.1.1_@babel+core@7.20.12 chalk: 4.1.2 @@ -23558,7 +23260,7 @@ packages: jest-regex-util: 28.0.2 jest-resolve: 28.1.1 jest-runner: 28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 jest-validate: 28.1.1 micromatch: 4.0.5 parse-json: 5.2.0 @@ -23646,6 +23348,83 @@ packages: - supports-color dev: true + /jest-config/29.3.1: + resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.20.12 + '@jest/test-sequencer': 29.3.1 + '@jest/types': 29.3.1 + babel-jest: 29.3.1_@babel+core@7.20.12 + chalk: 4.1.2 + ci-info: 3.7.0 + deepmerge: 4.3.0 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-circus: 29.3.1 + jest-environment-node: 29.3.1 + jest-get-type: 29.2.0 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-runner: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.3.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-config/29.3.1_@types+node@18.11.10: + resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.20.12 + '@jest/test-sequencer': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + babel-jest: 29.3.1_@babel+core@7.20.12 + chalk: 4.1.2 + ci-info: 3.7.0 + deepmerge: 4.3.0 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-circus: 29.3.1 + jest-environment-node: 29.3.1 + jest-get-type: 29.2.0 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-runner: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.3.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /jest-diff/26.6.2: resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} engines: {node: '>= 10.14.2'} @@ -23683,7 +23462,17 @@ packages: chalk: 4.1.2 diff-sequences: 29.2.0 jest-get-type: 29.2.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 + dev: true + + /jest-diff/29.3.1: + resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.3.1 + jest-get-type: 29.2.0 + pretty-format: 29.3.1 dev: true /jest-docblock/27.5.1: @@ -23722,10 +23511,10 @@ packages: resolution: {integrity: sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 chalk: 4.1.2 jest-get-type: 28.0.2 - jest-util: 28.1.1 + jest-util: 28.1.3 pretty-format: 28.1.3 dev: true @@ -23733,11 +23522,22 @@ packages: resolution: {integrity: sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 chalk: 4.1.2 jest-get-type: 29.2.0 - jest-util: 29.2.1 - pretty-format: 29.2.1 + jest-util: 29.3.1 + pretty-format: 29.3.1 + dev: true + + /jest-each/29.3.1: + resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.3.1 + chalk: 4.1.2 + jest-get-type: 29.2.0 + jest-util: 29.3.1 + pretty-format: 29.3.1 dev: true /jest-environment-jsdom/27.5.1: @@ -23795,10 +23595,10 @@ packages: dependencies: '@jest/environment': 28.1.1 '@jest/fake-timers': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/node': 18.11.10 jest-mock: 28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 dev: true /jest-environment-node/29.3.0: @@ -23807,10 +23607,22 @@ packages: dependencies: '@jest/environment': 29.3.0 '@jest/fake-timers': 29.3.0 - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@types/node': 18.11.10 jest-mock: 29.3.0 - jest-util: 29.2.1 + jest-util: 29.3.1 + dev: true + + /jest-environment-node/29.3.1: + resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.3.1 + '@jest/fake-timers': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + jest-mock: 29.3.1 + jest-util: 29.3.1 dev: true /jest-get-type/26.3.0: @@ -23857,14 +23669,14 @@ packages: resolution: {integrity: sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/graceful-fs': 4.1.5 '@types/node': 18.11.10 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 jest-regex-util: 28.0.2 - jest-util: 28.1.1 + jest-util: 28.1.3 jest-worker: 28.1.1 micromatch: 4.0.5 walker: 1.0.8 @@ -23884,7 +23696,26 @@ packages: graceful-fs: 4.2.10 jest-regex-util: 29.2.0 jest-util: 29.2.1 - jest-worker: 29.3.0 + jest-worker: 29.3.1 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /jest-haste-map/29.3.1: + resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.3.1 + '@types/graceful-fs': 4.1.5 + '@types/node': 18.11.10 + anymatch: 3.1.2 + fb-watchman: 2.0.1 + graceful-fs: 4.2.10 + jest-regex-util: 29.2.0 + jest-util: 29.3.1 + jest-worker: 29.3.1 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: @@ -23954,7 +23785,15 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 + dev: true + + /jest-leak-detector/29.3.1: + resolution: {integrity: sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.2.0 + pretty-format: 29.3.1 dev: true /jest-matcher-utils/27.5.1: @@ -23984,7 +23823,17 @@ packages: chalk: 4.1.2 jest-diff: 29.2.1 jest-get-type: 29.2.0 - pretty-format: 29.2.1 + pretty-format: 29.3.1 + dev: true + + /jest-matcher-utils/29.3.1: + resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.3.1 + jest-get-type: 29.2.0 + pretty-format: 29.3.1 dev: true /jest-message-util/27.5.1: @@ -24007,7 +23856,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@babel/code-frame': 7.18.6 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.10 @@ -24047,6 +23896,21 @@ packages: stack-utils: 2.0.5 dev: true + /jest-message-util/29.3.1: + resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.18.6 + '@jest/types': 29.3.1 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 29.3.1 + slash: 3.0.0 + stack-utils: 2.0.5 + dev: true + /jest-mock/27.5.1: resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -24075,9 +23939,18 @@ packages: resolution: {integrity: sha512-BRKfsAaeP3pTWeog+1D0ILeJF96SzB6y3k0JDxY63kssxiUy9nDLHmNUoVkBGILjMbpHULhbzVTsb3harPXuUQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.2.1 + '@jest/types': 29.3.1 '@types/node': 18.11.10 - jest-util: 29.2.1 + jest-util: 29.3.1 + dev: true + + /jest-mock/29.3.1: + resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + jest-util: 29.3.1 dev: true /jest-pnp-resolver/1.2.2_jest-resolve@27.5.1: @@ -24116,6 +23989,18 @@ packages: jest-resolve: 29.3.0 dev: true + /jest-pnp-resolver/1.2.2_jest-resolve@29.3.1: + resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 29.3.1 + dev: true + /jest-regex-util/27.5.1: resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -24162,6 +24047,16 @@ packages: - supports-color dev: true + /jest-resolve-dependencies/29.3.1: + resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: 29.2.0 + jest-snapshot: 29.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /jest-resolve/27.5.1: resolution: {integrity: sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -24186,7 +24081,7 @@ packages: graceful-fs: 4.2.10 jest-haste-map: 28.1.1 jest-pnp-resolver: 1.2.2_jest-resolve@28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 jest-validate: 28.1.1 resolve: 1.22.1 resolve.exports: 1.1.0 @@ -24208,6 +24103,21 @@ packages: slash: 3.0.0 dev: true + /jest-resolve/29.3.1: + resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.10 + jest-haste-map: 29.3.1 + jest-pnp-resolver: 1.2.2_jest-resolve@29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 + resolve: 1.22.1 + resolve.exports: 1.1.0 + slash: 3.0.0 + dev: true + /jest-runner/27.5.1: resolution: {integrity: sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -24248,7 +24158,7 @@ packages: '@jest/environment': 28.1.1 '@jest/test-result': 28.1.1 '@jest/transform': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/node': 18.11.10 chalk: 4.1.2 emittery: 0.10.2 @@ -24260,7 +24170,7 @@ packages: jest-message-util: 28.1.1 jest-resolve: 28.1.1 jest-runtime: 28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 jest-watcher: 28.1.1 jest-worker: 28.1.1 source-map-support: 0.5.13 @@ -24291,7 +24201,36 @@ packages: jest-runtime: 29.3.0 jest-util: 29.2.1 jest-watcher: 29.2.2 - jest-worker: 29.3.0 + jest-worker: 29.3.1 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runner/29.3.1: + resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.3.1 + '@jest/environment': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.10 + jest-docblock: 29.2.0 + jest-environment-node: 29.3.1 + jest-haste-map: 29.3.1 + jest-leak-detector: 29.3.1 + jest-message-util: 29.3.1 + jest-resolve: 29.3.1 + jest-runtime: 29.3.1 + jest-util: 29.3.1 + jest-watcher: 29.3.1 + jest-worker: 29.3.1 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: @@ -24338,7 +24277,7 @@ packages: '@jest/source-map': 28.0.2 '@jest/test-result': 28.1.1 '@jest/transform': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -24351,7 +24290,7 @@ packages: jest-regex-util: 28.0.2 jest-resolve: 28.1.1 jest-snapshot: 28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: @@ -24388,6 +24327,36 @@ packages: - supports-color dev: true + /jest-runtime/29.3.1: + resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.3.1 + '@jest/fake-timers': 29.3.1 + '@jest/globals': 29.3.1 + '@jest/source-map': 29.2.0 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + chalk: 4.1.2 + cjs-module-lexer: 1.2.2 + collect-v8-coverage: 1.0.1 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-haste-map: 29.3.1 + jest-message-util: 29.3.1 + jest-mock: 29.3.1 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /jest-serializer/27.5.1: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -24437,7 +24406,7 @@ packages: '@babel/types': 7.20.7 '@jest/expect-utils': 28.1.1 '@jest/transform': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/babel__traverse': 7.17.1 '@types/prettier': 2.6.3 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 @@ -24449,7 +24418,7 @@ packages: jest-haste-map: 28.1.1 jest-matcher-utils: 28.1.1 jest-message-util: 28.1.1 - jest-util: 28.1.1 + jest-util: 28.1.3 natural-compare: 1.4.0 pretty-format: 28.1.3 semver: 7.3.8 @@ -24489,6 +24458,38 @@ packages: - supports-color dev: true + /jest-snapshot/29.3.1: + resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.20.12 + '@babel/generator': 7.20.14 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 + '@jest/expect-utils': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 + '@types/babel__traverse': 7.17.1 + '@types/prettier': 2.6.3 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 + chalk: 4.1.2 + expect: 29.3.1 + graceful-fs: 4.2.10 + jest-diff: 29.3.1 + jest-get-type: 29.2.0 + jest-haste-map: 29.3.1 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 + natural-compare: 1.4.0 + pretty-format: 29.3.1 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + dev: true + /jest-util/27.5.1: resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -24520,7 +24521,7 @@ packages: '@jest/types': 28.1.3 '@types/node': 18.11.10 chalk: 4.1.2 - ci-info: 3.3.2 + ci-info: 3.7.0 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true @@ -24537,6 +24538,18 @@ packages: picomatch: 2.3.1 dev: true + /jest-util/29.3.1: + resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + chalk: 4.1.2 + ci-info: 3.7.0 + graceful-fs: 4.2.10 + picomatch: 2.3.1 + dev: true + /jest-validate/27.5.1: resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -24553,7 +24566,7 @@ packages: resolution: {integrity: sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 camelcase: 6.3.0 chalk: 4.1.2 jest-get-type: 28.0.2 @@ -24573,6 +24586,18 @@ packages: pretty-format: 29.2.1 dev: true + /jest-validate/29.3.1: + resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.3.1 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.2.0 + leven: 3.1.0 + pretty-format: 29.3.1 + dev: true + /jest-watch-typeahead/1.1.0_jest@28.1.1: resolution: {integrity: sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -24621,12 +24646,12 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/test-result': 28.1.1 - '@jest/types': 28.1.1 + '@jest/types': 28.1.3 '@types/node': 18.11.10 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.10.2 - jest-util: 28.1.1 + jest-util: 28.1.3 string-length: 4.0.2 dev: true @@ -24644,6 +24669,20 @@ packages: string-length: 4.0.2 dev: true + /jest-watcher/29.3.1: + resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 18.11.10 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.3.1 + string-length: 4.0.2 + dev: true + /jest-worker/26.6.2: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} @@ -24669,12 +24708,12 @@ packages: supports-color: 8.1.1 dev: true - /jest-worker/29.3.0: - resolution: {integrity: sha512-rP8LYClB5NCWW0p8GdQT9vRmZNrDmjypklEYZuGCIU5iNviVWCZK5MILS3rQwD0FY1u96bY7b+KoU17DdZy6Ww==} + /jest-worker/29.3.1: + resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.11.10 - jest-util: 29.2.1 + jest-util: 29.3.1 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -24740,6 +24779,26 @@ packages: - ts-node dev: true + /jest/29.3.1: + resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.3.1 + '@jest/types': 29.3.1 + import-local: 3.1.0 + jest-cli: 29.3.1 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + /jiti/1.16.1: resolution: {integrity: sha512-kJUp4Bj44uTaZAwG6R2/GjbodOWHULn8Swue0B7tY8v5BpTkUvDR+zBM5tsbC4x/jCeYDZ+mAdrUIScwIo4oPw==} hasBin: true @@ -24776,6 +24835,13 @@ packages: valid-url: 1.0.9 dev: true + /jose/2.0.6: + resolution: {integrity: sha512-FVoPY7SflDodE4lknJmbAHSUjLCzE2H1F6MS0RYKMQ8SR+lNccpMf8R4eqkNYyyUjR5qZReOzZo5C5YiHOCjjg==} + engines: {node: '>=10.13.0 < 13 || >=13.7.0'} + dependencies: + '@panva/asn1.js': 1.0.0 + dev: true + /jose/4.11.0: resolution: {integrity: sha512-wLe+lJHeG8Xt6uEubS4x0LVjS/3kXXu9dGoj9BNnlhYq7Kts0Pbb2pvv5KiI0yaKH/eaiR0LUOBhOVo9ktd05A==} dev: false @@ -24943,7 +25009,7 @@ packages: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 10.0.0 - ws: 8.8.0 + ws: 8.11.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -25061,6 +25127,16 @@ packages: ms: 2.1.3 semver: 5.7.1 + /jsonwebtoken/9.0.0: + resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} + engines: {node: '>=12', npm: '>=6'} + dependencies: + jws: 3.2.2 + lodash: 4.17.21 + ms: 2.1.3 + semver: 7.3.8 + dev: true + /jsprim/1.4.2: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} @@ -25078,15 +25154,6 @@ packages: array-includes: 3.1.6 object.assign: 4.1.4 - /jszip/3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - dependencies: - lie: 3.3.0 - pako: 1.0.11 - readable-stream: 2.3.7 - setimmediate: 1.0.5 - dev: true - /jwa/1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: @@ -25102,6 +25169,20 @@ packages: safe-buffer: 5.2.1 dev: true + /jwks-rsa/2.1.5: + resolution: {integrity: sha512-IODtn1SwEm7n6GQZnQLY0oxKDrMh7n/jRH1MzE8mlxWMrh2NnMyOsXTebu8vJ1qCpmuTJcL4DdiE0E4h8jnwsA==} + engines: {node: '>=10 < 13 || >=14'} + dependencies: + '@types/express': 4.17.15 + '@types/jsonwebtoken': 8.5.9 + debug: 4.3.4 + jose: 2.0.6 + limiter: 1.1.5 + lru-memoizer: 2.1.4 + transitivePeerDependencies: + - supports-color + dev: true + /jws/3.2.2: resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} dependencies: @@ -25402,12 +25483,6 @@ packages: resolution: {integrity: sha512-eY+z7hDrDKxkAK+QKZVNv92A5KYkxfvIshtBJkmg5TSiCnYqZP3i9OO9whE79Pwgm4jGaoHgkM4ao/b9Cyu4zQ==} dev: true - /lie/3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - dependencies: - immediate: 3.0.6 - dev: true - /lilconfig/2.0.5: resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} engines: {node: '>=10'} @@ -25417,6 +25492,10 @@ packages: resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} + /limiter/1.1.5: + resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} + dev: true + /lines-and-columns/1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -25744,6 +25823,13 @@ packages: yallist: 2.1.2 dev: false + /lru-cache/4.0.2: + resolution: {integrity: sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + /lru-cache/4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: @@ -25767,6 +25853,13 @@ packages: dev: true optional: true + /lru-memoizer/2.1.4: + resolution: {integrity: sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ==} + dependencies: + lodash.clonedeep: 4.5.0 + lru-cache: 4.0.2 + dev: true + /lru-queue/0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: @@ -26428,7 +26521,7 @@ packages: /moment-timezone/0.5.34: resolution: {integrity: sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==} dependencies: - moment: 2.29.3 + moment: 2.29.4 dev: true /moment/2.29.3: @@ -26437,7 +26530,6 @@ packages: /moment/2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - dev: false /mongodb-connection-string-url/2.5.2: resolution: {integrity: sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==} @@ -27611,10 +27703,6 @@ packages: resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} dev: true - /pako/1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: true - /param-case/3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: @@ -29484,6 +29572,15 @@ packages: react-is: 18.2.0 dev: true + /pretty-format/29.3.1: + resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.0.0 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /pretty-format/3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} dev: false @@ -29616,26 +29713,6 @@ packages: uglify-js: 3.17.4 dev: true - /protobufjs/6.11.3: - resolution: {integrity: sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==} - hasBin: true - requiresBuild: true - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 - '@types/long': 4.0.2 - '@types/node': 18.11.10 - long: 4.0.0 - dev: true - /protobufjs/7.1.2: resolution: {integrity: sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==} engines: {node: '>=12.0.0'} @@ -30918,18 +30995,6 @@ packages: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} dev: true - /selenium-webdriver/4.5.0: - resolution: {integrity: sha512-9mSFii+lRwcnT2KUAB1kqvx6+mMiiQHH60Y0VUtr3kxxi3oZ3CV3B8e2nuJ7T4SPb+Q6VA0swswe7rYpez07Bg==} - engines: {node: '>= 14.20.0'} - dependencies: - jszip: 3.10.1 - tmp: 0.2.1 - ws: 8.11.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - /selfsigned/2.1.1: resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} engines: {node: '>=10'} @@ -31795,6 +31860,13 @@ packages: readable-stream: 2.3.7 dev: true + /stream-events/1.0.5: + resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} + dependencies: + stubs: 3.0.0 + dev: true + optional: true + /stream-json/1.7.4: resolution: {integrity: sha512-ja2dde1v7dOlx5/vmavn8kLrxvNfs7r2oNc5DYmNJzayDDdudyCSuTB1gFjH4XBVTIwxiMxL4i059HX+ZiouXg==} dependencies: @@ -32008,6 +32080,11 @@ packages: peek-readable: 4.1.0 dev: false + /stubs/3.0.0: + resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} + dev: true + optional: true + /style-loader/2.0.0_webpack@5.75.0: resolution: {integrity: sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==} engines: {node: '>= 10.13.0'} @@ -32557,6 +32634,21 @@ packages: - supports-color dev: true + /teeny-request/8.0.2: + resolution: {integrity: sha512-34pe0a4zASseXZCKdeTiIZqSKA8ETHb1EwItZr01PAR3CLPojeAKgSjzeNS4373gi59hNulyDrPKEbh2zO9sCg==} + engines: {node: '>=12'} + dependencies: + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + node-fetch: 2.6.9 + stream-events: 1.0.5 + uuid: 9.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + optional: true + /term-img/4.1.0: resolution: {integrity: sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg==} engines: {node: '>=8'} @@ -32668,6 +32760,10 @@ packages: minimatch: 3.1.2 dev: true + /text-decoding/1.0.0: + resolution: {integrity: sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==} + dev: true + /text-extensions/1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} @@ -33777,17 +33873,6 @@ packages: setimmediate: 1.0.5 dev: true - /update-browserslist-db/1.0.10_browserslist@4.21.0: - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.0 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - /update-browserslist-db/1.0.10_browserslist@4.21.4: resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true @@ -33984,7 +34069,6 @@ packages: /uuid/9.0.0: resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} hasBin: true - dev: false /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} @@ -34479,7 +34563,7 @@ packages: hasBin: true dependencies: axios: 0.25.0 - joi: 17.6.0 + joi: 17.7.0 lodash: 4.17.21 minimist: 1.2.6 rxjs: 7.6.0 @@ -34493,7 +34577,7 @@ packages: hasBin: true dependencies: axios: 0.25.0_debug@4.3.4 - joi: 17.6.0 + joi: 17.7.0 lodash: 4.17.21 minimist: 1.2.6 rxjs: 7.6.0 @@ -34649,7 +34733,7 @@ packages: spdy: 4.0.2 webpack: 5.73.0 webpack-dev-middleware: 5.3.3_webpack@5.73.0 - ws: 8.8.0 + ws: 8.11.0 transitivePeerDependencies: - bufferutil - debug @@ -35058,19 +35142,6 @@ packages: optional: true dev: false - /ws/8.8.0: - resolution: {integrity: sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - /xdg-basedir/4.0.0: resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} engines: {node: '>=8'}