diff --git a/.eslintrc.js b/.eslintrc.js index 959bd8e316ea..999abeabb67e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,7 +1,24 @@ const path = require('path') +const findUp = require('findup-sync') + +// Framework Babel config is monorepo root ./babel.config.js +// `yarn lint` runs for each workspace, which needs findup for path to root +const findBabelConfig = (cwd = process.cwd()) => { + const configPath = findUp('babel.config.js', { cwd }) + if (!configPath) { + throw new Error(`Eslint-parser could not find a "babel.config.js" file`) + } + return configPath +} + module.exports = { extends: path.join(__dirname, 'packages/eslint-config/shared.js'), + parserOptions: { + babelOptions: { + configFile: findBabelConfig(), + }, + }, ignorePatterns: [ 'dist', 'fixtures', @@ -117,6 +134,7 @@ module.exports = { 'packages/testing/src/**', 'packages/testing/config/**', 'packages/eslint-config/*.js', + 'packages/record/src/**', ], env: { es6: true, diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index bd6947ee1803..000000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: 2 -updates: - - package-ecosystem: npm - versioning-strategy: "increase" - directory: "/" - schedule: - interval: "monthly" - day: "wednesday" - open-pull-requests-limit: 20 diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 000000000000..69ec62fa6dfc --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,32 @@ +{ + "extends": [ + "config:base" + ], + "ignoreDeps": [ + "boxen", + "configstore", + "decamelize", + "execa", + "humanize-string", + "latest-version", + "ora", + "tempy", + "terminal-link", + "@types/node-fetch" + ], + "lockFileMaintenance": { + "enabled": true + }, + "packageRules": [ + { + "matchUpdateTypes": [ + "minor", + "patch" + ], + "automerge": true + } + ], + "reviewers": [ + "@jtoar" + ] +} diff --git a/README.md b/README.md index b03228aa2edf..a557f7413cee 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ use: ## Features - Opinionated defaults for formatting, file organization, Webpack, Babel, and more -- Simple but powerful routing (all routes defined in one file) with dynamic (typed) parameters, constraints, and named route functions (to generate correct URLs) +- Simple but powerful routing (all routes defined in one file) with dynamic (typed) parameters, custom types, and named route functions (to generate correct URLs) - Automatic page-based code-splitting - Boilerplate-less GraphQL API construction - Cells: a declarative way to fetch data from the backend API @@ -584,6 +584,23 @@ And there you have it.
Shantanu Zadbuke

Duke Manh
+ +
Michael Marino
+
Igor Savin
+
Jacob Arriola
+
Jingying Gu
+
Tim Kolberger
+ + +
nzdjb
+
Hannah Vivian Shaw
+
usman kareemee
+
watway
+
Edward Mason
+ + +
Mateo Carriquí
+ diff --git a/__fixtures__/example-todo-main/api/src/lib/transform.js b/__fixtures__/example-todo-main/api/src/lib/transform.js new file mode 100644 index 000000000000..b94e029e5787 --- /dev/null +++ b/__fixtures__/example-todo-main/api/src/lib/transform.js @@ -0,0 +1,19 @@ +var sym = Symbol() + +var promise = Promise.resolve() + +var check = arr.includes('yeah!') + +console.log(arr[Symbol.iterator]()) + +Promise.allSettled() + +console.log([].includes('bazinga')) + +Promise.any() + + +Object.hasOwn({ x: 2 }, "x") + +var arr = [1, 2, 3]; +arr.at(0) === 1 diff --git a/__fixtures__/example-todo-main/babel.config.js b/__fixtures__/example-todo-main/babel.config.js index 0bb758f7df49..af57d102cfe0 100644 --- a/__fixtures__/example-todo-main/babel.config.js +++ b/__fixtures__/example-todo-main/babel.config.js @@ -1,3 +1,18 @@ +// This is added as a test for prebuild; +// check: packages/internal/**/build_api.test.ts module.exports = { - presets: ['@redwoodjs/core/config/babel-preset'], + plugins: [ + [ + 'babel-plugin-auto-import', + { + declarations: [ + { + // import kitty from 'kitty-purr' + default: 'kitty', + path: 'kitty-purr', + }, + ], + }, + ], + ] } diff --git a/__fixtures__/example-todo-main/web/.babelrc.js b/__fixtures__/example-todo-main/web/.babelrc.js deleted file mode 100644 index 562431e7d380..000000000000 --- a/__fixtures__/example-todo-main/web/.babelrc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { extends: "../babel.config.js" } diff --git a/__fixtures__/example-todo-main/web/src/components/NumTodosCell/NumTodosCell.mock.js b/__fixtures__/example-todo-main/web/src/components/NumTodosCell/NumTodosCell.mock.js index 000e81a4ff07..4d009f6a753d 100644 --- a/__fixtures__/example-todo-main/web/src/components/NumTodosCell/NumTodosCell.mock.js +++ b/__fixtures__/example-todo-main/web/src/components/NumTodosCell/NumTodosCell.mock.js @@ -1,3 +1,3 @@ -export const standard = { - todosCount: 42, +export const standard = () => { + return { todosCount: 42 } } diff --git a/__fixtures__/example-todo-main/web/src/components/NumTodosTwoCell/NumTodosTwoCell.js b/__fixtures__/example-todo-main/web/src/components/NumTodosTwoCell/NumTodosTwoCell.js new file mode 100644 index 000000000000..db7d243222f0 --- /dev/null +++ b/__fixtures__/example-todo-main/web/src/components/NumTodosTwoCell/NumTodosTwoCell.js @@ -0,0 +1,11 @@ +export const QUERY = gql` + query NumTodosCell_GetCount { + todosCount + } +` + +export const Loading = () =>
Loading...
+ +export const Success = ({ todosCount }) => { + return <>{todosCount} +} diff --git a/__fixtures__/example-todo-main/web/src/components/NumTodosTwoCell/NumTodosTwoCell.mock.js b/__fixtures__/example-todo-main/web/src/components/NumTodosTwoCell/NumTodosTwoCell.mock.js new file mode 100644 index 000000000000..f38901d758d8 --- /dev/null +++ b/__fixtures__/example-todo-main/web/src/components/NumTodosTwoCell/NumTodosTwoCell.mock.js @@ -0,0 +1,7 @@ +export function standard() { + return { + todosCount: 42, + } +} +export const justAnotherExport = 'bazinga' +export const please = () => 'leave_me_alone' diff --git a/babel.config.js b/babel.config.js index a1d6732131e5..15b84c76ee44 100644 --- a/babel.config.js +++ b/babel.config.js @@ -55,6 +55,18 @@ module.exports = { ['@babel/plugin-proposal-class-properties', { loose: true }], ['@babel/plugin-proposal-private-methods', { loose: true }], ['@babel/plugin-proposal-private-property-in-object', { loose: true }], + [ + '@babel/plugin-transform-runtime', + { + // https://babeljs.io/docs/en/babel-plugin-transform-runtime/#core-js-aliasing + // Setting the version here also requires `@babel/runtime-corejs3` + corejs: { version: 3, proposals: true }, + // https://babeljs.io/docs/en/babel-plugin-transform-runtime/#version + // Transform-runtime assumes that @babel/runtime@7.0.0 is installed. + // Specifying the version can result in a smaller bundle size. + version: packageJSON.devDependencies['@babel/runtime-corejs3'], + }, + ], ], overrides: [ // ** WEB PACKAGES ** @@ -93,18 +105,6 @@ module.exports = { ], }, ], - [ - '@babel/plugin-transform-runtime', - { - // https://babeljs.io/docs/en/babel-plugin-transform-runtime/#core-js-aliasing - // Setting the version here also requires `@babel/runtime-corejs3` - corejs: { version: 3, proposals: true }, - // https://babeljs.io/docs/en/babel-plugin-transform-runtime/#version - // Transform-runtime assumes that @babel/runtime@7.0.0 is installed. - // Specifying the version can result in a smaller bundle size. - version: packageJSON.devDependencies['@babel/runtime-corejs3'], - }, - ], // normally provided through preset-env detecting TARGET_BROWSER // but webpack 4 has an issue with this // see https://github.com/PaulLeCam/react-leaflet/issues/883 diff --git a/package.json b/package.json index e518e83b7eb0..c015d69b15ab 100644 --- a/package.json +++ b/package.json @@ -7,21 +7,21 @@ "packages/*" ], "devDependencies": { - "@babel/cli": "7.15.7", - "@babel/node": "7.15.8", - "eslint": "7.32.0", + "@babel/cli": "7.16.0", + "@babel/node": "7.16.0", + "eslint": "8.2.0", "jest": "27.3.1", "npm-packlist": "3.0.0", "rimraf": "3.0.2", - "typescript": "4.4.4", + "typescript": "4.5.2", "typescript-transform-paths": "3.3.1" }, "resolutions": { - "@types/react": "17.0.31", + "@types/react": "17.0.35", "prop-types": "15.7.2", "react-dom": "17.0.2", "react": "17.0.2", - "typescript": "4.4.4", + "typescript": "4.5.2", "vscode-languageserver-protocol": "3.15.3", "vscode-languageserver-types": "3.16.0", "vscode-languageserver": "6.1.1", diff --git a/packages/api-server/package.json b/packages/api-server/package.json index 5070af9e9889..c5f528d003ba 100644 --- a/packages/api-server/package.json +++ b/packages/api-server/package.json @@ -1,7 +1,7 @@ { "name": "@redwoodjs/api-server", "description": "Redwood's HTTP server for Serverless Functions", - "version": "0.38.1", + "version": "0.39.2", "bin": { "rw-api-server": "./dist/index.js", "rw-api-server-watch": "./dist/watch.js" @@ -12,12 +12,12 @@ "main": "dist/cliHandlers", "license": "MIT", "dependencies": { - "@babel/plugin-transform-runtime": "7.15.8", + "@babel/plugin-transform-runtime": "7.16.4", "ansi-colors": "4.1.1", "chokidar": "3.5.2", - "fastify": "3.23.0", + "fastify": "3.24.1", "fastify-http-proxy": "6.2.1", - "fastify-raw-body": "3.1.0", + "fastify-raw-body": "3.2.0", "fastify-static": "4.5.0", "fastify-url-data": "3.0.3", "lodash.escape": "4.0.1", @@ -30,13 +30,13 @@ "directory": "packages/api-server" }, "devDependencies": { - "@babel/cli": "7.15.7", - "@types/aws-lambda": "8.10.84", + "@babel/cli": "7.16.0", + "@types/aws-lambda": "8.10.85", "@types/lodash.escape": "4.0.6", "@types/qs": "6.9.7", - "aws-lambda": "1.0.6", + "aws-lambda": "1.0.7", "jest": "27.3.1", - "typescript": "4.4.4" + "typescript": "4.5.2" }, "scripts": { "build": "yarn build:js", diff --git a/packages/api/package.json b/packages/api/package.json index c4f1e8cd7245..65e56140056d 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@redwoodjs/api", - "version": "0.38.1", + "version": "0.39.2", "files": [ "dist", "logger", @@ -10,15 +10,15 @@ "types": "./dist/index.d.ts", "license": "MIT", "dependencies": { - "@prisma/client": "3.3.0", - "core-js": "3.18.3", + "@babel/runtime-corejs3": "7.16.3", + "@prisma/client": "3.5.0", "crypto-js": "4.1.1", "jsonwebtoken": "8.5.1", "jwks-rsa": "2.0.5", "md5": "2.3.0", "pascalcase": "1.0.0", - "pino": "7.0.3", - "pino-pretty": "7.1.0", + "pino": "7.3.0", + "pino-pretty": "7.2.0", "uuid": "8.3.2" }, "repository": { @@ -27,20 +27,15 @@ "directory": "packages/api" }, "devDependencies": { - "@babel/cli": "7.15.7", - "@redwoodjs/auth": "0.38.1", + "@babel/cli": "7.16.0", + "@redwoodjs/auth": "0.39.2", "@types/crypto-js": "4.0.2", - "@types/jsonwebtoken": "8.5.5", + "@types/jsonwebtoken": "8.5.6", "@types/md5": "2.3.1", - "aws-lambda": "1.0.6", + "aws-lambda": "1.0.7", "jest": "27.3.1", - "split2": "4.0.0", - "typescript": "4.4.4" - }, - "jest": { - "testPathIgnorePatterns": [ - "/dist/" - ] + "split2": "4.1.0", + "typescript": "4.5.2" }, "scripts": { "build": "yarn build:js && yarn build:types", diff --git a/packages/api/src/validations/__tests__/validations.test.js b/packages/api/src/validations/__tests__/validations.test.js index 0cea04cfcd8e..2a4a8304bf4e 100644 --- a/packages/api/src/validations/__tests__/validations.test.js +++ b/packages/api/src/validations/__tests__/validations.test.js @@ -269,7 +269,7 @@ describe('validate length', () => { try { validate('a', 'username', { length: { min: 2 } }) } catch (e) { - expect(e.message).toEqual('username must have more than 2 characters') + expect(e.message).toEqual('username must have at least 2 characters') } // custom error @@ -297,7 +297,7 @@ describe('validate length', () => { try { validate('jeff', 'Username', { length: { max: 2 } }) } catch (e) { - expect(e.message).toEqual('Username must have less than 2 characters') + expect(e.message).toEqual('Username must have no more than 2 characters') } // custom error diff --git a/packages/api/src/validations/errors.ts b/packages/api/src/validations/errors.ts index b2f7ebd2b7f6..5d6b9ea47210 100644 --- a/packages/api/src/validations/errors.ts +++ b/packages/api/src/validations/errors.ts @@ -83,7 +83,7 @@ export class InclusionValidationError extends ServiceValidationError { export class MinLengthValidationError extends ServiceValidationError { constructor( name: string, - message = '${name} must have more than ${min} characters', + message = '${name} must have at least ${min} characters', substitutions: { min?: number } = {} ) { super(message, Object.assign(substitutions, { name })) @@ -94,7 +94,7 @@ export class MinLengthValidationError extends ServiceValidationError { export class MaxLengthValidationError extends ServiceValidationError { constructor( name: string, - message = '${name} must have less than ${max} characters', + message = '${name} must have no more than ${max} characters', substitutions: { max?: number } = {} ) { super(message, Object.assign(substitutions, { name })) diff --git a/packages/auth/ambient.d.ts b/packages/auth/ambient.d.ts index cddfdbf0187b..bb0f5548fb9e 100644 --- a/packages/auth/ambient.d.ts +++ b/packages/auth/ambient.d.ts @@ -15,13 +15,21 @@ declare global { **/ var RWJS_API_DBAUTH_URL: string + /** + * URL or absolute path to serverless functions, without the trailing slash. + * Example: `./redwood/functions/` or `https://api.redwoodjs.com/` + **/ + var RWJS_API_URL: string + namespace NodeJS { interface Global { __REDWOOD__USE_AUTH: () => AuthContextInterface - /** FQDN or absolute path to the GraphQL serverless function */ + /** URL or absolute path to the GraphQL serverless function */ RWJS_API_GRAPHQL_URL: string - /** FQDN or absolute path to the DbAuth serverless function */ + /** URL or absolute path to the DbAuth serverless function */ RWJS_API_DBAUTH_URL: string + /** URL or absolute path to serverless functions */ + RWJS_API_URL: string } } } diff --git a/packages/auth/package.json b/packages/auth/package.json index 531757225a0e..d38ca041c2c6 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@redwoodjs/auth", - "version": "0.38.1", + "version": "0.39.2", "files": [ "dist" ], @@ -9,23 +9,23 @@ "license": "MIT", "devDependencies": { "@auth0/auth0-spa-js": "1.19.2", - "@azure/msal-browser": "2.18.0", - "@babel/cli": "7.15.7", - "@clerk/clerk-js": "1.33.0", - "@clerk/clerk-sdk-node": "0.5.2", - "@clerk/types": "1.13.0", - "@supabase/supabase-js": "1.25.0", + "@azure/msal-browser": "2.19.0", + "@babel/cli": "7.16.0", + "@clerk/clerk-js": "2.3.0", + "@clerk/clerk-sdk-node": "2.1.2", + "@clerk/types": "1.16.0", + "@supabase/supabase-js": "1.28.2", "@types/netlify-identity-widget": "1.9.2", - "@types/react": "17.0.31", - "firebase": "9.1.3", + "@types/react": "17.0.35", + "firebase": "9.5.0", "firebase-admin": "10.0.0", "gotrue-js": "0.9.29", "jest": "27.3.1", - "magic-sdk": "6.2.0", + "magic-sdk": "6.2.1", "netlify-identity-widget": "1.9.2", "nhost-js-sdk": "3.1.0", "react": "17.0.2", - "typescript": "4.4.4" + "typescript": "4.5.2" }, "repository": { "type": "git", diff --git a/packages/auth/src/authClients/supabase.ts b/packages/auth/src/authClients/supabase.ts index 098a9ba89be4..67952f4f4677 100644 --- a/packages/auth/src/authClients/supabase.ts +++ b/packages/auth/src/authClients/supabase.ts @@ -1,5 +1,5 @@ import { Session, User, Provider } from '@supabase/gotrue-js' -import type { SupabaseClient } from '@supabase/supabase-js' +import type { SupabaseClient, ApiError } from '@supabase/supabase-js' import type { AuthClient } from './index' @@ -15,7 +15,8 @@ export interface AuthClientSupabase extends AuthClient { * @param options.password The user's password. * @param options.phone The user's phone number. * @param options.refreshToken A valid refresh token that was returned on login. - * @param { 'apple' | 'azure' | 'bitbucket' | 'discord' | 'facebook' | 'github' | 'gitlab' | 'google' | 'twitch' | 'twitter' } options.provider One of the providers supported by GoTrue. + * @param options.provider One of the supported third-party providers. + * @see https://supabase.com/docs/guides/auth#third-party-logins * @param redirectTo A URL or mobile address to send the user to after they are confirmed. * @param scopes A space-separated list of scopes granted to the OAuth application. */ @@ -32,10 +33,9 @@ export interface AuthClientSupabase extends AuthClient { user: User | null provider?: Provider url?: string | null - error: Error | null - data: Session | null // Deprecated + error: ApiError | null }> - logout(): Promise<{ error: Error | null }> + logout(): Promise<{ error: ApiError | null }> /** * Creates a new user. * @@ -53,8 +53,7 @@ export interface AuthClientSupabase extends AuthClient { }): Promise<{ user: User | null session: Session | null - error: Error | null - data: Session | User | null // Deprecated + error: ApiError | null }> /** * Restore Redwood authentication state when an OAuth or magiclink @@ -76,8 +75,7 @@ export interface AuthClientSupabase extends AuthClient { }): Promise<{ user: User | null session: Session | null - error: Error | null - data: Session | User | null // Deprecated + error: ApiError | null }> client: Supabase } diff --git a/packages/cli/README.md b/packages/cli/README.md index 9bd0fc89edc3..a384fbfe2fff 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -22,7 +22,6 @@ - [Adding a Destroyer](#adding-a-destroyer) - [Adding a Provider to the Auth Generator](#adding-a-provider-to-the-auth-generator) - [dbCommands](#dbcommands) - - [redwood-tools](#redwood-tools) - [Converting to TypeScript](#converting-to-typescript) - [Generators](#generators) - [What about...](#what-about) @@ -97,8 +96,6 @@ export const handler = (argv) => { } ``` -To get a good sense of the difference, compare [redwood-tools.js](https://github.com/redwoodjs/redwood/blob/d51ade08118c17459cebcdb496197ea52485364a/packages/cli/src/redwood-tools.js#L79-L167) to [dev.js](https://github.com/redwoodjs/redwood/blob/d51ade08118c17459cebcdb496197ea52485364a/packages/cli/src/commands/dev.js#L10-L77), or any other command. - ### Overview Contributing to `@redwoodjs/cli` usually means adding a command or modifying an existing one. We've organized this doc around adding a command since if you know how to do this you'll know how to modify one too. @@ -600,31 +597,6 @@ Adding or modifying a command here's no different—there's still a `command This is because most `dbCommands` are really just running prisma commands, so they really just have to output something like `yarn prisma ...`. -### redwood-tools - -[redwood-tools](https://github.com/redwoodjs/redwood/blob/main/packages/cli/src/redwood-tools.js) is Redwood's companion CLI development tool. -You can find a list of its commands in the top-level [contributing](https://github.com/redwoodjs/redwood/blob/main/CONTRIBUTING.md) guide. If you're contributing to `redwood-tools`, you're contributing in a way that helps people contribute, which is pretty meta. - -As mentioned, redwood-tools uses the "regular" yargs api, which is defined by method-chaining. -Adding a command here just entails adding another `command` method before the calls to `demandCommand` and `strict` at the end: - -```javascript -// ./src/commands/redwood-tools.js - -... - -.command( - ['hello', 'h'], - 'Say hi', - {}, - () => console.log('hi!') -) -.demandCommand() -.strict().argv -``` - -Contrived example aside, any command you add here should help people contribute to Redwood. - #### Generators If you're converting a generator, read the _Goals_ section of tracking issue [#523](https://github.com/redwoodjs/redwood/issues/523); it details some specs you should comply with. @@ -651,8 +623,7 @@ redwood/packages/cli ├── commands ├── index.d.ts ├── index.js - ├── lib - └── redwood-tools.js + └── lib ``` #### index.js diff --git a/packages/cli/package.json b/packages/cli/package.json index 9574c4b33820..a3ff1affa70e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,14 +1,12 @@ { "name": "@redwoodjs/cli", "description": "The Redwood Command Line", - "version": "0.38.1", + "version": "0.39.2", "license": "MIT", "bin": { "redwood": "./dist/index.js", - "redwood-tools": "./dist/redwood-tools.js", "rw": "./dist/index.js", - "rwfw": "./dist/rwfw.js", - "rwt": "./dist/redwood-tools.js" + "rwfw": "./dist/rwfw.js" }, "repository": { "type": "git", @@ -19,22 +17,23 @@ "dist" ], "dependencies": { - "@prisma/sdk": "3.3.0", - "@redwoodjs/api-server": "0.38.1", - "@redwoodjs/internal": "0.38.1", - "@redwoodjs/prerender": "0.38.1", - "@redwoodjs/structure": "0.38.1", + "@prisma/sdk": "3.5.0", + "@redwoodjs/api-server": "0.39.2", + "@redwoodjs/internal": "0.39.2", + "@redwoodjs/prerender": "0.39.2", + "@redwoodjs/structure": "0.39.2", "boxen": "5.1.2", - "camelcase": "6.2.0", + "camelcase": "6.2.1", "chalk": "4.1.2", - "concurrently": "6.3.0", + "concurrently": "6.4.0", "configstore": "3.1.5", - "core-js": "3.18.3", + "core-js": "3.19.1", "cross-env": "7.0.3", "decamelize": "5.0.0", "dotenv-defaults": "3.0.0", "envinfo": "7.8.1", "execa": "5.1.1", + "fast-glob": "3.2.7", "fs-extra": "10.0.0", "humanize-string": "2.1.0", "latest-version": "5.1.0", @@ -45,7 +44,7 @@ "pascalcase": "1.0.0", "pluralize": "8.0.0", "prettier": "2.4.1", - "prisma": "3.3.0", + "prisma": "3.5.0", "prompts": "2.4.2", "rimraf": "3.0.2", "secure-random-password": "0.2.3", @@ -53,11 +52,11 @@ "yargs": "16.2.0" }, "devDependencies": { - "@babel/cli": "7.15.7", + "@babel/cli": "7.16.0", "@types/listr": "0.14.4", "@types/node-fetch": "2.5.12", "jest": "27.3.1", - "typescript": "4.4.4" + "typescript": "4.5.2" }, "scripts": { "dev": "RWJS_CWD=../../__fixtures__/example-todo-main node dist/index.js", @@ -65,7 +64,7 @@ "prepublishOnly": "yarn build", "build:clean-dist": "rimraf 'dist/**/*/__tests__'", "build:js": "babel src -d dist --extensions \".js,.ts,.tsx\" --copy-files --no-copy-ignored && yarn build:clean-dist", - "fix:permissions": "chmod +x dist/index.js dist/redwood-tools.js dist/rwfw.js", + "fix:permissions": "chmod +x dist/index.js dist/rwfw.js", "build:watch": "nodemon --watch src --ext \"js,ts,tsx,template\" --ignore dist --exec \"yarn build && yarn fix:permissions\"", "test": "jest src", "test:watch": "yarn test --watch" diff --git a/packages/cli/src/commands/build.js b/packages/cli/src/commands/build.js index 5866b35f4b96..3a9916d9cd26 100644 --- a/packages/cli/src/commands/build.js +++ b/packages/cli/src/commands/build.js @@ -12,6 +12,7 @@ import { detectPrerenderRoutes } from '@redwoodjs/prerender/detection' import { getPaths } from '../lib' import c from '../lib/colors' import { generatePrismaCommand } from '../lib/generatePrismaClient' +import checkForBabelConfig from '../middleware/checkForBabelConfig' import { getTasks as getPrerenderTasks } from './prerender' @@ -71,6 +72,7 @@ export const builder = (yargs) => { default: false, description: 'Measure build performance', }) + .middleware(checkForBabelConfig) .epilogue( `Also see the ${terminalLink( 'Redwood CLI Reference', diff --git a/packages/cli/src/commands/deploy/aws-providers/serverless.js b/packages/cli/src/commands/deploy/aws-providers/serverless.js index c3d5929f0542..b354406549c3 100644 --- a/packages/cli/src/commands/deploy/aws-providers/serverless.js +++ b/packages/cli/src/commands/deploy/aws-providers/serverless.js @@ -12,7 +12,7 @@ export const preRequisites = [ command: ['yarn', ['zip-it-and-ship-it', '--version']], errorMessage: [ 'Looks like @netlify/zip-it-and-ship-it is not installed.', - 'Either run `yarn rw setup aws-serverless` or add it seperately as a dev dependency in the api workspace.', + 'Either run `yarn rw setup aws-serverless` or add it separately as a dev dependency in the api workspace.', ], }, ] diff --git a/packages/cli/src/commands/dev.js b/packages/cli/src/commands/dev.js index f320261b0aba..be59ab84f78c 100644 --- a/packages/cli/src/commands/dev.js +++ b/packages/cli/src/commands/dev.js @@ -8,6 +8,7 @@ import { getConfig, getConfigPath, shutdownPort } from '@redwoodjs/internal' import { getPaths } from '../lib' import c from '../lib/colors' import { generatePrismaClient } from '../lib/generatePrismaClient' +import checkForBabelConfig from '../middleware/checkForBabelConfig' export const command = 'dev [side..]' export const description = 'Start development servers for api, and web' @@ -34,6 +35,7 @@ export const builder = (yargs) => { type: 'boolean', description: 'Reload on changes to node_modules', }) + .middleware(checkForBabelConfig) .epilogue( `Also see the ${terminalLink( 'Redwood CLI Reference', diff --git a/packages/cli/src/commands/generate/model/model.js b/packages/cli/src/commands/generate/model/model.js new file mode 100644 index 000000000000..b6c4f55eb8c6 --- /dev/null +++ b/packages/cli/src/commands/generate/model/model.js @@ -0,0 +1,69 @@ +import path from 'path' + +import Listr from 'listr' +import terminalLink from 'terminal-link' + +import { getPaths, writeFilesTask, generateTemplate } from '../../../lib' +import c from '../../../lib/colors' +import { verifyModelName } from '../../../lib/schemaHelpers' +import { yargsDefaults } from '../../generate' + +const TEMPLATE_PATH = path.resolve(__dirname, 'templates', 'model.js.template') + +export const files = ({ name, typescript = false }) => { + const outputFilename = `${name}.${typescript ? 'ts' : 'js'}` + const outputPath = path.join(getPaths().api.models, outputFilename) + + return { + [outputPath]: generateTemplate(TEMPLATE_PATH, { name }), + } +} + +export const command = 'model ' +export const description = 'Generate a RedwoodRecord model' +export const builder = (yargs) => { + yargs + .positional('name', { + description: 'Name of the model to create', + type: 'string', + }) + .epilogue( + `Also see the ${terminalLink( + 'RedwoodRecord Reference', + 'https://redwoodjs.com/docs/redwoodrecord' + )}` + ) + + Object.entries(yargsDefaults).forEach(([option, config]) => { + yargs.option(option, config) + }) +} + +export const handler = async ({ force, ...args }) => { + const tasks = new Listr( + [ + { + title: 'Generating model file...', + task: () => { + return writeFilesTask(files(args), { overwriteExisting: force }) + }, + }, + { + title: 'Parsing datamodel, generating api/src/models/index.js...', + task: async () => { + const { parseDatamodel } = await import('@redwoodjs/record') + await parseDatamodel() + }, + }, + ].filter(Boolean), + { collapse: false } + ) + + try { + await verifyModelName({ name: args.name }) + await tasks.run() + } catch (e) { + console.log(c.error(e.message)) + process.exit(1) + } +} diff --git a/packages/cli/src/commands/generate/model/templates/model.js.template b/packages/cli/src/commands/generate/model/templates/model.js.template new file mode 100644 index 000000000000..bf67d64af819 --- /dev/null +++ b/packages/cli/src/commands/generate/model/templates/model.js.template @@ -0,0 +1,3 @@ +import { RedwoodRecord } from '@redwoodjs/record' + +export default class ${name} extends RedwoodRecord {} diff --git a/packages/cli/src/commands/generate/scaffold/__tests__/__snapshots__/scaffold.test.js.snap b/packages/cli/src/commands/generate/scaffold/__tests__/__snapshots__/scaffold.test.js.snap index ebb08259b388..2c8c09bfb78b 100644 --- a/packages/cli/src/commands/generate/scaffold/__tests__/__snapshots__/scaffold.test.js.snap +++ b/packages/cli/src/commands/generate/scaffold/__tests__/__snapshots__/scaffold.test.js.snap @@ -142,7 +142,6 @@ const PostForm = (props) => { defaultChecked={props.post?.isPinned} className=\\"rw-input\\" errorClassName=\\"rw-input rw-input-error\\" - validation={{ required: true }} /> @@ -1294,7 +1293,6 @@ const PostForm = (props) => { defaultChecked={props.post?.isPinned} className=\\"rw-input\\" errorClassName=\\"rw-input rw-input-error\\" - validation={{ required: true }} /> diff --git a/packages/cli/src/commands/generate/scaffold/__tests__/__snapshots__/scaffoldNoNest.test.js.snap b/packages/cli/src/commands/generate/scaffold/__tests__/__snapshots__/scaffoldNoNest.test.js.snap index 7c29ac874916..7e8555244de5 100644 --- a/packages/cli/src/commands/generate/scaffold/__tests__/__snapshots__/scaffoldNoNest.test.js.snap +++ b/packages/cli/src/commands/generate/scaffold/__tests__/__snapshots__/scaffoldNoNest.test.js.snap @@ -142,7 +142,6 @@ const PostForm = (props) => { defaultChecked={props.post?.isPinned} className=\\"rw-input\\" errorClassName=\\"rw-input rw-input-error\\" - validation={{ required: true }} /> @@ -1251,7 +1250,6 @@ const PostForm = (props) => { defaultChecked={props.post?.isPinned} className=\\"rw-input\\" errorClassName=\\"rw-input rw-input-error\\" - validation={{ required: true }} /> diff --git a/packages/cli/src/commands/generate/scaffold/scaffold.js b/packages/cli/src/commands/generate/scaffold/scaffold.js index 759923e88fee..f7a0f3ca476c 100644 --- a/packages/cli/src/commands/generate/scaffold/scaffold.js +++ b/packages/cli/src/commands/generate/scaffold/scaffold.js @@ -363,7 +363,7 @@ const componentFiles = async ( Boolean: { componentName: 'CheckboxField', defaultProp: 'defaultChecked', - validation: false, + validation: () => false, listDisplayFunction: 'checkboxInputTag', displayFunction: 'checkboxInputTag', }, @@ -689,13 +689,6 @@ export const handler = async ({ typescript, tailwind, }) => { - /** @deprecated Used to be able to create dbAuth pages with `yarn rw g scaffold dbAuth` */ - if (modelArg.toLowerCase() === 'dbauth') { - console.info(c.green('\nGenerate dbAuth pages with:\n')) - console.info(' yarn rw generate dbAuth\n') - process.exit(0) - } - if (tests === undefined) { tests = getConfig().generate.tests } diff --git a/packages/cli/src/commands/record.js b/packages/cli/src/commands/record.js new file mode 100644 index 000000000000..933c1b9dbef0 --- /dev/null +++ b/packages/cli/src/commands/record.js @@ -0,0 +1,15 @@ +export const command = 'record ' +export const description = + 'Setup RedwoodRecord for your project. Caches a JSON version of your data model and adds api/src/models/index.js with some config.' +import terminalLink from 'terminal-link' + +export const builder = (yargs) => + yargs + .commandDir('./record', { recurse: false }) + .demandCommand() + .epilogue( + `Also see the ${terminalLink( + 'RedwoodRecord Docs', + 'https://redwoodjs.com/docs/redwoodrecord' + )}\n` + ) diff --git a/packages/cli/src/commands/record/init.js b/packages/cli/src/commands/record/init.js new file mode 100644 index 000000000000..a7122fd30123 --- /dev/null +++ b/packages/cli/src/commands/record/init.js @@ -0,0 +1,5 @@ +import { parseDatamodel } from '@redwoodjs/record' + +export const handler = async () => { + await parseDatamodel() +} diff --git a/packages/cli/src/commands/setup.js b/packages/cli/src/commands/setup.js index 72fd5db7a570..7168fc4aa93e 100644 --- a/packages/cli/src/commands/setup.js +++ b/packages/cli/src/commands/setup.js @@ -4,7 +4,7 @@ import terminalLink from 'terminal-link' export const builder = (yargs) => yargs - .commandDir('./setup', { recurse: true }) + .commandDir('./setup', { recurse: true, exclude: /\/ui\/.*\.js$/ }) .demandCommand() .epilogue( `Also see the ${terminalLink( diff --git a/packages/cli/src/commands/setup/auth/templates/auth.ts.template b/packages/cli/src/commands/setup/auth/templates/auth.ts.template index 3b4c159d3cf9..88f43b4df6ba 100644 --- a/packages/cli/src/commands/setup/auth/templates/auth.ts.template +++ b/packages/cli/src/commands/setup/auth/templates/auth.ts.template @@ -1,6 +1,12 @@ import { parseJWT } from '@redwoodjs/api' import { AuthenticationError, ForbiddenError } from '@redwoodjs/graphql-server' +/** + * Represents the user attributes returned by the decoding the + * Authentication provider's JWT together with an optional list of roles. + */ +type RedwoodUser = Record & { roles?: string[] } + /** * getCurrentUser returns the user information together with * an optional collection of roles used by requireAuth() to check @@ -11,13 +17,21 @@ import { AuthenticationError, ForbiddenError } from '@redwoodjs/graphql-server' * @param { APIGatewayEvent event, Context context } - An object which contains information from the invoker * such as headers and cookies, and the context information about the invocation such as IP Address * + * !! BEWARE !! Anything returned from this function will be available to the + * client--it becomes the content of `currentUser` on the web side (as well as + * `context.currentUser` on the api side). You should carefully add additional + * fields to the return object only once you've decided they are safe to be seen + * if someone were to open the Web Inspector in their browser. + * * @see https://github.com/redwoodjs/redwood/tree/main/packages/auth for examples + * + * @returns RedwoodUser */ export const getCurrentUser = async ( decoded, - { _token, _type }, - { _event, _context } -) => { + { token, type }, + { event, context } +): Promise => { if (!decoded) { return null } diff --git a/packages/cli/src/commands/setup/auth/templates/azureActiveDirectory.auth.ts.template b/packages/cli/src/commands/setup/auth/templates/azureActiveDirectory.auth.ts.template index 266b7242cc35..8acf369673be 100644 --- a/packages/cli/src/commands/setup/auth/templates/azureActiveDirectory.auth.ts.template +++ b/packages/cli/src/commands/setup/auth/templates/azureActiveDirectory.auth.ts.template @@ -1,4 +1,5 @@ -import { AuthenticationError, ForbiddenError, parseJWT } from '@redwoodjs/graphql-server' +import { parseJWT } from '@redwoodjs/api' +import { AuthenticationError, ForbiddenError } from '@redwoodjs/graphql-server' /** * getCurrentUser returns the user information together with @@ -10,6 +11,12 @@ import { AuthenticationError, ForbiddenError, parseJWT } from '@redwoodjs/graphq * @param { APIGatewayEvent event, Context context } - An object which contains information from the invoker * such as headers and cookies, and the context information about the invocation such as IP Address * + * !! BEWARE !! Anything returned from this function will be available to the + * client--it becomes the content of `currentUser` on the web side (as well as + * `context.currentUser` on the api side). You should carefully add additional + * fields to the return object only once you've decided they are safe to be seen + * if someone were to open the Web Inspector in their browser. + * * @see https://github.com/redwoodjs/redwood/tree/main/packages/auth for examples */ export const getCurrentUser = async ( diff --git a/packages/cli/src/commands/setup/auth/templates/dbAuth.auth.ts.template b/packages/cli/src/commands/setup/auth/templates/dbAuth.auth.ts.template index f2621c6febfb..74cf4f09c15e 100644 --- a/packages/cli/src/commands/setup/auth/templates/dbAuth.auth.ts.template +++ b/packages/cli/src/commands/setup/auth/templates/dbAuth.auth.ts.template @@ -1,18 +1,29 @@ import { AuthenticationError, ForbiddenError } from '@redwoodjs/graphql-server' import { db } from './db' -// The session object sent in as the first argument to getCurrentUser() will -// have a single key `id` containing the unique ID of the logged in user -// (whatever field you set as `authFields.id` in your auth function config). -// You'll need to update the call to `db` below if you use a different model -// name or unique field name: -// -// return await db.profile.findUnique({ where: { email: session.id } }) -// ───┬─── ──┬── -// model accessor ─┘ unique id field name ─┘ +/** + * The session object sent in as the first argument to getCurrentUser() will + * have a single key `id` containing the unique ID of the logged in user + * (whatever field you set as `authFields.id` in your auth function config). + * You'll need to update the call to `db` below if you use a different model + * name or unique field name, for example: + * + * return await db.profile.findUnique({ where: { email: session.id } }) + * ───┬─── ──┬── + * model accessor ─┘ unique id field name ─┘ + * + * !! BEWARE !! Anything returned from this function will be available to the + * client--it becomes the content of `currentUser` on the web side (as well as + * `context.currentUser` on the api side). You should carefully add additional + * fields to the `select` object below once you've decided they are safe to be + * seen if someone were to open the Web Inspector in their browser. + */ export const getCurrentUser = async (session) => { - return await db.user.findUnique({ where: { id: session.id } }) + return await db.user.findUnique({ + where: { id: session.id }, + select: { id: true }, + }) } /** @@ -43,13 +54,14 @@ export const hasRole = ({ roles }: { roles: AllowedRoles }): boolean => { return false } + // If your User model includes roles, uncomment the role checks on currentUser if (roles) { if (Array.isArray(roles)) { - return context.currentUser.roles?.some((r) => roles.includes(r)) + // return context.currentUser.roles?.some((r) => roles.includes(r)) } if (typeof roles === 'string') { - return context.currentUser.roles?.includes(roles) + // return context.currentUser.roles?.includes(roles) } // roles not found diff --git a/packages/cli/src/commands/setup/auth/templates/ethereum.auth.ts.template b/packages/cli/src/commands/setup/auth/templates/ethereum.auth.ts.template index 48c5d0615ce7..fef30584c4c4 100644 --- a/packages/cli/src/commands/setup/auth/templates/ethereum.auth.ts.template +++ b/packages/cli/src/commands/setup/auth/templates/ethereum.auth.ts.template @@ -4,7 +4,12 @@ import { db } from './db' // See https://redwoodjs.com/cookbook/role-based-access-control-rbac // for how to add Role-based Access Control (RBAC) here. - +// +// !! BEWARE !! Anything returned from this function will be available to the +// client--it becomes the content of `currentUser` on the web side (as well as +// `context.currentUser` on the api side). You should carefully add additional +// fields to the returned object once you've decided they are safe to be +// seen if someone were to open the Web Inspector in their browser. export const getCurrentUser = async (decoded) => { return db.user.findUnique({ where: { address: decoded.address } }) } diff --git a/packages/cli/src/commands/setup/auth/templates/firebase.auth.ts.template b/packages/cli/src/commands/setup/auth/templates/firebase.auth.ts.template index dabf204b3777..a157c6f08087 100644 --- a/packages/cli/src/commands/setup/auth/templates/firebase.auth.ts.template +++ b/packages/cli/src/commands/setup/auth/templates/firebase.auth.ts.template @@ -7,18 +7,22 @@ const adminApp = admin.initializeApp({ }) /** - * getCurrentUser returns the user information together with - * an optional collection of roles used by requireAuth() to check - * if the user is authenticated or has role-based access + * getCurrentUser returns the user information from the decoded JWT * * @param decoded - The decoded access token containing user info and JWT claims like `sub`. Note could be null. * @param { token, SupportedAuthTypes type } - The access token itself as well as the auth provider type * @param { APIGatewayEvent event, Context context } - An object which contains information from the invoker * such as headers and cookies, and the context information about the invocation such as IP Address * + * !! BEWARE !! Anything returned from this function will be available to the + * client--it becomes the content of `currentUser` on the web side (as well as + * `context.currentUser` on the api side). You should carefully add additional + * fields to the return object only once you've decided they are safe to be seen + * if someone were to open the Web Inspector in their browser. + * * @see https://github.com/redwoodjs/redwood/tree/main/packages/auth for examples */ - export const getCurrentUser = async ( +export const getCurrentUser = async ( decoded, { _token, _type }, { _event, _context } diff --git a/packages/cli/src/commands/setup/auth/templates/magicLink.auth.js.template b/packages/cli/src/commands/setup/auth/templates/magicLink.auth.js.template index 164b2565f665..f69cdaf6bcc9 100644 --- a/packages/cli/src/commands/setup/auth/templates/magicLink.auth.js.template +++ b/packages/cli/src/commands/setup/auth/templates/magicLink.auth.js.template @@ -1,13 +1,19 @@ +import { AuthenticationError } from '@redwoodjs/graphql-server' + /** - * getCurrentUser returns the user information together with - * an optional collection of roles used by requireAuth() to check - * if the user is authenticated or has role-based access + * getCurrentUser returns the user information from the decoded JWT * * @param decoded - The decoded access token containing user info and JWT claims like `sub`. Note could be null. * @param { token, SupportedAuthTypes type } - The access token itself as well as the auth provider type * @param { APIGatewayEvent event, Context context } - An object which contains information from the invoker * such as headers and cookies, and the context information about the invocation such as IP Address * + * !! BEWARE !! Anything returned from this function will be available to the + * client--it becomes the content of `currentUser` on the web side (as well as + * `context.currentUser` on the api side). You should carefully add additional + * fields to the return object only once you've decided they are safe to be seen + * if someone were to open the Web Inspector in their browser. + * * @see https://github.com/redwoodjs/redwood/tree/main/packages/auth for examples */ export const getCurrentUser = async ( diff --git a/packages/cli/src/commands/setup/custom-web-index/custom-web-index.js b/packages/cli/src/commands/setup/custom-web-index/custom-web-index.js index 402c4aa10357..e0259ea71a49 100644 --- a/packages/cli/src/commands/setup/custom-web-index/custom-web-index.js +++ b/packages/cli/src/commands/setup/custom-web-index/custom-web-index.js @@ -10,7 +10,7 @@ import c from '../../../lib/colors' export const command = 'custom-web-index' export const description = - 'Setup a custom index.js file, so you can customise how Redwood web is mounted in your browser' + 'Set up a custom index.js file, so you can customise how Redwood web is mounted in your browser' export const builder = (yargs) => { yargs.option('force', { diff --git a/packages/cli/src/commands/setup/deploy/providers/aws-serverless.js b/packages/cli/src/commands/setup/deploy/providers/aws-serverless.js index 976f9b567436..c2f82a958af3 100644 --- a/packages/cli/src/commands/setup/deploy/providers/aws-serverless.js +++ b/packages/cli/src/commands/setup/deploy/providers/aws-serverless.js @@ -44,7 +44,7 @@ ${ ${fs .readdirSync(path.resolve(getPaths().api.functions)) .map((file) => { - const basename = path.basename(file, '.js') + const basename = path.parse(file).name return `${basename}: description: ${basename} function deployed on AWS Lambda package: diff --git a/packages/cli/src/commands/setup/i18n/i18n.js b/packages/cli/src/commands/setup/i18n/i18n.js index c7285fdb3963..daff32e0770e 100644 --- a/packages/cli/src/commands/setup/i18n/i18n.js +++ b/packages/cli/src/commands/setup/i18n/i18n.js @@ -9,7 +9,7 @@ import { getPaths, writeFile } from '../../../lib' import c from '../../../lib/colors' export const command = 'i18n' -export const description = 'Setup i18n' +export const description = 'Set up i18n' export const builder = (yargs) => { yargs.option('force', { alias: 'f', diff --git a/packages/cli/src/commands/setup/tailwind.js b/packages/cli/src/commands/setup/tailwind.js new file mode 100644 index 000000000000..11ede13756e4 --- /dev/null +++ b/packages/cli/src/commands/setup/tailwind.js @@ -0,0 +1,28 @@ +import execa from 'execa' + +import c from '../../lib/colors' + +// ******** +// Deprecated as of November 2021 +// Use "setup ui " command +// ******** + +export const command = 'tailwind' +export const description = false + +export const handler = async () => { + try { + console.log(c.warning('\n' + 'WARNING: deprecated "tailwind" command')) + console.log( + c.green('See "rw setup ui tailwindcss" command: ') + + 'https://redwoodjs.com/reference/command-line-interface#ui' + + '\n' + ) + await execa('yarn rw setup ui tailwindcss', { + stdio: 'inherit', + shell: true, + }) + } catch (e) { + console.log(c.error(e.message)) + } +} diff --git a/packages/cli/src/commands/setup/tsconfig/tsconfig.js b/packages/cli/src/commands/setup/tsconfig/tsconfig.js index c3d52fc97265..3c4e0ed64f08 100644 --- a/packages/cli/src/commands/setup/tsconfig/tsconfig.js +++ b/packages/cli/src/commands/setup/tsconfig/tsconfig.js @@ -12,7 +12,7 @@ import c from '../../../lib/colors' export const command = 'tsconfig' -export const description = 'Setup tsconfig for web and api sides' +export const description = 'Set up tsconfig for web and api sides' export const builder = (yargs) => { yargs.option('force', { diff --git a/packages/cli/src/commands/setup/ui.js b/packages/cli/src/commands/setup/ui.js new file mode 100644 index 000000000000..89780a9864b3 --- /dev/null +++ b/packages/cli/src/commands/setup/ui.js @@ -0,0 +1,14 @@ +import terminalLink from 'terminal-link' + +export const command = 'ui ' +export const description = 'Set up a UI design or style library' +export const builder = (yargs) => + yargs + .commandDir('./ui') + .demandCommand() + .epilogue( + `Also see the ${terminalLink( + 'Redwood CLI Reference', + 'https://redwoodjs.com/reference/command-line-interface#ui' + )}` + ) diff --git a/packages/cli/src/commands/setup/ui/chakra-ui.js b/packages/cli/src/commands/setup/ui/chakra-ui.js new file mode 100644 index 000000000000..4a943ba990e9 --- /dev/null +++ b/packages/cli/src/commands/setup/ui/chakra-ui.js @@ -0,0 +1,77 @@ +import execa from 'execa' +import Listr from 'listr' + +import c from '../../../lib/colors' + +import { + checkStorybookStatus, + configureStorybook, +} from './tasks/configure-storybook' +import { checkSetupStatus, wrapWithChakraProvider } from './tasks/setup-chakra' + +export const command = 'chakra-ui' +export const description = 'Set up Chakra UI' + +export function builder(yargs) { + yargs.option('force', { + alias: 'f', + default: false, + description: 'Overwrite existing configuration', + type: 'boolean', + }) + yargs.option('install', { + alias: 'i', + default: true, + description: 'Install packages', + type: 'boolean', + }) +} + +export async function handler({ force, install }) { + const packages = [ + '@chakra-ui/react', + '@emotion/react@^11', + '@emotion/styled@^11', + 'framer-motion@^4', + ] + + const tasks = new Listr([ + { + title: 'Installing packages...', + skip: () => !install, + task: () => { + return new Listr([ + { + title: `Install ${packages.join(', ')}`, + task: async () => { + await execa('yarn', [ + 'workspace', + 'web', + 'add', + '-D', + ...packages, + ]) + }, + }, + ]) + }, + }, + { + title: 'Setting up Chakra UI...', + skip: () => checkSetupStatus() === 'done', + task: () => wrapWithChakraProvider(), + }, + { + title: 'Configure Storybook...', + skip: () => checkStorybookStatus({ force }) === 'done', + task: async () => configureStorybook(), + }, + ]) + + try { + await tasks.run() + } catch (e) { + console.error(c.error(e.message)) + process.exit(e?.exitCode || 1) + } +} diff --git a/packages/cli/src/commands/setup/tailwind/tailwind.js b/packages/cli/src/commands/setup/ui/tailwindcss.js similarity index 62% rename from packages/cli/src/commands/setup/tailwind/tailwind.js rename to packages/cli/src/commands/setup/ui/tailwindcss.js index bafda1088036..88a6268d3c1b 100644 --- a/packages/cli/src/commands/setup/tailwind/tailwind.js +++ b/packages/cli/src/commands/setup/ui/tailwindcss.js @@ -1,15 +1,16 @@ import fs from 'fs' import path from 'path' -import chalk from 'chalk' import execa from 'execa' +import { outputFileSync } from 'fs-extra' import Listr from 'listr' -import { getPaths, writeFile } from '../../../lib' +import { getPaths } from '../../../lib' import c from '../../../lib/colors' -export const command = 'tailwind' -export const description = 'Setup tailwindcss and PostCSS' +export const command = 'tailwindcss' +export const aliases = ['tailwind', 'tw'] +export const description = 'Set up tailwindcss and PostCSS' export const builder = (yargs) => { yargs.option('force', { alias: 'f', @@ -39,19 +40,28 @@ const tailwindImportsExist = (indexCSS) => const tailwindImportsAndNotes = [ '/**', - ' * START --- TAILWIND GENERATOR EDIT', + ' * START --- SETUP TAILWINDCSS EDIT', ' *', - ' * `yarn rw setup tailwind` placed these imports here', + ' * `yarn rw setup ui tailwindcss` placed these imports here', " * to inject Tailwind's styles into your CSS.", - ' * For more information, see: https://tailwindcss.com/docs/installation#add-tailwind-to-your-css', + ' * For more information, see: https://tailwindcss.com/docs/installation#include-tailwind-in-your-css', ' */', ...tailwindImports, '/**', - ' * END --- TAILWIND GENERATOR EDIT', + ' * END --- SETUP TAILWINDCSS EDIT', ' */\n', ] export const handler = async ({ force, install }) => { + const rwPaths = getPaths() + + const packages = [ + 'postcss', + 'postcss-loader', + 'tailwindcss@next', + 'autoprefixer', + ] + const tasks = new Listr([ { title: 'Installing packages...', @@ -59,18 +69,14 @@ export const handler = async ({ force, install }) => { task: () => { return new Listr([ { - title: - 'Install postcss, postcss-loader, tailwindcss, and autoprefixer', + title: `Install ${packages.join(', ')}`, task: async () => { await execa('yarn', [ 'workspace', 'web', 'add', '-D', - 'postcss', - 'postcss-loader', - 'tailwindcss', - 'autoprefixer', + ...packages, ]) }, }, @@ -80,44 +86,31 @@ export const handler = async ({ force, install }) => { { title: 'Configuring PostCSS...', task: () => { - /** - * Make web/config if it doesn't exist - * and write postcss.config.js there - */ - /** * Check if PostCSS config already exists. * If it exists, throw an error. */ - const postCSSConfigPath = getPaths().web.postcss + const postCSSConfigPath = rwPaths.web.postcss if (!force && fs.existsSync(postCSSConfigPath)) { throw new Error( 'PostCSS config already exists.\nUse --force to override existing config.' ) } else { - return writeFile( - postCSSConfigPath, - fs - .readFileSync( - path.resolve( - __dirname, - 'templates', - 'postcss.config.js.template' - ) - ) - .toString(), - { overwriteExisting: force } + const postCSSConfig = fs.readFileSync( + path.join(__dirname, 'templates', 'postcss.config.js.template'), + 'utf-8' ) + + return outputFileSync(postCSSConfigPath, postCSSConfig) } }, }, { title: 'Initializing Tailwind CSS...', task: async () => { - const webConfigPath = getPaths().web.config const tailwindConfigPath = path.join( - webConfigPath, + rwPaths.web.config, 'tailwind.config.js' ) @@ -132,29 +125,21 @@ export const handler = async ({ force, install }) => { } } - await execa('yarn', [ - 'tailwindcss', - 'init', - tailwindConfigPath, - '--jit', - ]) + await execa('yarn', ['tailwindcss', 'init', tailwindConfigPath]) - // add purge and lint + // Replace `content`. const tailwindConfig = fs.readFileSync(tailwindConfigPath, 'utf-8') const newTailwindConfig = tailwindConfig.replace( - 'purge: []', - "purge: ['src/**/*.{js,jsx,ts,tsx}']" + 'content: []', + "content: ['src/**/*.{js,jsx,ts,tsx}']" ) - fs.writeFileSync(tailwindConfigPath, newTailwindConfig) - - await execa('yarn', ['eslint', '--fix', tailwindConfigPath]) }, }, { title: 'Adding import to index.css...', task: (_ctx, task) => { - const INDEX_CSS_PATH = path.join(getPaths().web.src, 'index.css') + const INDEX_CSS_PATH = path.join(rwPaths.web.src, 'index.css') const indexCSS = fs.readFileSync(INDEX_CSS_PATH, 'utf-8') if (tailwindImportsExist(indexCSS)) { @@ -165,17 +150,6 @@ export const handler = async ({ force, install }) => { } }, }, - { - title: 'One more thing...', - task: (_ctx, task) => { - task.title = `One more thing...\n - ${c.green('Tailwind configured with "Just-in-Time" mode')}\n - ${chalk.hex('#e8e8e8')( - 'See this doc for info: https://tailwindcss.com/docs/just-in-time-mode' - )} - ` - }, - }, ]) try { diff --git a/packages/cli/src/commands/setup/ui/tasks/configure-storybook.js b/packages/cli/src/commands/setup/ui/tasks/configure-storybook.js new file mode 100644 index 000000000000..9044d6dcbe05 --- /dev/null +++ b/packages/cli/src/commands/setup/ui/tasks/configure-storybook.js @@ -0,0 +1,40 @@ +import path from 'path' + +import fs from 'fs-extra' + +import { getPaths } from '../../../../lib' + +/** + * @param options {{ force?: boolean }} + * @returns {"todo" | "done"} + */ +export function checkStorybookStatus({ force }) { + const { storybookPreviewConfig } = getPaths().web // 'web/config/storybook.config.js' + + if (fs.existsSync(storybookPreviewConfig)) { + if (force) { + fs.unlinkSync(storybookPreviewConfig) + } else { + console.log( + `Storybook preview config already exists at ${storybookPreviewConfig}\nUse --force to override existing config.` + ) + return 'done' + } + } + + return 'todo' +} + +/** + * Configure Storybook for Chakra UI by creating a custom preview config + */ +export function configureStorybook() { + const { storybookPreviewConfig } = getPaths().web + + const storybookPreview = fs.readFileSync( + path.join(__dirname, '..', 'templates', 'storybook.preview.js.template'), + 'utf-8' + ) + + fs.outputFileSync(storybookPreviewConfig, storybookPreview) +} diff --git a/packages/cli/src/commands/setup/ui/tasks/setup-chakra.js b/packages/cli/src/commands/setup/ui/tasks/setup-chakra.js new file mode 100644 index 000000000000..7b233fb73bd1 --- /dev/null +++ b/packages/cli/src/commands/setup/ui/tasks/setup-chakra.js @@ -0,0 +1,107 @@ +import fs from 'fs' + +import { getPaths } from '../../../../lib' + +/** + * Transform an object to JSX props syntax + * + * @param obj {Record} + * @param options {{exclude?: string[], raw?: boolean | string[]}} + * @returns {string[]} + */ +function objectToComponentProps(obj, options = { exclude: [], raw: false }) { + let props = [] + + for (const [key, value] of Object.entries(obj)) { + if (!options.exclude.includes(key)) { + if ( + options.raw === true || + (Array.isArray(options.raw) && options.raw.includes(key)) + ) { + props.push(`${key}={${value}}`) + } else { + props.push(`${key}="${value}"`) + } + } + } + + return props +} + +/** + * Wrap the redwood root component with a component + * + * @param content {string} the content of App.{js,tsx} + * @param options {{ + * component: string, + * props?: Record, + * before?: string, + * after?: string + * }} + * @returns {string} the content of App.{js,tsx} with added + */ +function wrapRootComponent(content, { component, props, before, after }) { + const [, indent, redwoodApolloProvider] = content.match( + /(\s+)(.*<\/RedwoodApolloProvider>)/s + ) + + const redwoodApolloProviderLines = redwoodApolloProvider + .split('\n') + .map((line) => ' ' + line) + + const propsAsArray = objectToComponentProps(props, { + raw: true, + }) + + const renderContent = + indent + + (before ? before + indent : '') + + `<${component}${props.length ? ' ' : ''}${propsAsArray.join(' ')}>` + + indent + + redwoodApolloProviderLines.join('\n') + + indent + + (after ? after + indent : '') + + `` + + return content.replace( + /\s+.*<\/RedwoodApolloProvider>/s, + renderContent + ) +} + +/** + * @param content {string} + * @param imports {string[]} + */ +function addImports(content = '', imports) { + return imports.join('\n') + '\n' + content +} + +/** + * @returns {"todo" | "done"} + */ +export function checkSetupStatus() { + const webAppPath = getPaths().web.app + const content = fs.readFileSync(webAppPath).toString() + return content.includes('ChakraProvider') ? 'done' : 'todo' +} + +/** + * @param [props] {ChakraProviderProps} + */ +export function wrapWithChakraProvider(props = {}) { + const webAppPath = getPaths().web.app + let content = fs.readFileSync(webAppPath).toString() + const imports = [ + "import { ChakraProvider, ColorModeScript } from '@chakra-ui/react'", + ] + + content = addImports(content, imports) + content = wrapRootComponent(content, { + component: 'ChakraProvider', + props, + before: '', + }) + + fs.writeFileSync(webAppPath, content) +} diff --git a/packages/cli/src/commands/setup/tailwind/templates/postcss.config.js.template b/packages/cli/src/commands/setup/ui/templates/postcss.config.js.template similarity index 100% rename from packages/cli/src/commands/setup/tailwind/templates/postcss.config.js.template rename to packages/cli/src/commands/setup/ui/templates/postcss.config.js.template diff --git a/packages/cli/src/commands/setup/ui/templates/storybook.preview.js.template b/packages/cli/src/commands/setup/ui/templates/storybook.preview.js.template new file mode 100644 index 000000000000..6de1d57f8edd --- /dev/null +++ b/packages/cli/src/commands/setup/ui/templates/storybook.preview.js.template @@ -0,0 +1,13 @@ +import * as React from 'react' + +import { ChakraProvider } from '@chakra-ui/react' + +const withChakra = (StoryFn) => { + return ( + + + + ) +} + +export const decorators = [withChakra] diff --git a/packages/cli/src/commands/setup/webpack/webpack.js b/packages/cli/src/commands/setup/webpack/webpack.js index 2430b9439481..988295fdcb63 100644 --- a/packages/cli/src/commands/setup/webpack/webpack.js +++ b/packages/cli/src/commands/setup/webpack/webpack.js @@ -9,7 +9,7 @@ import c from '../../../lib/colors' export const command = 'webpack' export const description = - 'Setup webpack in your project so you can add custom config' + 'Set up webpack in your project so you can add custom config' export const builder = (yargs) => { yargs.option('force', { alias: 'f', diff --git a/packages/cli/src/commands/storybook.js b/packages/cli/src/commands/storybook.js index 8f4021f89756..3cab1ba3024e 100644 --- a/packages/cli/src/commands/storybook.js +++ b/packages/cli/src/commands/storybook.js @@ -37,9 +37,22 @@ export const builder = (yargs) => { type: 'boolean', default: false, }) + .option('manager-cache', { + describe: + "Cache the manager UI. Disable this when you're making changes to `storybook.manager.js`.", + type: 'boolean', + default: true, + }) } -export const handler = ({ open, port, build, buildDirectory, ci }) => { +export const handler = ({ + open, + port, + build, + buildDirectory, + ci, + managerCache, +}) => { const cwd = getPaths().web.base const staticAssetsFolder = path.join(getPaths().web.base, 'public') @@ -62,6 +75,7 @@ export const handler = ({ open, port, build, buildDirectory, ci }) => { !build && `--port ${port}`, !build && '--no-version-updates', !build && `--static-dir "${staticAssetsFolder}"`, + !managerCache && '--no-manager-cache', build && `--output-dir "${path.join(getPaths().web.base, buildDirectory)}"`, !open && '--ci', diff --git a/packages/cli/src/commands/test.js b/packages/cli/src/commands/test.js index 7427940d0777..8f11fbc7e068 100644 --- a/packages/cli/src/commands/test.js +++ b/packages/cli/src/commands/test.js @@ -103,7 +103,7 @@ export const handler = async ({ collectCoverage ? '--collectCoverage' : null, '--passWithNoTests', ...jestFilterArgs, - '--runInBand', + '--runInBand', // @TODO always run in band, even for web as we get babel errors https://github.com/redwoodjs/redwood/issues/3646 ].filter((flagOrValue) => flagOrValue !== null) // Filter out nulls, not booleans because user may have passed a --something false flag // If the user wants to watch, set the proper watch flag based on what kind of repo this is diff --git a/packages/cli/src/lib/__tests__/schemaHelpers.test.js b/packages/cli/src/lib/__tests__/schemaHelpers.test.js index 17079f68b483..c7d6557e66a2 100644 --- a/packages/cli/src/lib/__tests__/schemaHelpers.test.js +++ b/packages/cli/src/lib/__tests__/schemaHelpers.test.js @@ -9,6 +9,7 @@ jest.mock('@redwoodjs/internal', () => { base: BASE_PATH, api: { db: BASE_PATH, // this folder + dbSchema: path.join(BASE_PATH, 'schema.prisma'), }, } }, diff --git a/packages/cli/src/lib/schemaHelpers.js b/packages/cli/src/lib/schemaHelpers.js index eeb54a1a4b56..343e17b36290 100644 --- a/packages/cli/src/lib/schemaHelpers.js +++ b/packages/cli/src/lib/schemaHelpers.js @@ -1,6 +1,6 @@ -import path from 'path' +import fs from 'fs' -import { getDMMF } from '@prisma/sdk' +import { getConfig, getDMMF } from '@prisma/sdk' import { ensureUniquePlural } from './pluralHelpers' import { singularize, isPlural } from './rwPluralize' @@ -113,9 +113,16 @@ export const getEnum = async (name) => { * Returns the DMMF defined by `prisma` resolving the relevant `schema.prisma` path. */ export const getSchemaDefinitions = () => { - const datamodelPath = path.join(getPaths().api.db, 'schema.prisma') + return getDMMF({ datamodelPath: getPaths().api.dbSchema }) +} - return getDMMF({ datamodelPath }) +/* + * Returns the config info defined in `schema.prisma` (provider, datasource, etc.) + */ +export const getSchemaConfig = () => { + return getConfig({ + datamodel: fs.readFileSync(getPaths().api.dbSchema).toString(), + }) } export async function verifyModelName(options) { diff --git a/packages/cli/src/lib/test.js b/packages/cli/src/lib/test.js index fb46f1d3a0d3..06a6e2426a5a 100644 --- a/packages/cli/src/lib/test.js +++ b/packages/cli/src/lib/test.js @@ -23,6 +23,7 @@ jest.mock('@redwoodjs/internal', () => { api: { dataMigrations: path.join(BASE_PATH, './api/prisma/dataMigrations'), db: path.join(global.__dirname, 'fixtures'), // this folder + dbSchema: path.join(global.__dirname, 'fixtures', 'schema.prisma'), // this folder generators: path.join(BASE_PATH, './api/generators'), src: path.join(BASE_PATH, './api/src'), services: path.join(BASE_PATH, './api/src/services'), diff --git a/packages/cli/src/middleware/checkForBabelConfig.js b/packages/cli/src/middleware/checkForBabelConfig.js new file mode 100644 index 000000000000..a17f8a13f249 --- /dev/null +++ b/packages/cli/src/middleware/checkForBabelConfig.js @@ -0,0 +1,43 @@ +import boxen from 'boxen' +import fg from 'fast-glob' + +import { getPaths } from '@redwoodjs/internal' + +import c from '../lib/colors' + +const isUsingBabelRc = () => { + return ( + fg.sync('**/*/.babelrc(.*)?', { + cwd: getPaths().base, + ignore: 'node_modules', + }).length > 0 + ) +} +const BABEL_SETTINGS_LINK = c.warning('https://redwoodjs.com/docs/builds') + +const checkForBabelConfig = () => { + if (isUsingBabelRc()) { + const messages = [ + "Looks like you're trying to configure one of your sides with a .babelrc file.", + 'These settings will be ignored, unless you use a babel.config.js file', + '', + 'Your plugins and settings will be automatically merged with', + `the Redwood built-in config, more details here: ${BABEL_SETTINGS_LINK}`, + ] + + const errTitle = 'Incorrect project configuration' + + console.log( + boxen(messages.join('\n'), { + title: errTitle, + padding: { top: 0, bottom: 0, right: 1, left: 1 }, + margin: 1, + borderColor: 'red', + }) + ) + + throw new Error(errTitle) + } +} + +export default checkForBabelConfig diff --git a/packages/cli/src/redwood-tools.js b/packages/cli/src/redwood-tools.js deleted file mode 100644 index f318b7a8464b..000000000000 --- a/packages/cli/src/redwood-tools.js +++ /dev/null @@ -1,432 +0,0 @@ -#!/usr/bin/env node -import fs from 'fs' -import path from 'path' - -import boxen from 'boxen' -import chokidar from 'chokidar' -import execa from 'execa' -import _, { omit } from 'lodash' -import prettier from 'prettier' -import rimraf from 'rimraf' -import yargs from 'yargs' - -import { ensurePosixPath, getPaths } from '@redwoodjs/internal' - -import c from './lib/colors' - -const RW_BINS = { - redwood: 'cli/dist/index.js', - rw: 'cli/dist/index.js', - 'redwood-tools': 'cli/dist/redwood-tools.js', - rwt: 'cli/dist/redwood-tools.js', - 'api-server': 'api-server/dist/index.js', - 'rw-api-server': 'api-server/dist/index.js', - 'rw-api-build': 'core/esbuild/index.js', - 'rw-gen': 'internal/dist/generate/generate.js', - 'rw-gen-watch': 'internal/dist/generate/watch.js', -} - -export const resolveFrameworkPath = (RW_PATH) => { - if (!fs.existsSync(RW_PATH)) { - console.error(`Error: '${RW_PATH}' does not exist`) - process.exit(1) - } - return path.resolve(process.cwd(), RW_PATH) -} - -export const fixBinaryPermissions = (PROJECT_PATH) => { - Object.keys(RW_BINS) - .map((name) => { - return path.join(PROJECT_PATH, 'node_modules/.bin/', name) - }) - .forEach((binFile) => { - try { - fs.chmodSync(binFile, '755') - } catch (e) { - console.warn(`Warning: Could not chmod ${binFile}`) - console.log(e) - } - }) -} - -export const fixProjectBinaries = (PROJECT_PATH) => { - Object.keys(RW_BINS) - .map((name) => { - const from = path.join(PROJECT_PATH, 'node_modules/.bin/', name) - const to = path.join( - PROJECT_PATH, - 'node_modules/@redwoodjs', - RW_BINS[name] - ) - console.log(`symlink '${from}' -> '${to}'`) - return [from, to] - }) - .forEach(([from, to]) => { - try { - fs.unlinkSync(from) - } catch (e) { - console.warn(`Warning: Could not unlink ${from}`) - } - try { - fs.symlinkSync(to, from) - } catch (e) { - console.warn(`Warning: Could not symlink ${from} -> ${to}`) - console.log(e) - } - try { - fs.chmodSync(from, '755') - } catch (e) { - console.warn(`Warning: Could not chmod ${from}`) - console.log(e) - } - }) -} - -export const copyFiles = async (src, dest) => { - // TODO: Figure out if we need to only run based on certain events. - - src = ensurePosixPath(src) - dest = ensurePosixPath(dest) - - await execa( - 'rsync', - [ - `-rtvu --delete --exclude "create-redwood-app/template"`, - `'${src}'`, - `'${dest}'`, - ], - { - shell: true, - stdio: 'inherit', - cleanup: true, - } - ) - // when rsync is run modify the permission to make binaries executable. - fixProjectBinaries(getPaths().base) -} - -const rwtCopy = ({ RW_PATH = process.env.RW_PATH }) => { - RW_PATH = resolveFrameworkPath(RW_PATH) - - console.log(`Redwood Framework Path: ${c.info(RW_PATH)}`) - - const src = `${RW_PATH}/packages/` - const dest = `${getPaths().base}/node_modules/@redwoodjs/` // eslint-disable-line - - copyFiles(src, dest) -} - -const rwtCopyWatch = ({ RW_PATH = process.env.RW_PATH }) => { - RW_PATH = resolveFrameworkPath(RW_PATH) - - console.log(`Redwood Framework Path: ${c.info(RW_PATH)}`) - - const src = `${RW_PATH}/packages/` - const dest = `${getPaths().base}/node_modules/@redwoodjs/` - - chokidar - .watch(src, { - persistent: true, - recursive: true, - ignored: [path.join(src, 'packages/create-redwood-app/template')], - }) - .on( - 'all', - _.debounce((event) => { - // TODO: Figure out if we need to only run based on certain events. - console.log('Trigger event: ', event) - copyFiles(src, dest) - }, 500) - ) -} - -const rwtLink = async (yargs) => { - const RW_PATH = yargs.RW_PATH || process.env.RW_PATH - const { clean, watch, only } = yargs - - if (!RW_PATH) { - console.error(c.error('You must specify a path to your local redwood repo')) - console.error(c.error("Or set RW_PATH in your shell's environment")) - process.exit(1) - return - } - - const frameworkPath = resolveFrameworkPath(RW_PATH) - - console.log(`\n Redwood Framework Path: ${c.info(frameworkPath)}`) - - const frameworkPackagesPath = path.join(frameworkPath, 'packages/') - const projectPackagesPath = path.join( - getPaths().base, - 'node_modules/_redwood-linked-packages' - ) - - console.log( - `Copying your local Redwood build from ${c.info(frameworkPackagesPath)} \n` - ) - - if (!fs.existsSync(projectPackagesPath)) { - fs.mkdirSync(projectPackagesPath) - } - - updateProjectWithResolutions(frameworkPackagesPath) - - if (clean) { - await execa('yarn build:clean', { - shell: true, - stdio: 'inherit', - cleanup: true, - cwd: frameworkPath, - }) - } - - // Inform user to unlink framework repo, when process cancelled - process.on('SIGINT', () => { - const message = ` - 🙏 Thanks for contributing..\n - Please run ${c.green('yarn rwt unlink')} to restore your project - ` - console.log( - boxen(message, { - padding: { top: 0, bottom: 0, right: 1, left: 1 }, - margin: 1, - borderColour: 'gray', - }) - ) - }) - - const onlyParams = only ? ['--only', only] : [] - - await execa( - 'node ./tasks/build-and-copy', - ['--dest', `"${projectPackagesPath}"`, ...onlyParams], - { - shell: true, - stdio: 'inherit', - cleanup: true, - cwd: frameworkPath, - } - ) - - // Delete existing redwood folders in node_modules - // Do this right before install, incase build:link fails - rimraf.sync(path.join(getPaths().base, 'node_modules/@redwoodjs/')) - - // Let workspaces do the link - await execa('yarn install', ['--pure-lockfile', '--check-files'], { - shell: true, - stdio: 'inherit', - cleanup: true, - cwd: getPaths().base, - }) - - fixBinaryPermissions(getPaths().base) - - const message = ` - ${c.bold('🚀 Go Forth and Contribute!')}\n - 🔗 Your project is linked!\n - Contributing doc: ${c.underline('https://redwoodjs.com/docs/contributing')} - ` - console.log( - boxen(message, { - padding: { top: 0, bottom: 0, right: 1, left: 1 }, - margin: 1, - borderColour: 'gray', - }) - ) - - if (watch) { - // Restart build:link scripts in watchmode - execa( - 'yarn build:link', - ['--dest', `"${projectPackagesPath}"`, '--watch', ...onlyParams], - { - shell: true, - stdio: 'inherit', - cleanup: true, - cwd: frameworkPath, - } - ) - } -} - -// This should be synchronous -const rwtUnlink = () => { - const linkedPackagesPath = path.join( - getPaths().base, - 'node_modules/_redwood-linked-packages' - ) - if (fs.existsSync(linkedPackagesPath)) { - // remove resolutions we added in link - updateProjectWithResolutions(linkedPackagesPath, true) - - rimraf.sync(path.join(getPaths().base, 'node_modules/@redwoodjs')) - - rimraf.sync(linkedPackagesPath) - } - - execa.sync('yarn install', ['--check-files'], { - shell: true, - stdio: 'inherit', - cleanup: true, - cwd: getPaths().base, - }) - - return process.exit(0) -} - -const rwtInstall = ({ packageName }) => { - // This command upgrades a Redwood package from the local NPM registry. You - // run the local registry from `./tasks/run-local-npm`. - // See `CONTRIBUTING.md` for more information. - const pkgPath = path.join(getPaths().base, 'node_modules', packageName) - console.log(`Deleting ${pkgPath}`) - try { - fs.rmdirSync(pkgPath, { recursive: true }) - } catch (e) { - console.error(`Error: Could not delete ${pkgPath}`) - process.exit(1) - } - - execa( - 'yarn', - [ - 'upgrade', - `${packageName}@dev`, - '--no-lockfile', - '--registry http://localhost:4873/', - '--check-files', - ], - { - shell: true, - cwd: getPaths().base, - stdio: 'inherit', - extendEnv: true, - cleanup: true, - } - ) -} - -const getRwPackagesToLink = (packagesPath) => { - const packageFolders = fs.readdirSync(packagesPath) - - return packageFolders - .filter((folderName) => folderName !== 'create-redwood-app') - .filter((item) => !/(^|\/)\.[^\/\.]/g.test(item)) // filter hidden files - .map((packageFolder) => { - return `@redwoodjs/${packageFolder}` - }) -} - -const updateProjectWithResolutions = (redwoodPackagesPath, remove) => { - const pkgJSONPath = path.join(getPaths().base, 'package.json') - const packageJSON = require(pkgJSONPath) - - const frameworkVersion = require(path.join( - redwoodPackagesPath, - 'cli/package.json' - )).version - - const frameworkRepoResolutions = getRwPackagesToLink( - redwoodPackagesPath - ).reduce((resolutions, packageName) => { - resolutions[packageName] = frameworkVersion - return resolutions - }, {}) - - let resolutions = packageJSON.resolutions - let packages = packageJSON.workspaces.packages - - if (remove) { - resolutions = omit(resolutions, Object.keys(frameworkRepoResolutions)) - packages = packages.filter( - (workspaceFolder) => - workspaceFolder !== 'node_modules/_redwood-linked-packages/*' - ) - } else { - resolutions = { - ...resolutions, - ...frameworkRepoResolutions, - } - if (!packages.includes('node_modules/_redwood-linked-packages/*')) { - packages.push('node_modules/_redwood-linked-packages/*') - } - } - - const updatedPackageJSON = { - ...packageJSON, - workspaces: { - packages, - }, - resolutions, - } - - fs.writeFileSync( - pkgJSONPath, - prettier.format(JSON.stringify(updatedPackageJSON), { - parser: 'json-stringify', - }) - ) -} - -// eslint-disable-next-line no-unused-expressions -yargs - .command( - ['copy [RW_PATH]', 'cp'], - 'Copy the Redwood Framework path to this project', - {}, - rwtCopy - ) - .command( - ['copy:watch [RW_PATH]', 'cpw'], - 'Watch the Redwood Framework path for changes and copy them over to this project', - {}, - rwtCopyWatch - ) - .command({ - command: 'link [RW_PATH]', - aliases: ['l'], - builder: (yargs) => { - return yargs - .option('clean', { - alias: 'c', - type: 'boolean', - description: 'Clean the redwood dist folders first.', - default: true, - }) - .option('watch', { - alias: 'w', - type: 'boolean', - description: 'Build and watch the supplied redwood repo', - default: true, - }) - .option('only', { - alias: 'only', - type: 'string', - description: 'Specify folder to link from RW_PATH/packages', - }) - }, - desc: 'Run your local version of redwood in this project', - handler: rwtLink, - }) - .command({ - command: 'unlink', - desc: 'Unlink your local version of redwood, and use the one specified in package.json', - handler: rwtUnlink, - }) - .command( - ['install [packageName]', 'i'], - 'Install a package from your local NPM registry', - () => {}, - rwtInstall - ) - .command( - ['fix-bins', 'fix'], - 'Fix Redwood symlinks and permissions', - {}, - () => { - fixProjectBinaries(getPaths().base) - } - ) - .demandCommand() - .strict().argv diff --git a/packages/codemods/README.md b/packages/codemods/README.md index 83ffd44381fc..7558999b097a 100644 --- a/packages/codemods/README.md +++ b/packages/codemods/README.md @@ -166,7 +166,7 @@ But sometimes you'll just have to use one of the more generic methods: `replaceW Although JSCodeshift has a built-in way of doing testing, we have a slightly different way of testing. -There's two key test utils you need to be aware of (located in [packages/codemods/testUtils/index.ts](https://github.com/redwoodjs/redwood/blob/main/packages/codemods/testUtils/index.ts)). +There's 3 key test utils you need to be aware of (located in [packages/codemods/testUtils/index.ts](https://github.com/redwoodjs/redwood/blob/main/packages/codemods/testUtils/index.ts)). 1. `matchTransformSnapshot`—this lets you give it a transformName (i.e. the transform you're writing), and a fixtureName. The fixtures should be located in `__testfixtures__`, and have a `{fixtureName}.input.{js,ts}` and a `{fixtureName}.output.{js,ts}. @@ -174,8 +174,8 @@ Note that the fixtureName can be anything you want, and you can have multiple fi ```js describe('Update API Imports', () => { - it('Updates @redwoodjs/api imports', () => { - matchTransformSnapshot('updateApiImports', 'apiImports') + it('Updates @redwoodjs/api imports', async () => { + await matchTransformSnapshot('updateApiImports', 'apiImports') }) }) ``` @@ -183,8 +183,8 @@ describe('Update API Imports', () => { 2. `matchInlineTransformSnapshot`—very similar to above, but use this in case you want to just provide your fixtures inline ```js - it('Modifies imports (inline)', () => { - matchInlineTransformSnapshot( + it('Modifies imports (inline)', async () => { + await matchInlineTransformSnapshot( 'updateGraphQLFunction', // <--- transform name, so we know which transform to apply `import { createGraphQLHandler, // <-- input source @@ -195,6 +195,24 @@ describe('Update API Imports', () => { }) ``` +3. `matchFolderTransform` - use this, when you're modifying contents of multiple files, and adding/deleting files from the user's project during the codemod. + +```js + test('Removes babel config for default setup', async () => { + import transform from '../updateBabelConfig' + + // pass in your transform here 👇 + await matchFolderTransform(transform, 'my-default-fixture') + // and tell it which folder to use as fixture here ☝️ + }) +``` + +In the above example, it will run the transform from `updateBabelConfig` against a fixture located in the `__testfixtures__/my-default-fixture/input` folder and compare with the `__testfixtures__/my-default-fixture/output` folder. + +The `matchFolderTransform` helper will check +a) If the files in the output fixture folder are present after transform +b) If their contents match + ## How to run your changes on a test redwood project 1. Clean all your other packages, and rebuild once: @@ -223,7 +241,7 @@ RWJS_CWD=/path/to/rw-project node "./packages/codemods/dist/codemods.js" {your-c > **💡 Tip** > -> If you're making changes, and want to watch your source and build on changes, you can use the [watch cli](https://www.npmjs.com/package/watch) +> If you're making changes, and want to watch your source and build on changes, you can use the [watch cli](https://www.npmjs.com/package/watch-cli) > ```shell > # Assuming in packages/codemods/ > watch -p "./src/**/*" -c "yarn build" diff --git a/packages/codemods/jest.setup.js b/packages/codemods/jest.setup.js index 2276d9727a33..eb01adf2395e 100644 --- a/packages/codemods/jest.setup.js +++ b/packages/codemods/jest.setup.js @@ -1,4 +1,38 @@ +const fs = require('fs') +const path = require('path') + global.matchTransformSnapshot = - require('./testUtils/index').matchTransformSnapshot + require('./src/testUtils/matchTransformSnapshot').matchTransformSnapshot global.matchInlineTransformSnapshot = - require('./testUtils/index').matchInlineTransformSnapshot + require('./src/testUtils/matchInlineTransformSnapshot').matchInlineTransformSnapshot +global.matchFolderTransform = + require('./src/testUtils/matchFolderTransform').matchFolderTransform + +// Custom matcher for checking fixtures using paths +// e.g. expect(transformedPath).toMatchFileContents(expectedPath) +// Mainly so we throw more helpful errors +expect.extend({ + toMatchFileContents(receivedPath, expectedPath) { + let pass = true + let message = '' + try { + const actualOutput = fs.readFileSync(receivedPath, 'utf-8') + const expectedOutput = fs.readFileSync(expectedPath, 'utf-8') + + expect(actualOutput).toEqual(expectedOutput) + } catch (e) { + const relativePath = path.relative( + path.join(__dirname, 'src/codemods'), + expectedPath + ) + pass = false + message = `${e}\nFile contents do not match for fixture at: \n ${relativePath}` + } + return { + pass, + message: () => message, + expected: expectedPath, + received: receivedPath, + } + }, +}) diff --git a/packages/codemods/package.json b/packages/codemods/package.json index 1a9c78cfde36..41106b9c6459 100644 --- a/packages/codemods/package.json +++ b/packages/codemods/package.json @@ -1,21 +1,21 @@ { "name": "@redwoodjs/codemods", "description": "Codemods to ease upgrading a RedwoodJS Project", - "version": "0.38.1", + "version": "0.39.2", "license": "MIT", "bin": "./dist/codemods.js", "files": [ "dist" ], "dependencies": { - "@babel/cli": "7.15.7", - "@babel/core": "7.15.8", - "@babel/plugin-transform-typescript": "7.15.8", - "core-js": "3.18.3", + "@babel/cli": "7.16.0", + "@babel/core": "7.16.0", + "@babel/plugin-transform-typescript": "7.16.1", + "@babel/runtime-corejs3": "7.16.3", + "core-js": "3.19.1", "deepmerge": "4.2.2", - "execa": "5.1.1", "fast-glob": "3.2.7", - "findup-sync": "4.0.0", + "findup-sync": "5.0.0", "jest": "27.3.1", "jscodeshift": "0.13.0", "node-fetch": "2.6.1", @@ -39,9 +39,11 @@ "test:watch": "yarn test --watch" }, "devDependencies": { - "@types/babel__core": "7", + "@types/babel__core": "7.1.16", + "@types/fs-extra": "9.0.13", "@types/jscodeshift": "0.11.2", - "@types/prettier": "2", + "@types/prettier": "2.4.2", + "fs-extra": "10.0.0", "tempy": "1.0.1" } } diff --git a/packages/codemods/src/codemods/v0.37.x/updateApiImports/__tests__/updateApiImports.test.ts b/packages/codemods/src/codemods/v0.37.x/updateApiImports/__tests__/updateApiImports.test.ts index 38ef7ea777a4..6849d89ee958 100644 --- a/packages/codemods/src/codemods/v0.37.x/updateApiImports/__tests__/updateApiImports.test.ts +++ b/packages/codemods/src/codemods/v0.37.x/updateApiImports/__tests__/updateApiImports.test.ts @@ -1,5 +1,5 @@ describe('Update API Imports', () => { - it('Updates @redwoodjs/api imports', () => { - matchTransformSnapshot('updateApiImports', 'apiImports') + it('Updates @redwoodjs/api imports', async () => { + await matchTransformSnapshot('updateApiImports', 'apiImports') }) }) diff --git a/packages/codemods/src/codemods/v0.37.x/updateApiImports/updateApiImports.yargs.ts b/packages/codemods/src/codemods/v0.37.x/updateApiImports/updateApiImports.yargs.ts index 85dbaf3aea42..c006a7dfb462 100644 --- a/packages/codemods/src/codemods/v0.37.x/updateApiImports/updateApiImports.yargs.ts +++ b/packages/codemods/src/codemods/v0.37.x/updateApiImports/updateApiImports.yargs.ts @@ -24,7 +24,7 @@ export const handler = () => { if (files.length === 0) { setWarning('No files found') } else { - runTransform({ + await runTransform({ transformPath: path.join(__dirname, 'updateApiImports.js'), targetPaths: files, }) diff --git a/packages/codemods/src/codemods/v0.37.x/updateForms/__tests__/updateForms.test.ts b/packages/codemods/src/codemods/v0.37.x/updateForms/__tests__/updateForms.test.ts index a0b08c93c388..af432f9683e6 100644 --- a/packages/codemods/src/codemods/v0.37.x/updateForms/__tests__/updateForms.test.ts +++ b/packages/codemods/src/codemods/v0.37.x/updateForms/__tests__/updateForms.test.ts @@ -1,9 +1,9 @@ describe('Update Forms', () => { - test('Transforms javascript', () => { - matchTransformSnapshot('updateForms', 'javascript') + test('Transforms javascript', async () => { + await matchTransformSnapshot('updateForms', 'javascript') }) - test('Transforms typescript', () => { - matchTransformSnapshot('updateForms', 'typescript') + test('Transforms typescript', async () => { + await matchTransformSnapshot('updateForms', 'typescript') }) }) diff --git a/packages/codemods/src/codemods/v0.37.x/updateForms/updateForms.yargs.ts b/packages/codemods/src/codemods/v0.37.x/updateForms/updateForms.yargs.ts index a757361b7ed8..61a0e69dd045 100644 --- a/packages/codemods/src/codemods/v0.37.x/updateForms/updateForms.yargs.ts +++ b/packages/codemods/src/codemods/v0.37.x/updateForms/updateForms.yargs.ts @@ -21,7 +21,7 @@ export const handler = () => { if (files.length === 0) { setWarning('No files found') } else { - runTransform({ + await runTransform({ transformPath: path.join(__dirname, 'updateForms.js'), targetPaths: files, }) diff --git a/packages/codemods/src/codemods/v0.37.x/updateGraphQLFunction/__tests__/updateGraphQLFunction.test.ts b/packages/codemods/src/codemods/v0.37.x/updateGraphQLFunction/__tests__/updateGraphQLFunction.test.ts index 25e0eb8f738e..d56630768cca 100644 --- a/packages/codemods/src/codemods/v0.37.x/updateGraphQLFunction/__tests__/updateGraphQLFunction.test.ts +++ b/packages/codemods/src/codemods/v0.37.x/updateGraphQLFunction/__tests__/updateGraphQLFunction.test.ts @@ -2,12 +2,12 @@ * ts and js are equivalent in this case */ describe('Update GraphQL Function', () => { - it('Modifies imports and createGraphQLHandler', () => { - matchTransformSnapshot('updateGraphQLFunction', 'graphql') + it('Modifies imports and createGraphQLHandler', async () => { + await matchTransformSnapshot('updateGraphQLFunction', 'graphql') }) - it('Modifies imports (inline)', () => { - matchInlineTransformSnapshot( + it('Modifies imports (inline)', async () => { + await matchInlineTransformSnapshot( 'updateGraphQLFunction', `import { createGraphQLHandler, diff --git a/packages/codemods/src/codemods/v0.37.x/updateGraphQLFunction/updateGraphQLFunction.yargs.ts b/packages/codemods/src/codemods/v0.37.x/updateGraphQLFunction/updateGraphQLFunction.yargs.ts index 6288e356d15a..378616495404 100644 --- a/packages/codemods/src/codemods/v0.37.x/updateGraphQLFunction/updateGraphQLFunction.yargs.ts +++ b/packages/codemods/src/codemods/v0.37.x/updateGraphQLFunction/updateGraphQLFunction.yargs.ts @@ -11,7 +11,7 @@ export const description = export const handler = () => { task('Updating the GraphQL Function', async () => { - runTransform({ + await runTransform({ transformPath: path.join(__dirname, 'updateGraphQLFunction.js'), targetPaths: fg.sync('api/src/functions/graphql.{js,ts}'), }) diff --git a/packages/codemods/src/codemods/v0.37.x/updateScenarios/__tests__/updateScenarios.test.ts b/packages/codemods/src/codemods/v0.37.x/updateScenarios/__tests__/updateScenarios.test.ts index e769705a355e..d0065eadcc1f 100644 --- a/packages/codemods/src/codemods/v0.37.x/updateScenarios/__tests__/updateScenarios.test.ts +++ b/packages/codemods/src/codemods/v0.37.x/updateScenarios/__tests__/updateScenarios.test.ts @@ -1,9 +1,9 @@ describe('Update Scenarios', () => { - it('Modifies simple Scenarios', () => { - matchTransformSnapshot('updateScenarios', 'simple') + it('Modifies simple Scenarios', async () => { + await matchTransformSnapshot('updateScenarios', 'simple') }) - it('Modifies more complex Scenarios', () => { - matchTransformSnapshot('updateScenarios', 'realExample') + it('Modifies more complex Scenarios', async () => { + await matchTransformSnapshot('updateScenarios', 'realExample') }) }) diff --git a/packages/codemods/src/codemods/v0.37.x/updateScenarios/updateScenarios.yargs.ts b/packages/codemods/src/codemods/v0.37.x/updateScenarios/updateScenarios.yargs.ts index 079f735b6fba..e9e26f2b767d 100644 --- a/packages/codemods/src/codemods/v0.37.x/updateScenarios/updateScenarios.yargs.ts +++ b/packages/codemods/src/codemods/v0.37.x/updateScenarios/updateScenarios.yargs.ts @@ -3,6 +3,7 @@ import path from 'path' import fg from 'fast-glob' import task from 'tasuku' +import getRWPaths from '../../../lib/getRWPaths' import runTransform from '../../../lib/runTransform' export const command = 'update-scenarios' @@ -24,9 +25,12 @@ export const description = */ export const handler = () => { task('Updating Scenarios', async () => { - runTransform({ + await runTransform({ transformPath: path.join(__dirname, 'updateScenarios.js'), - targetPaths: fg.sync('api/src/services/**/*.scenarios.{js,ts}'), + targetPaths: fg.sync('api/src/services/**/*.scenarios.{js,ts}', { + cwd: getRWPaths().base, + absolute: true, + }), }) }) } diff --git a/packages/codemods/src/codemods/v0.38.x/updateNodeEngine/README.md b/packages/codemods/src/codemods/v0.38.x/updateNodeEngine/README.md index 570e579d228a..0c17696501d9 100644 --- a/packages/codemods/src/codemods/v0.38.x/updateNodeEngine/README.md +++ b/packages/codemods/src/codemods/v0.38.x/updateNodeEngine/README.md @@ -21,7 +21,7 @@ In v0.38 we started supporting node 16. That means in the root package json of a }, "engines": { - "node": "14.x", -+ "node": ">=14.x <=16.x", ++ "node": ">=14.17 <=16.x", "yarn": "1.x" }, "prisma": { diff --git a/packages/codemods/src/codemods/v0.38.x/updateNodeEngine/updateNodeEngine.ts b/packages/codemods/src/codemods/v0.38.x/updateNodeEngine/updateNodeEngine.ts index ab45c2b2854e..3dae0aaa14d1 100644 --- a/packages/codemods/src/codemods/v0.38.x/updateNodeEngine/updateNodeEngine.ts +++ b/packages/codemods/src/codemods/v0.38.x/updateNodeEngine/updateNodeEngine.ts @@ -5,7 +5,7 @@ import getRootPackageJSON from '../../../lib/getRootPackageJSON' export const updateNodeEngine = () => { const [rootPackageJSON, rootPackageJSONPath] = getRootPackageJSON() - rootPackageJSON.engines.node = '>=14.x <=16.x' + rootPackageJSON.engines.node = '>=14.17 <=16.x' fs.writeFileSync( rootPackageJSONPath, diff --git a/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/README.md b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/README.md new file mode 100644 index 000000000000..623b26821270 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/README.md @@ -0,0 +1,15 @@ +# Updates/Removes babel config + +This codemod does the following + +### Part 1: Check root of project for babel.config.js +If any custom config is present, error out. As we cannot determine which side the config should apply to. + +If no custom config is present, remove this file. + + +### Part 2: check web/.babelrc.js +If any custom config is present, rename this file to babel.config.js and remove the "extends" property. + +If no custom config is present, remove this file. + diff --git a/packages/create-redwood-app/template/babel.config.js b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/default/input/babel.config.js similarity index 100% rename from packages/create-redwood-app/template/babel.config.js rename to packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/default/input/babel.config.js diff --git a/packages/create-redwood-app/template/web/.babelrc.js b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/default/input/web/.babelrc.js similarity index 100% rename from packages/create-redwood-app/template/web/.babelrc.js rename to packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/default/input/web/.babelrc.js diff --git a/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/rootCustom/input/babel.config.js b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/rootCustom/input/babel.config.js new file mode 100644 index 000000000000..fa49c2de2d9e --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/rootCustom/input/babel.config.js @@ -0,0 +1,8 @@ +/** @type {import('@babel/core').TransformOptions} */ +module.exports = { + presets: ['@redwoodjs/core/config/babel-preset'], + plugins: [ + 'super-duper-babel-plugin', + 'I-really-should-be-in-the-web-config' + ] +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/rootCustom/input/web/.babelrc.js b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/rootCustom/input/web/.babelrc.js new file mode 100644 index 000000000000..e87d0c69f057 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/rootCustom/input/web/.babelrc.js @@ -0,0 +1,8 @@ +module.exports = { + extends: "../babel.config.js", + presets: [ + '@redwoodjs/core/config/babel-preset', + '@emotion/babel-preset-css-prop', + ], + plugins: ['babel-plugin-macros'], +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/webCustom/input/babel.config.js b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/webCustom/input/babel.config.js new file mode 100644 index 000000000000..faf653ff5441 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/webCustom/input/babel.config.js @@ -0,0 +1,4 @@ +/** @type {import('@babel/core').TransformOptions} */ +module.exports = { + presets: ['@redwoodjs/core/config/babel-preset'], +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/webCustom/input/web/.babelrc.js b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/webCustom/input/web/.babelrc.js new file mode 100644 index 000000000000..e87d0c69f057 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/webCustom/input/web/.babelrc.js @@ -0,0 +1,8 @@ +module.exports = { + extends: "../babel.config.js", + presets: [ + '@redwoodjs/core/config/babel-preset', + '@emotion/babel-preset-css-prop', + ], + plugins: ['babel-plugin-macros'], +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/webCustom/output/web/babel.config.js b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/webCustom/output/web/babel.config.js new file mode 100644 index 000000000000..45c9c74926de --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__testfixtures__/webCustom/output/web/babel.config.js @@ -0,0 +1,7 @@ +module.exports = { + presets: [ + '@redwoodjs/core/config/babel-preset', + '@emotion/babel-preset-css-prop', + ], + plugins: ['babel-plugin-macros'], +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__tests__/updateBabelConfig.test.ts b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__tests__/updateBabelConfig.test.ts new file mode 100644 index 000000000000..afd6c7bb2d57 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/__tests__/updateBabelConfig.test.ts @@ -0,0 +1,19 @@ +import transform from '../updateBabelConfig' +test('Removes babel config for default setup', async () => { + await matchFolderTransform(transform, 'default') +}) + +test('Should preserve custom web config', async () => { + // Expecting: + // a) .babelrc -> babel.config.js + // b) removes "extends" property from config + await matchFolderTransform(transform, 'webCustom') +}) + +test('Should throw if root babel.config.js has custom config', async () => { + expect(async () => + matchFolderTransform(transform, 'rootCustom') + ).rejects.toThrowError( + 'Cannot automatically codemod your project. Please move your root babel.config.js settings manually' + ) +}) diff --git a/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/updateBabelConfig.ts b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/updateBabelConfig.ts new file mode 100644 index 000000000000..1beb1948c7f7 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/updateBabelConfig.ts @@ -0,0 +1,59 @@ +import fs from 'fs' +import path from 'path' + +import getRWPaths from '../../../lib/getRWPaths' +import prettify from '../../../lib/prettify' + +export const removeBabelConfig = async () => { + const rootBabelConfigPath = path.join(getRWPaths().base, 'babel.config.js') + const webBabelRcPath = path.join(getRWPaths().web.base, '.babelrc.js') + + const webBabelConfigPath = path.join(getRWPaths().web.base, 'babel.config.js') + + // Remove root babel config + if (fs.existsSync(rootBabelConfigPath)) { + const rootConfig = require(rootBabelConfigPath) + // If the rootConfig is the default, we can remove it + if ( + Object.keys(rootConfig).length === 1 && + rootConfig.presets?.[0] === '@redwoodjs/core/config/babel-preset' + ) { + console.log('Removing root babel.config.js') + fs.rmSync(rootBabelConfigPath) + } else { + // They have custom config in the root babel.config + // Fail and ask them to move config manually + console.warn('Detected custom config in your root babel.config.js') + throw new Error( + 'Cannot automatically codemod your project. Please move your root babel.config.js settings manually' + ) + } + } + + if (fs.existsSync(webBabelRcPath)) { + const webConfig = require(webBabelRcPath) + + // If its the default .babelrc.js + if ( + Object.keys(webConfig).length === 1 && + webConfig.extends === '../babel.config.js' + ) { + console.log('Removing web .babelrc.js') + fs.rmSync(webBabelRcPath) + } else { + // Rename .babelrc to babel.config.js + fs.rmSync(webBabelRcPath) + + // And remove extends from the config + if (webConfig.extends) { + const { extends: _ignore, ...otherConfig } = webConfig + + const newConfig = `module.exports = ${JSON.stringify(otherConfig)}` + + fs.writeFileSync(webBabelConfigPath, prettify(newConfig)) + } + } + } +} + +export default removeBabelConfig diff --git a/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/updateBabelConfig.yargs.ts b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/updateBabelConfig.yargs.ts new file mode 100644 index 000000000000..0258f29f3ad9 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateBabelConfig/updateBabelConfig.yargs.ts @@ -0,0 +1,16 @@ +import task from 'tasuku' + +import { removeBabelConfig } from './updateBabelConfig' + +export const command = 'update-babel-config' +export const description = '(v0.38-v0.39) Removes babel config from the project' + +export const handler = () => { + task('Update babel config', async ({ setError }: task.TaskInnerApi) => { + try { + await removeBabelConfig() + } catch (e: any) { + setError(`Failed to codemod your project \n ${e?.message}`) + } + }) +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/README.md b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/README.md new file mode 100644 index 000000000000..99f1a328e125 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/README.md @@ -0,0 +1,16 @@ +# Update Cell mocks +- Finds all Cell mocks (used in tests and storybook), with the extension Cell.mock.{js,ts} +- Changes the standard export to be a function, if it isn't + +```diff +- export const standard = { +- todosCount: 42, +-} + ++ export const standard = () => { ++ return { ++ todosCount: 42 ++ } ++} + +``` diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/alreadyFunction.input.js b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/alreadyFunction.input.js new file mode 100644 index 000000000000..1a30f8e01d99 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/alreadyFunction.input.js @@ -0,0 +1,5 @@ +export const standard = () => { + return { + bazinga: true + } +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/alreadyFunction.output.js b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/alreadyFunction.output.js new file mode 100644 index 000000000000..1a30f8e01d99 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/alreadyFunction.output.js @@ -0,0 +1,5 @@ +export const standard = () => { + return { + bazinga: true + } +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMock.input.js b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMock.input.js new file mode 100644 index 000000000000..fd3a983b843f --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMock.input.js @@ -0,0 +1,3 @@ +export const standard = { + bazinga: true +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMock.output.js b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMock.output.js new file mode 100644 index 000000000000..1a30f8e01d99 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMock.output.js @@ -0,0 +1,5 @@ +export const standard = () => { + return { + bazinga: true + } +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMockWithType.input.ts b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMockWithType.input.ts new file mode 100644 index 000000000000..bf433054ee39 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMockWithType.input.ts @@ -0,0 +1,7 @@ +interface BazingaType { + bazinga: boolean +} + +export const standard: BazingaType = { + bazinga: true +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMockWithType.output.ts b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMockWithType.output.ts new file mode 100644 index 000000000000..eb33d84579b8 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__testfixtures__/objectCellMockWithType.output.ts @@ -0,0 +1,9 @@ +interface BazingaType { + bazinga: boolean +} + +export const standard = () => { + return { + bazinga: true, + } +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__tests__/updateCellMocks.test.ts b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__tests__/updateCellMocks.test.ts new file mode 100644 index 000000000000..2388d1933fa2 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/__tests__/updateCellMocks.test.ts @@ -0,0 +1,13 @@ +describe('Update cell mocks', () => { + test('Converts object mock to a function that returns the object', async () => { + await matchTransformSnapshot('updateCellMocks', 'objectCellMock') + }) + + test('Handles Types', async () => { + await matchTransformSnapshot('updateCellMocks', 'objectCellMockWithType') + }) + + test('Ignores mocks that are already functions', async () => { + await matchTransformSnapshot('updateCellMocks', 'alreadyFunction') + }) +}) diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/updateCellMocks.ts b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/updateCellMocks.ts new file mode 100644 index 000000000000..abdaff996bc5 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/updateCellMocks.ts @@ -0,0 +1,55 @@ +import type { API, FileInfo, ObjectExpression, ASTPath } from 'jscodeshift' + +export default function transform(file: FileInfo, api: API) { + const j = api.jscodeshift + const ast = j(file.source) + + const exportDeclarations = ast.find(j.ExportNamedDeclaration) + + const createStandardMockFunction = ( + originalMockObject: ASTPath + ) => { + const newMockedObject = j.objectExpression( + originalMockObject.value.properties + ) + const returnStatement = j.returnStatement(newMockedObject) + + // creates the function aka factory, that returns the mock object + return j.variableDeclarator( + //@MARK cheating... not sure how to add const + j.identifier('const standard'), + j.arrowFunctionExpression([], j.blockStatement([returnStatement])) + ) + } + + exportDeclarations.forEach((path) => { + const varDeclarations = j(path).find(j.VariableDeclaration) + + varDeclarations.forEach((declaration) => { + const isStandardExport = + varDeclarations.find(j.Identifier, { name: 'standard' }).paths() + .length > 0 + + if (!isStandardExport) { + // exit early, ignore other exports + return + } + + /* This is the actual object + export const standard = 👉 { bazinga: true} + **/ + const mockedObject = j(declaration).find(j.ObjectExpression).paths()[0] + + // If the mock is an object, change it to a function + if (mockedObject) { + // creates the function aka factory, that returns the mock object + const mockFactory = createStandardMockFunction(mockedObject) + + // Replace the whole declaration, because I couldn't find an easy way to just change the init + j(declaration).replaceWith(mockFactory) + } + }) + }) + + return ast.toSource({ trailingComma: true, quote: 'single' }) +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateCellMocks/updateCellMocks.yargs.ts b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/updateCellMocks.yargs.ts new file mode 100644 index 000000000000..1459864c4220 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateCellMocks/updateCellMocks.yargs.ts @@ -0,0 +1,36 @@ +import path from 'path' + +import fg from 'fast-glob' +import task from 'tasuku' + +import getRWPaths from '../../../lib/getRWPaths' +import runTransform from '../../../lib/runTransform' + +export const command = 'update-cell-mocks' +export const description = + '(v0.38->v0.39) Updates standard cell mocks to export functions, instead of objects' + +export const handler = () => { + const rwPaths = getRWPaths() + + const cellMocks = fg.sync('**/*.mock.{js,ts}', { + cwd: rwPaths.web.src, + absolute: true, + }) + + task( + 'Updating Cell mocks', + async ({ setWarning, setOutput }: task.TaskInnerApi) => { + if (cellMocks.length < 1) { + setWarning('No cell mocks found') + } else { + await runTransform({ + transformPath: path.join(__dirname, 'updateCellMocks.js'), + targetPaths: cellMocks, + }) + } + + setOutput('All done! Run `yarn rw lint --fix` to prettify your code') + } + ) +} diff --git a/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/README.md b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/README.md new file mode 100644 index 000000000000..ede0e908460e --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/README.md @@ -0,0 +1,25 @@ +# Update Router paramTypes + +- Renames `paramType` expected keys, from `transform` to `parse` and `constraint` to `match`. +- Checks only within Routes.{tsx|js} file. + +```diff + import { Router, Route } from '@redwoodjs/router' + + const Routes = () => { + return ( + param.split('-'), ++ match: /\w+-\w+/, ++ parse: (param) => param.split('-'), + }, + }}> + + + ) + } + + export default Routes +``` diff --git a/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/embedded.input.tsx b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/embedded.input.tsx new file mode 100644 index 000000000000..2c2fdbed4019 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/embedded.input.tsx @@ -0,0 +1,29 @@ +// In this file, all Page components from 'src/pages` are auto-imported. Nested +// directories are supported, and should be uppercase. Each subdirectory will be +// prepended onto the component name. +// +// Examples: +// +// 'src/pages/HomePage/HomePage.js' -> HomePage +// 'src/pages/Admin/BooksPage/BooksPage.js' -> AdminBooksPage + +import { Router, Route } from '@redwoodjs/router' + +const Routes = () => { + return ( + param.split('-'), + }, + something: { + constraint: /\w+.\w+/, + transform: (param) => param.split('.'), + } + }}> + + + ) +} + +export default Routes diff --git a/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/embedded.output.tsx b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/embedded.output.tsx new file mode 100644 index 000000000000..313e9dc2041a --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/embedded.output.tsx @@ -0,0 +1,29 @@ +// In this file, all Page components from 'src/pages` are auto-imported. Nested +// directories are supported, and should be uppercase. Each subdirectory will be +// prepended onto the component name. +// +// Examples: +// +// 'src/pages/HomePage/HomePage.js' -> HomePage +// 'src/pages/Admin/BooksPage/BooksPage.js' -> AdminBooksPage + +import { Router, Route } from '@redwoodjs/router' + +const Routes = () => { + return ( + param.split('-'), + }, + something: { + match: /\w+.\w+/, + parse: (param) => param.split('.'), + } + }}> + + + ) +} + +export default Routes diff --git a/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/partialEmbeds.input.tsx b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/partialEmbeds.input.tsx new file mode 100644 index 000000000000..ee90240d478c --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/partialEmbeds.input.tsx @@ -0,0 +1,38 @@ +// In this file, all Page components from 'src/pages` are auto-imported. Nested +// directories are supported, and should be uppercase. Each subdirectory will be +// prepended onto the component name. +// +// Examples: +// +// 'src/pages/HomePage/HomePage.js' -> HomePage +// 'src/pages/Admin/BooksPage/BooksPage.js' -> AdminBooksPage + +import { Router, Route } from '@redwoodjs/router' + +const slug = { + constraint: /\w+-\w+/, + transform: (param) => param.split('-'), +} + +const constraint = /\w+-\w+/ +const transform = (param) => param.split('.') + +const Routes = () => { + return ( + param.split('.'), + }, + }} + > + + + ) +} + +export default Routes diff --git a/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/partialEmbeds.output.tsx b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/partialEmbeds.output.tsx new file mode 100644 index 000000000000..f03002bbb20b --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/partialEmbeds.output.tsx @@ -0,0 +1,38 @@ +// In this file, all Page components from 'src/pages` are auto-imported. Nested +// directories are supported, and should be uppercase. Each subdirectory will be +// prepended onto the component name. +// +// Examples: +// +// 'src/pages/HomePage/HomePage.js' -> HomePage +// 'src/pages/Admin/BooksPage/BooksPage.js' -> AdminBooksPage + +import { Router, Route } from '@redwoodjs/router' + +const slug = { + match: /\w+-\w+/, + parse: (param) => param.split('-'), +} + +const constraint = /\w+-\w+/ +const transform = (param) => param.split('.') + +const Routes = () => { + return ( + param.split('.'), + }, + }} + > + + + ) +} + +export default Routes diff --git a/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/variableRef.input.tsx b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/variableRef.input.tsx new file mode 100644 index 000000000000..e5c5ff8c590a --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/variableRef.input.tsx @@ -0,0 +1,31 @@ +// In this file, all Page components from 'src/pages` are auto-imported. Nested +// directories are supported, and should be uppercase. Each subdirectory will be +// prepended onto the component name. +// +// Examples: +// +// 'src/pages/HomePage/HomePage.js' -> HomePage +// 'src/pages/Admin/BooksPage/BooksPage.js' -> AdminBooksPage + +import { Router, Route } from '@redwoodjs/router' + +const userRouteParamTypes = { + slug: { + constraint: /\w+-\w+/, + transform: (param) => param.split('-'), + }, + something: { + constraint: /\w+.\w+/, + transform: (param) => param.split('.'), + }, +} + +const Routes = () => { + return ( + + + + ) +} + +export default Routes diff --git a/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/variableRef.output.tsx b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/variableRef.output.tsx new file mode 100644 index 000000000000..f68a14a71616 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__testfixtures__/variableRef.output.tsx @@ -0,0 +1,31 @@ +// In this file, all Page components from 'src/pages` are auto-imported. Nested +// directories are supported, and should be uppercase. Each subdirectory will be +// prepended onto the component name. +// +// Examples: +// +// 'src/pages/HomePage/HomePage.js' -> HomePage +// 'src/pages/Admin/BooksPage/BooksPage.js' -> AdminBooksPage + +import { Router, Route } from '@redwoodjs/router' + +const userRouteParamTypes = { + slug: { + match: /\w+-\w+/, + parse: (param) => param.split('-'), + }, + something: { + match: /\w+.\w+/, + parse: (param) => param.split('.'), + }, +} + +const Routes = () => { + return ( + + + + ) +} + +export default Routes diff --git a/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__tests__/updateRouterParamTypes.ts b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__tests__/updateRouterParamTypes.ts new file mode 100644 index 000000000000..06327690e7ec --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/__tests__/updateRouterParamTypes.ts @@ -0,0 +1,13 @@ +describe('Update Router paramTypes', () => { + test('Transforms variable referenced paramTypes', () => { + matchTransformSnapshot('updateRouterParamTypes', 'variableRef') + }) + + test('Transforms embedded object paramTypes', () => { + matchTransformSnapshot('updateRouterParamTypes', 'embedded') + }) + + test('Transforms embedded object paramTypes', () => { + matchTransformSnapshot('updateRouterParamTypes', 'partialEmbeds') + }) +}) diff --git a/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/updateRouterParamTypes.ts b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/updateRouterParamTypes.ts new file mode 100644 index 000000000000..5b8a4584b1c6 --- /dev/null +++ b/packages/codemods/src/codemods/v0.39.x/updateRouterParamTypes/updateRouterParamTypes.ts @@ -0,0 +1,153 @@ +import type { + API, + FileInfo, + JSXExpressionContainer, + ObjectExpression, +} from 'jscodeshift' + +export default function transform(file: FileInfo, api: API) { + const newPropertyName = { + constraint: 'match', + transform: 'parse', + } + + const j = api.jscodeshift + const ast = j(file.source) + + const renameParamTypeKey = (paramTypeKey: any) => { + // paramTypeKey here could be any one of following marked as 👉 + /* + const slug = { + 👉 constraint: /\w+-\w+/, + 👉 transform: (param) => param.split('-'), + } + ... + param.split('.'), + }, + }} + > + + ... + */ + + // To force the value to be explicit. {{ transform }} -> {{ parse: transform }} + // paramTypeKey.value = j.identifier.from(paramTypeKey.value) + if (paramTypeKey.shorthand) { + paramTypeKey.shorthand = false + } + + paramTypeKey.key.name = + newPropertyName[paramTypeKey.key.name as keyof typeof newPropertyName] + } + + const mapToNewSyntax = ( + allParamTypeProperties: ObjectExpression['properties'] + ) => { + // allParamTypeProperties here is array of following marked as 👉 + /* + param.split('.'), + }, + }} + > + */ + + allParamTypeProperties.forEach((paramTypeProperty) => { + // paramTypeProperty.value could be either ObjectExpression, Identifier + if ( + paramTypeProperty.type === 'SpreadProperty' || + paramTypeProperty.type === 'SpreadElement' || + paramTypeProperty.type === 'ObjectMethod' + ) { + // We don't handle these other types. + // As they're quite edgecase-ey + // like paramTypes={{...myParams}} (spreadelement) + console.warn( + 'Unable to update your custom Route parameters. Please follow manual instructions' + ) + return + } + + switch (paramTypeProperty.value.type) { + // Identifier could be for {{ slug }} in examples above. Or something like {{slug: slug}} + case 'Identifier': { + // Even though we have the object but the key is referred as variable + const paramTypeValueVar = paramTypeProperty.value.name + const paramTypeValueDef = ast.find(j.VariableDeclarator, { + id: { name: paramTypeValueVar }, + }) + + paramTypeValueDef.forEach((valueDefNode) => { + if (valueDefNode?.value?.init?.type !== 'ObjectExpression') { + // Value must be object but doesn't seem to be case here. + return + } + const valueDefInit = valueDefNode.value.init + valueDefInit.properties.forEach((valueDefInitProperty) => { + renameParamTypeKey(valueDefInitProperty) + }) + }) + break + } + case 'ObjectExpression': + // Value is an object + paramTypeProperty.value.properties.forEach((property) => { + renameParamTypeKey(property) + }) + break + } + }) + } + + ast + .find(j.JSXElement, { openingElement: { name: { name: 'Router' } } }) + .forEach((routerElement) => { + const paramTypeProp = j(routerElement.node.openingElement).find( + j.JSXAttribute, + { + name: { name: 'paramTypes' }, + } + ) + paramTypeProp.forEach((prop) => { + const paramTypeValue = (prop?.value?.value as JSXExpressionContainer) + ?.expression // get the value inside the jsx expression + + // paramTypeValue is marked as 👉 . It could be even referenced as variable. + // { + const allParamTypeProperties = ( + varDef?.value?.init as ObjectExpression + )?.properties // safe to assume that this variable is an object declaration + mapToNewSyntax(allParamTypeProperties) + }) + break + } + + case 'ObjectExpression': // { + task( + 'Updating Routes.{tsx|js}', + async ({ setWarning }: { setWarning: any }) => { + const rwPaths = getRWPaths() + + const extns = isTSProject ? 'tsx' : 'js' + const routesFilePath = path.join(rwPaths.web.src, `Routes.${extns}`) + if (!fs.existsSync(routesFilePath)) { + setWarning('Routes.{tsx|js} not found') + } else { + runTransform({ + transformPath: path.join(__dirname, 'updateRouterParamTypes.js'), + targetPaths: [routesFilePath], + }) + } + } + ) +} diff --git a/packages/codemods/src/lib/prettify.ts b/packages/codemods/src/lib/prettify.ts index 16506c687414..5c43e1a2bbaa 100644 --- a/packages/codemods/src/lib/prettify.ts +++ b/packages/codemods/src/lib/prettify.ts @@ -14,6 +14,8 @@ const getPrettierConfig = () => { const prettify = (code: string) => format(code, { + singleQuote: true, + semi: false, ...getPrettierConfig(), parser: 'babel', }) diff --git a/packages/codemods/src/lib/runTransform.ts b/packages/codemods/src/lib/runTransform.ts index adf545ad04eb..84aff65f8a41 100644 --- a/packages/codemods/src/lib/runTransform.ts +++ b/packages/codemods/src/lib/runTransform.ts @@ -1,38 +1,28 @@ /** - * A simple wrapper around the jscodeshift CLI. + * A simple wrapper around the jscodeshift. * * @see jscodeshift CLI's usage {@link https://github.com/facebook/jscodeshift#usage-cli} * @see prisma/codemods {@link https://github.com/prisma/codemods/blob/main/utils/runner.ts} * @see react-codemod {@link https://github.com/reactjs/react-codemod/blob/master/bin/cli.js} */ -import path from 'path' -import execa from 'execa' +// @ts-expect-error We don't have this in types but need for workaround https://github.com/facebook/jscodeshift/issues/398 +import * as jscodeshift from 'jscodeshift/src/Runner' -const getExecaArgs = () => { - if (process.platform === 'win32') { - return { - command: 'yarn jscodeshift', - cmdArgs: [], - } - } else { - /** - * We can't run jscodeshift with yarn (like `yarn jscodeshift -t ...`) on macos/linux - * - * @see {@link https://github.com/facebook/jscodeshift/issues/424} - * - * But on Windows, yarn jscodeshift does - */ - const jscodeshiftExecutable = path.resolve( - __dirname, - '../../../../node_modules/.bin/jscodeshift' - ) - - return { - command: 'node', - cmdArgs: [jscodeshiftExecutable], - } - } +const defaultJscodeshiftOpts = { + verbose: 0, + dry: false, + print: false, + babel: true, + extensions: 'js', + ignorePattern: '**/node_modules/**', + ignoreConfig: [], + runInBand: false, + silent: false, + parser: 'babel', + parserConfig: {}, + failOnError: false, + stdin: false, } export interface RunTransform { @@ -48,74 +38,26 @@ export interface RunTransform { /** * jscodeshift options and transform options. */ - options?: Record + options?: Partial> } -export const runTransform = ({ +export const runTransform = async ({ transformPath, targetPaths, parser = 'tsx', options = {}, }: RunTransform) => { - /** - * Transforms `{ key: val }` to `'--key=val'` - */ - const flags = Object.entries(options).map((key, val) => `--${key}=${val}`) - - if (process.env.NODE_ENV === 'test') { - const { command, cmdArgs } = getExecaArgs() - - try { - execa.sync( - command, - [ - ...cmdArgs, - `--parser=${parser}`, - process.env.NODE_ENV === 'test' ? '--babel' : '--no-babel', - '--ignore-pattern=**/node_modules/**', - // Putting flags here lets them override all the defaults. - ...flags, - '-t', - transformPath, - ...targetPaths, - ], - { - stdio: 'inherit', - } - ) - } catch (e: any) { - console.error('Transform Error', e.message) - - throw new Error('Failed to invoke transform') - } - } else { - try { - const jscodeshiftExecutable = path.resolve( - __dirname, - '../../node_modules/.bin/jscodeshift' - ) - - execa.sync( - jscodeshiftExecutable, - [ - `--parser=${parser}`, - process.env.NODE_ENV === 'test' ? '--babel' : '--no-babel', - '--ignore-pattern=**/node_modules/**', - // Putting flags here lets them override all the defaults. - ...flags, - '-t', - transformPath, - ...targetPaths, - ], - { - stdio: 'inherit', - } - ) - } catch (e: any) { - console.error('Transform Error', e.message) + try { + await jscodeshift.run(transformPath, targetPaths, { + ...defaultJscodeshiftOpts, + parser, + babel: process.env.NODE_ENV === 'test', + ...options, // Putting options here lets them override all the defaults. + }) + } catch (e: any) { + console.error('Transform Error', e.message) - throw new Error('Failed to invoke transform') - } + throw new Error('Failed to invoke transform') } } diff --git a/packages/codemods/src/testUtils/index.ts b/packages/codemods/src/testUtils/index.ts new file mode 100644 index 000000000000..14a79453e9eb --- /dev/null +++ b/packages/codemods/src/testUtils/index.ts @@ -0,0 +1,17 @@ +import fs from 'fs' +import path from 'path' + +import { format } from 'prettier' +import tempy from 'tempy' + +export const formatCode = (code: string) => { + return format(code, { parser: 'babel-ts' }) +} + +export const createProjectMock = () => { + const tempDir = tempy.directory() + // add fake redwood.toml + fs.closeSync(fs.openSync(path.join(tempDir, 'redwood.toml'), 'w')) + + return tempDir +} diff --git a/packages/codemods/src/testUtils/matchFolderTransform.ts b/packages/codemods/src/testUtils/matchFolderTransform.ts new file mode 100644 index 000000000000..f3a83a18a5cc --- /dev/null +++ b/packages/codemods/src/testUtils/matchFolderTransform.ts @@ -0,0 +1,65 @@ +import path from 'path' + +import fg from 'fast-glob' +import fse from 'fs-extra' + +import { createProjectMock } from './index' + +export const matchFolderTransform = async ( + transformFunction: () => any, + fixtureName: string +) => { + const tempDir = createProjectMock() + + // Override paths used in getPaths() utility func + process.env.RWJS_CWD = tempDir + + // Looks up the path of the caller + const testPath = expect.getState().testPath + + if (!testPath) { + throw new Error('Could not find test path') + } + + const fixtureFolder = path.join( + testPath, + '../../__testfixtures__', + fixtureName + ) + + const fixtureInputDir = path.join(fixtureFolder, 'input') + const fixtureOutputDir = path.join(fixtureFolder, 'output') + + // Step 1: Copy files recursively from fixture folder to temp + fse.copySync(fixtureInputDir, tempDir, { + overwrite: true, + }) + + // Step 2: Run transform against temp dir + await transformFunction() + + const GLOB_CONFIG = { + absolute: false, + dot: true, + ignore: ['redwood.toml', '**/*.DS_Store'], // ignore the fake redwood.toml added for getRWPaths + } + const transformedPaths = fg.sync('**/*', { ...GLOB_CONFIG, cwd: tempDir }) + + const expectedPaths = fg.sync('**/*', { + ...GLOB_CONFIG, + cwd: fixtureOutputDir, + }) + + // Step 3: Check output paths + expect(transformedPaths).toEqual(expectedPaths) + + // Step 4: Check contents of each file + transformedPaths.forEach((transformedFile) => { + const actualPath = path.join(tempDir, transformedFile) + const expectedPath = path.join(fixtureOutputDir, transformedFile) + + expect(actualPath).toMatchFileContents(expectedPath) + }) + + delete process.env['RWJS_CWD'] +} diff --git a/packages/codemods/src/testUtils/matchInlineTransformSnapshot.ts b/packages/codemods/src/testUtils/matchInlineTransformSnapshot.ts new file mode 100644 index 000000000000..8b71e44d5b70 --- /dev/null +++ b/packages/codemods/src/testUtils/matchInlineTransformSnapshot.ts @@ -0,0 +1,43 @@ +import fs from 'fs' +import path from 'path' + +import tempy from 'tempy' + +import runTransform from '../lib/runTransform' + +import { formatCode } from './index' + +export const matchInlineTransformSnapshot = async ( + transformName: string, + fixtureCode: string, + expectedCode: string, + parser: 'ts' | 'tsx' | 'babel' = 'tsx' +) => { + const tempFilePath = tempy.file() + + // Looks up the path of the caller + const testPath = expect.getState().testPath + + if (!testPath) { + throw new Error('Could not find test path') + } + + const transformPath = require.resolve( + path.join(testPath, '../../', transformName) + ) + + // Step 1: Write passed in code to a temp file + fs.writeFileSync(tempFilePath, fixtureCode) + + // Step 2: Run transform against temp file + await runTransform({ + transformPath, + targetPaths: [tempFilePath], + parser, + }) + + // Step 3: Read modified file and snapshot + const transformedContent = fs.readFileSync(tempFilePath, 'utf-8') + + expect(formatCode(transformedContent)).toEqual(formatCode(expectedCode)) +} diff --git a/packages/codemods/testUtils/index.ts b/packages/codemods/src/testUtils/matchTransformSnapshot.ts similarity index 51% rename from packages/codemods/testUtils/index.ts rename to packages/codemods/src/testUtils/matchTransformSnapshot.ts index 241801beb75f..0cc3d63e93ad 100644 --- a/packages/codemods/testUtils/index.ts +++ b/packages/codemods/src/testUtils/matchTransformSnapshot.ts @@ -1,16 +1,13 @@ import fs from 'fs' import path from 'path' -import { format } from 'prettier' import tempy from 'tempy' -import runTransform from '../src/lib/runTransform' +import runTransform from '../lib/runTransform' -const formatCode = (code: string) => { - return format(code, { parser: 'babel-ts' }) -} +import { formatCode } from './index' -export const matchTransformSnapshot = ( +export const matchTransformSnapshot = async ( transformName: string, fixtureName: string = transformName, parser: 'ts' | 'tsx' | 'babel' = 'tsx' @@ -37,7 +34,7 @@ export const matchTransformSnapshot = ( fs.copyFileSync(fixturePath, tempFilePath, fs.constants.COPYFILE_FICLONE) // Step 2: Run transform against temp file - runTransform({ + await runTransform({ transformPath, targetPaths: [tempFilePath], parser, @@ -53,40 +50,3 @@ export const matchTransformSnapshot = ( expect(formatCode(transformedContent)).toEqual(formatCode(expectedOutput)) } - -export const matchInlineTransformSnapshot = ( - transformName: string, - fixtureCode: string, - expectedCode: string, - parser: 'ts' | 'tsx' | 'babel' = 'tsx' -) => { - const tempFilePath = tempy.file() - - // Looks up the path of the caller - const testPath = expect.getState().testPath - - if (!testPath) { - throw new Error('Could not find test path') - } - - const transformPath = require.resolve( - path.join(testPath, '../../', transformName) - ) - - // Step 1: Write passed in code to a temp file - fs.writeFileSync(tempFilePath, fixtureCode) - - // Step 2: Run transform against temp file - runTransform({ - transformPath, - targetPaths: [tempFilePath], - parser, - }) - - // Step 3: Read modified file and snapshot - const transformedContent = fs.readFileSync(tempFilePath, 'utf-8') - - expect(formatCode(transformedContent)).toEqual(formatCode(expectedCode)) -} - -export default matchTransformSnapshot diff --git a/packages/codemods/testUtils.d.ts b/packages/codemods/testUtils.d.ts index 86b07c5b636b..8d14e39181aa 100644 --- a/packages/codemods/testUtils.d.ts +++ b/packages/codemods/testUtils.d.ts @@ -32,16 +32,22 @@ declare module 'jscodeshift/dist/testUtils' { ): string } -import { - matchInlineTransformSnapshot, - matchTransformSnapshot, -} from './testUtils/index' +import { matchFolderTransform } from './testUtils/matchFolderTransform' +import { matchInlineTransformSnapshot } from './testUtils/matchInlineTransformSnapshot' +import { matchTransformSnapshot } from './testUtils/matchTransformSnapshot' type MatchFunction = typeof matchTransformSnapshot type MatchInlineFunction = typeof matchInlineTransformSnapshot +type MatchFolder = typeof matchFolderTransform // This file gets loaded in jest setup, so becomes available globally in tests declare global { const matchTransformSnapshot: MatchFunction const matchInlineTransformSnapshot: MatchInlineFunction + const matchFolderTransform: MatchFolder + namespace jest { + interface Matchers { + toMatchFileContents(fixturePath: string): R + } + } } diff --git a/packages/core/config/babel-preset.js b/packages/core/config/babel-preset.js deleted file mode 100644 index 93b254665ea5..000000000000 --- a/packages/core/config/babel-preset.js +++ /dev/null @@ -1,230 +0,0 @@ -/** - * This is the babel preset used in `create-redwood-app` - */ -const { getPaths } = require('@redwoodjs/internal') - -const packageJSON = require('../package.json') - -const TARGETS_NODE = '12.16' -// Warning! Use the minor core-js version: "corejs: '3.6'", instead of "corejs: 3", -// because we want to include the features added in the minor version. -// https://github.com/zloirock/core-js/blob/master/README.md#babelpreset-env - -const CORE_JS_VERSION = packageJSON.dependencies['core-js'] - .split('.') - .slice(0, 2) - .join('.') // Produces: 3.12, instead of 3.12.1 -if (!CORE_JS_VERSION) { - throw new Error( - 'RedwoodJS Project Babel: Could not determine core-js version.' - ) -} - -const RUNTIME_CORE_JS_VERSION = - packageJSON.dependencies['@babel/runtime-corejs3'] -if (!RUNTIME_CORE_JS_VERSION) { - throw new Error( - 'RedwoodJS Project Babel: Could not determine core-js runtime version' - ) -} - -/** @type {import('@babel/core').TransformOptions} */ -module.exports = () => { - const rwjsPaths = getPaths() - - return { - presets: ['@babel/preset-react', '@babel/preset-typescript'], - plugins: [ - ['@babel/plugin-proposal-class-properties', { loose: true }], - // Note: The private method loose mode configuration setting must be the - // same as @babel/plugin-proposal class-properties. - // (https://babeljs.io/docs/en/babel-plugin-proposal-private-methods#loose) - ['@babel/plugin-proposal-private-methods', { loose: true }], - ['@babel/plugin-proposal-private-property-in-object', { loose: true }], - [ - '@babel/plugin-transform-runtime', - { - // https://babeljs.io/docs/en/babel-plugin-transform-runtime/#core-js-aliasing - // Setting the version here also requires `@babel/runtime-corejs3` - corejs: { version: 3, proposals: true }, - // https://babeljs.io/docs/en/babel-plugin-transform-runtime/#version - // Transform-runtime assumes that @babel/runtime@7.0.0 is installed. - // Specifying the version can result in a smaller bundle size. - version: RUNTIME_CORE_JS_VERSION, - }, - ], - [ - require('@redwoodjs/internal/dist/build/babelPlugins/babel-plugin-redwood-directory-named-import'), - ], - ], - overrides: [ - // ** API (also applies to Jest API config) ** - // ** SCRIPTS ** - { - test: ['./api/', './scripts/'], - presets: [ - [ - '@babel/preset-env', - { - targets: { - node: TARGETS_NODE, - }, - useBuiltIns: 'usage', - corejs: { - version: CORE_JS_VERSION, - // List of supported proposals: https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#ecmascript-proposals - proposals: true, - }, - exclude: [ - // Remove class-properties from preset-env, and include separately with loose - // https://github.com/webpack/webpack/issues/9708 - '@babel/plugin-proposal-class-properties', - '@babel/plugin-proposal-private-methods', - ], - }, - ], - ], - plugins: [ - [ - 'babel-plugin-module-resolver', - { - alias: { - src: - // Jest monorepo and multi project runner is not correctly determining - // the `cwd`: https://github.com/facebook/jest/issues/7359 - process.env.NODE_ENV !== 'test' ? './src' : rwjsPaths.api.src, - }, - }, - ], - [ - 'babel-plugin-auto-import', - { - declarations: [ - { - // import { context } from '@redwoodjs/graphql-server' - members: ['context'], - path: '@redwoodjs/graphql-server', - }, - { - default: 'gql', - path: 'graphql-tag', - }, - ], - }, - ], - ['babel-plugin-graphql-tag'], - [ - require('@redwoodjs/internal/dist/build/babelPlugins/babel-plugin-redwood-import-dir'), - ], - ], - }, - // ** WEB ** - { - test: './web', - presets: [ - [ - '@babel/preset-env', - { - // the targets are set in /web/package.json - useBuiltIns: 'usage', - corejs: { - version: CORE_JS_VERSION, - proposals: true, - }, - exclude: [ - // Remove class-properties from preset-env, and include separately - // https://github.com/webpack/webpack/issues/9708 - '@babel/plugin-proposal-class-properties', - '@babel/plugin-proposal-private-methods', - ], - }, - ], - ], - plugins: [ - [ - 'babel-plugin-module-resolver', - { - alias: { - src: - // Jest monorepo and multi project runner is not correctly determining - // the `cwd`: https://github.com/facebook/jest/issues/7359 - process.env.NODE_ENV !== 'test' ? './src' : rwjsPaths.web.src, - }, - }, - ], - [ - 'babel-plugin-auto-import', - { - declarations: [ - { - // import { React } from 'react' - default: 'React', - path: 'react', - }, - { - // import PropTypes from 'prop-types' - default: 'PropTypes', - path: 'prop-types', - }, - { - // import gql from 'graphql-tag' - default: 'gql', - path: 'graphql-tag', - }, - ], - }, - ], - ['babel-plugin-graphql-tag'], - [ - 'inline-react-svg', - { - svgo: { - plugins: [ - { - name: 'removeAttrs', - params: { attrs: '(data-name)' }, - }, - // Otherwise having style="xxx" breaks - 'convertStyleToAttrs', - ], - }, - }, - ], - // @MARK needed to enable ?? operator - // normally provided through preset-env detecting TARGET_BROWSER - // but webpack 4 has an issue with this - // see https://github.com/PaulLeCam/react-leaflet/issues/883 - ['@babel/plugin-proposal-nullish-coalescing-operator'], - ], - }, - // ** Files ending in `Cell.[js,ts]` ** - { - test: /.+Cell.(js|tsx)$/, - plugins: [ - require('@redwoodjs/internal/dist/build/babelPlugins/babel-plugin-redwood-cell'), - ], - }, - // Automatically import files in `./web/src/pages/*` in to - // the `./web/src/Routes.[ts|jsx]` file. - { - test: ['./web/src/Routes.js', './web/src/Routes.tsx'], - plugins: [ - [ - require('@redwoodjs/internal/dist/build/babelPlugins/babel-plugin-redwood-routes-auto-loader'), - { - useStaticImports: process.env.__REDWOOD__PRERENDERING === '1', - }, - ], - ], - }, - // ** Files ending in `Cell.mock.[js,ts]` ** - // Automatically determine keys for saving and retrieving mock data. - { - test: /.+Cell.mock.(js|ts)$/, - plugins: [ - require('@redwoodjs/internal/dist/build/babelPlugins/babel-plugin-redwood-mock-cell-data'), - ], - }, - ], - } -} diff --git a/packages/core/config/webpack.common.js b/packages/core/config/webpack.common.js index 2c4a8e2d8fc8..bc734995569b 100644 --- a/packages/core/config/webpack.common.js +++ b/packages/core/config/webpack.common.js @@ -12,7 +12,11 @@ const { WebpackManifestPlugin } = require('webpack-manifest-plugin') const { merge } = require('webpack-merge') const { RetryChunkLoadPlugin } = require('webpack-retry-chunk-load-plugin') -const { getConfig, getPaths } = require('@redwoodjs/internal') +const { + getConfig, + getPaths, + getWebSideDefaultBabelConfig, +} = require('@redwoodjs/internal') const redwoodConfig = getConfig() const redwoodPaths = getPaths() @@ -125,6 +129,15 @@ const getStyleLoaders = (isEnvProduction) => { const getSharedPlugins = (isEnvProduction) => { const shouldIncludeFastRefresh = redwoodConfig.web.fastRefresh !== false && !isEnvProduction + + const devTimeAutoImports = isEnvProduction + ? {} + : { + mockGraphQLQuery: ['@redwoodjs/testing/web', 'mockGraphQLQuery'], + mockGraphQLMutation: ['@redwoodjs/testing/web', 'mockGraphQLMutation'], + mockCurrentUser: ['@redwoodjs/testing/web', 'mockCurrentUser'], + } + return [ isEnvProduction && new MiniCssExtractPlugin({ @@ -139,10 +152,7 @@ const getSharedPlugins = (isEnvProduction) => { React: 'react', PropTypes: 'prop-types', gql: 'graphql-tag', - // Possibly used by storybook? - mockGraphQLQuery: ['@redwoodjs/testing/web', 'mockGraphQLQuery'], - mockGraphQLMutation: ['@redwoodjs/testing/web', 'mockGraphQLMutation'], - mockCurrentUser: ['@redwoodjs/testing/web', 'mockCurrentUser'], + ...devTimeAutoImports, }), // The define plugin will replace these keys with their values during build // time. Note that they're used in packages/web/src/config.ts, and made available in globalThis @@ -153,6 +163,7 @@ const getSharedPlugins = (isEnvProduction) => { ['process.env.RWJS_API_DBAUTH_URL']: JSON.stringify( redwoodConfig.web.apiDbAuthUrl ?? `${redwoodConfig.web.apiUrl}/auth` ), + ['process.env.RWJS_API_URL']: JSON.stringify(redwoodConfig.web.apiUrl), ['process.env.__REDWOOD__APP_TITLE']: JSON.stringify( redwoodConfig.web.title || path.basename(redwoodPaths.base) ), @@ -173,6 +184,8 @@ module.exports = (webpackEnv) => { const shouldIncludeFastRefresh = redwoodConfig.web.experimentalFastRefresh && !isEnvProduction + const webBabelOptions = getWebSideDefaultBabelConfig() + return { mode: isEnvProduction ? 'production' : 'development', devtool: isEnvProduction ? 'source-map' : 'cheap-module-source-map', @@ -263,46 +276,32 @@ module.exports = (webpackEnv) => { }, // (1) { - test: /\.(js|mjs|jsx)$/, + test: /\.(js|mjs|jsx|ts|tsx)$/, exclude: /(node_modules)/, use: [ { loader: 'babel-loader', options: { + ...webBabelOptions, cwd: redwoodPaths.base, plugins: [ shouldIncludeFastRefresh && require.resolve('react-refresh/babel'), + ...webBabelOptions.plugins, ].filter(Boolean), }, }, ].filter(Boolean), }, // (2) - { - test: /\.(ts|tsx)$/, - exclude: /(node_modules)/, - use: [ - { - loader: 'babel-loader', - options: { - cwd: redwoodPaths.base, - plugins: [ - shouldIncludeFastRefresh && - require.resolve('react-refresh/babel'), - ].filter(Boolean), - }, - }, - ].filter(Boolean), - }, - // .module.css (3), .css (4), .module.scss (5), .scss (6) + // .module.css (2), .css (3), .module.scss (4), .scss (5) ...getStyleLoaders(isEnvProduction), - // (7) + // (6) isEnvProduction && { test: require.resolve('@redwoodjs/router/dist/splash-page'), use: 'null-loader', }, - // (8) + // (7) { test: /\.(svg|ico|jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/, type: 'asset/resource', diff --git a/packages/core/package.json b/packages/core/package.json index c6f2cb71a932..239286dcc39d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,61 +1,61 @@ { "name": "@redwoodjs/core", "description": "Foundational packages and config required to build RedwoodJS.", - "version": "0.38.1", + "version": "0.39.2", "license": "MIT", "files": [ "config" ], "dependencies": { - "@babel/cli": "7.15.7", - "@babel/core": "7.15.8", + "@babel/cli": "7.16.0", + "@babel/core": "7.16.0", "@babel/eslint-plugin": "7.14.5", - "@babel/node": "7.15.8", - "@babel/plugin-proposal-class-properties": "7.14.5", - "@babel/plugin-proposal-decorators": "7.15.8", - "@babel/plugin-proposal-private-methods": "7.14.5", - "@babel/plugin-proposal-private-property-in-object": "7.15.4", - "@babel/plugin-transform-runtime": "7.15.8", - "@babel/preset-env": "7.15.8", - "@babel/preset-react": "7.14.5", - "@babel/preset-typescript": "7.15.0", - "@babel/runtime-corejs3": "7.15.4", - "@pmmmwh/react-refresh-webpack-plugin": "0.5.0-rc.6", - "@redwoodjs/cli": "0.38.1", - "@redwoodjs/eslint-config": "0.38.1", - "@redwoodjs/internal": "0.38.1", - "@redwoodjs/testing": "0.38.1", + "@babel/node": "7.16.0", + "@babel/plugin-proposal-class-properties": "7.16.0", + "@babel/plugin-proposal-decorators": "7.16.4", + "@babel/plugin-proposal-private-methods": "7.16.0", + "@babel/plugin-proposal-private-property-in-object": "7.16.0", + "@babel/plugin-transform-runtime": "7.16.4", + "@babel/preset-env": "7.16.4", + "@babel/preset-react": "7.16.0", + "@babel/preset-typescript": "7.16.0", + "@babel/runtime-corejs3": "7.16.3", + "@pmmmwh/react-refresh-webpack-plugin": "0.5.3", + "@redwoodjs/cli": "0.39.2", + "@redwoodjs/eslint-config": "0.39.2", + "@redwoodjs/internal": "0.39.2", + "@redwoodjs/testing": "0.39.2", "babel-loader": "8.2.3", "babel-plugin-auto-import": "1.1.0", "babel-plugin-graphql-tag": "3.3.0", "babel-plugin-inline-react-svg": "2.0.1", "babel-plugin-module-resolver": "4.1.0", "babel-timing": "0.9.1", - "copy-webpack-plugin": "9.0.1", - "core-js": "3.18.3", - "css-loader": "6.4.0", - "css-minimizer-webpack-plugin": "3.1.1", + "copy-webpack-plugin": "10.0.0", + "core-js": "3.19.1", + "css-loader": "6.5.1", + "css-minimizer-webpack-plugin": "3.1.4", "dotenv-webpack": "7.0.3", - "esbuild": "0.13.8", + "esbuild": "0.13.14", "esbuild-loader": "2.16.0", "fast-glob": "3.2.7", "file-loader": "6.2.0", - "graphql": "15.6.1", - "graphql-tag": "2.12.5", - "html-webpack-plugin": "5.4.0", + "graphql": "16.0.1", + "graphql-tag": "2.12.6", + "html-webpack-plugin": "5.5.0", "lodash.escaperegexp": "4.1.2", - "mini-css-extract-plugin": "2.4.3", - "nodemon": "2.0.14", + "mini-css-extract-plugin": "2.4.5", + "nodemon": "2.0.15", "null-loader": "4.0.1", - "react-refresh": "0.10.0", + "react-refresh": "0.11.0", "style-loader": "3.3.1", "svg-react-loader": "0.4.6", - "typescript": "4.4.4", + "typescript": "4.5.2", "url-loader": "4.1.1", - "webpack": "5.59.1", + "webpack": "5.64.1", "webpack-bundle-analyzer": "4.5.0", "webpack-cli": "4.9.1", - "webpack-dev-server": "4.3.1", + "webpack-dev-server": "4.5.0", "webpack-manifest-plugin": "4.0.2", "webpack-merge": "5.8.0", "webpack-retry-chunk-load-plugin": "2.2.0" diff --git a/packages/create-redwood-app/package.json b/packages/create-redwood-app/package.json index a7ca8e17375d..df475d087ddf 100644 --- a/packages/create-redwood-app/package.json +++ b/packages/create-redwood-app/package.json @@ -1,6 +1,6 @@ { "name": "create-redwood-app", - "version": "0.38.1", + "version": "0.39.2", "license": "MIT", "bin": "./dist/create-redwood-app.js", "files": [ @@ -8,12 +8,12 @@ "template" ], "dependencies": { - "@babel/node": "7.15.8", - "@babel/runtime-corejs3": "7.15.4", - "@redwoodjs/internal": "0.38.1", - "axios": "0.23.0", + "@babel/node": "7.16.0", + "@babel/runtime-corejs3": "7.16.3", + "@redwoodjs/internal": "0.39.2", + "axios": "0.24.0", "chalk": "4.1.2", - "check-node-version": "4.1.0", + "check-node-version": "4.2.1", "decompress": "4.2.1", "execa": "5.1.1", "fs-extra": "10.0.0", @@ -36,8 +36,8 @@ }, "gitHead": "8be6a35c2dfd5aaeb12d55be4f0c77eefceb7762", "devDependencies": { - "@babel/cli": "7.15.7", + "@babel/cli": "7.16.0", "jest": "27.3.1", - "typescript": "4.4.4" + "typescript": "4.5.2" } } diff --git a/packages/create-redwood-app/src/create-redwood-app.js b/packages/create-redwood-app/src/create-redwood-app.js index 086bf2ac4819..f0161cbc55ec 100644 --- a/packages/create-redwood-app/src/create-redwood-app.js +++ b/packages/create-redwood-app/src/create-redwood-app.js @@ -107,6 +107,7 @@ const createProjectTasks = ({ newAppDir, overwrite }) => { return new Promise((resolve, reject) => { const { engines } = require(path.join(templateDir, 'package.json')) + // this checks all engine requirements, including Node.js and Yarn checkNodeVersion(engines, (_error, result) => { if (result.isSatisfied) { return resolve() diff --git a/packages/create-redwood-app/template/api/package.json b/packages/create-redwood-app/template/api/package.json index 76d24ce087b6..2fd272820720 100644 --- a/packages/create-redwood-app/template/api/package.json +++ b/packages/create-redwood-app/template/api/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "private": true, "dependencies": { - "@redwoodjs/api": "0.38.1", - "@redwoodjs/graphql-server": "0.38.1" + "@redwoodjs/api": "0.39.2", + "@redwoodjs/graphql-server": "0.39.2" } } diff --git a/packages/create-redwood-app/template/package.json b/packages/create-redwood-app/template/package.json index d89670935f6a..f6ff2e3a4580 100644 --- a/packages/create-redwood-app/template/package.json +++ b/packages/create-redwood-app/template/package.json @@ -8,15 +8,15 @@ ] }, "devDependencies": { - "@redwoodjs/core": "0.38.1" + "@redwoodjs/core": "0.39.2" }, "eslintConfig": { "extends": "@redwoodjs/eslint-config", "root": true }, "engines": { - "node": ">=14.x <=16.x", - "yarn": "1.x" + "node": ">=14.17 <=16.x", + "yarn": ">=1.15 <2" }, "prisma": { "seed": "yarn rw exec seed" diff --git a/packages/create-redwood-app/template/web/package.json b/packages/create-redwood-app/template/web/package.json index b5b4cc951201..abc2f846682d 100644 --- a/packages/create-redwood-app/template/web/package.json +++ b/packages/create-redwood-app/template/web/package.json @@ -13,9 +13,9 @@ ] }, "dependencies": { - "@redwoodjs/forms": "0.38.1", - "@redwoodjs/router": "0.38.1", - "@redwoodjs/web": "0.38.1", + "@redwoodjs/forms": "0.39.2", + "@redwoodjs/router": "0.39.2", + "@redwoodjs/web": "0.39.2", "prop-types": "15.7.2", "react": "17.0.2", "react-dom": "17.0.2" diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js index 4380253e3fdd..9dd727c65f46 100644 --- a/packages/eslint-config/index.js +++ b/packages/eslint-config/index.js @@ -1,13 +1,47 @@ // This is the ESLint configuation used by Redwood projects. -const { getConfig } = require('@redwoodjs/internal') +// Shared eslint config (projects and framework) is located in ./shared.js +// Framework main config is in monorepo root ./.eslintrc.js + +const { + getConfig, + getCommonPlugins, + getWebSideDefaultBabelConfig, + getApiSideDefaultBabelConfig, +} = require('@redwoodjs/internal') const config = getConfig() +const getProjectBabelOptions = () => { + // We cant nest the web overrides inside the overrides block + // So we just take it out and put it as a separate item + // Ignoring ovverrides, as I don't think it has any impact on linting + const { overrides: _overrides, ...otherWebConfig } = + getWebSideDefaultBabelConfig() + + return { + plugins: getCommonPlugins(), + overrides: [ + { + test: ['./api/', './scripts/'], + ...getApiSideDefaultBabelConfig(), + }, + { + test: ['./web/'], + ...otherWebConfig, + }, + ], + } +} + module.exports = { extends: [ './shared.js', config.web.a11y && 'plugin:jsx-a11y/recommended', ].filter(Boolean), + parserOptions: { + requireConfigFile: false, + babelOptions: getProjectBabelOptions(), + }, overrides: [ { files: ['web/src/Routes.js', 'web/src/Routes.tsx'], diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 01848a8048c8..313e39a7577f 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -1,24 +1,25 @@ { "name": "@redwoodjs/eslint-config", - "version": "0.38.1", + "version": "0.39.2", "main": "index.js", "license": "MIT", "dependencies": { - "@babel/core": "7.15.8", - "@babel/eslint-parser": "7.15.8", + "@babel/core": "7.16.0", + "@babel/eslint-parser": "7.16.3", "@babel/eslint-plugin": "7.14.5", - "@typescript-eslint/eslint-plugin": "5.1.0", - "@typescript-eslint/parser": "5.1.0", - "eslint": "7.32.0", + "@redwoodjs/internal": "0.39.2", + "@typescript-eslint/eslint-plugin": "5.4.0", + "@typescript-eslint/parser": "5.4.0", + "eslint": "8.2.0", "eslint-config-prettier": "8.3.0", "eslint-import-resolver-babel-module": "5.3.1", "eslint-plugin-babel": "5.3.1", - "eslint-plugin-import": "2.25.2", + "eslint-plugin-import": "2.25.3", "eslint-plugin-jest-dom": "3.9.2", - "eslint-plugin-jsx-a11y": "6.4.1", + "eslint-plugin-jsx-a11y": "6.5.1", "eslint-plugin-prettier": "4.0.0", - "eslint-plugin-react": "7.26.1", - "eslint-plugin-react-hooks": "4.2.0", + "eslint-plugin-react": "7.27.1", + "eslint-plugin-react-hooks": "4.3.0", "prettier": "2.4.1" }, "repository": { @@ -31,8 +32,8 @@ }, "gitHead": "8be6a35c2dfd5aaeb12d55be4f0c77eefceb7762", "devDependencies": { - "@babel/cli": "7.15.7", + "@babel/cli": "7.16.0", "jest": "27.3.1", - "typescript": "4.4.4" + "typescript": "4.5.2" } } diff --git a/packages/eslint-config/shared.js b/packages/eslint-config/shared.js index a557a9c8bdd2..ca9afbef05d9 100644 --- a/packages/eslint-config/shared.js +++ b/packages/eslint-config/shared.js @@ -13,16 +13,6 @@ // [^1] https://eslint.org/docs/rules/ // [^2] https://www.npmjs.com/package/eslint-plugin-react#list-of-supported-rules -const findUp = require('findup-sync') - -const babelConfigPath = (cwd = process.env.RWJS_CWD ?? process.cwd()) => { - const configPath = findUp('babel.config.js', { cwd }) - if (!configPath) { - throw new Error(`Eslint-parser could not find a "babel.config.js" file`) - } - return configPath -} - module.exports = { extends: [ 'eslint:recommended', @@ -30,12 +20,8 @@ module.exports = { 'plugin:prettier/recommended', 'plugin:jest-dom/recommended', ], + // @NOTE parserOptions defined separately for project and framework parser: '@babel/eslint-parser', - parserOptions: { - babelOptions: { - configFile: babelConfigPath(), - }, - }, plugins: [ 'prettier', '@babel', diff --git a/packages/forms/package.json b/packages/forms/package.json index a1c5b11b2d7d..94b27432c88f 100644 --- a/packages/forms/package.json +++ b/packages/forms/package.json @@ -1,6 +1,6 @@ { "name": "@redwoodjs/forms", - "version": "0.38.1", + "version": "0.39.2", "files": [ "dist" ], @@ -9,9 +9,9 @@ "license": "MIT", "dependencies": { "@types/pascalcase": "1.0.1", - "core-js": "3.18.3", + "core-js": "3.19.1", "pascalcase": "1.0.0", - "react-hook-form": "7.17.5" + "react-hook-form": "7.19.5" }, "repository": { "type": "git", @@ -28,8 +28,8 @@ }, "gitHead": "8be6a35c2dfd5aaeb12d55be4f0c77eefceb7762", "devDependencies": { - "@babel/cli": "7.15.7", + "@babel/cli": "7.16.0", "jest": "27.3.1", - "typescript": "4.4.4" + "typescript": "4.5.2" } } diff --git a/packages/forms/src/FormError.tsx b/packages/forms/src/FormError.tsx index 1c45fd3a8a08..6702690e2227 100644 --- a/packages/forms/src/FormError.tsx +++ b/packages/forms/src/FormError.tsx @@ -18,6 +18,8 @@ interface RWGqlError { networkError: Error | ServerParseError | ServerError | null } +type RWGqlErrorProperties = Record> + interface FormErrorProps { error?: RWGqlError wrapperClassName?: string @@ -58,13 +60,18 @@ const FormError = ({ if (hasGraphQLError) { rootMessage = error.graphQLErrors[0].message ?? 'Something went wrong.' - const propertyMessages = - error.graphQLErrors[0].extensions?.properties?.messages + const properties = error.graphQLErrors[0].extensions?.[ + 'properties' + ] as RWGqlErrorProperties - for (const e in propertyMessages) { - propertyMessages[e].forEach((fieldError: any) => { - messages.push(`${e} ${fieldError}`) - }) + const propertyMessages = properties && properties['messages'] + + if (propertyMessages) { + for (const e in propertyMessages) { + propertyMessages[e].forEach((fieldError: any) => { + messages.push(`${e} ${fieldError}`) + }) + } } } else if (hasNetworkError) { rootMessage = rootMessage ?? 'An error has occurred' diff --git a/packages/forms/src/index.tsx b/packages/forms/src/index.tsx index 0d22c9247950..4f7045bfe25c 100644 --- a/packages/forms/src/index.tsx +++ b/packages/forms/src/index.tsx @@ -89,6 +89,7 @@ interface FieldProps< | HTMLInputElement = HTMLInputElement > { name: string + id?: string errorClassName?: string errorStyle?: React.CSSProperties className?: string @@ -467,7 +468,7 @@ const FieldError = ({ name, ...rest }: FieldErrorProps) => { } interface TextAreaFieldProps - extends Omit, 'type'>, + extends FieldProps, Omit, 'name'> {} /** @@ -516,7 +517,7 @@ const TextAreaField = forwardRef( ) interface SelectFieldProps - extends Omit, 'type'>, + extends FieldProps, Omit, 'name'> {} /** @@ -565,7 +566,7 @@ const SelectField = forwardRef( ) interface CheckboxFieldProps - extends Omit, 'type'>, + extends FieldProps, Omit, 'name' | 'type'> {} /** @@ -672,7 +673,7 @@ const INPUT_TYPES = [ type InputType = typeof INPUT_TYPES[number] interface InputFieldProps - extends Omit, 'type'>, + extends FieldProps, Omit, 'name' | 'type'> { /** * @privateRemarks diff --git a/packages/graphql-server/package.json b/packages/graphql-server/package.json index 380a8657e4ce..86212fc351d7 100644 --- a/packages/graphql-server/package.json +++ b/packages/graphql-server/package.json @@ -1,6 +1,6 @@ { "name": "@redwoodjs/graphql-server", - "version": "0.38.1", + "version": "0.39.2", "files": [ "dist" ], @@ -8,23 +8,23 @@ "types": "./dist/index.d.ts", "license": "MIT", "dependencies": { - "@envelop/core": "1.3.0", - "@envelop/depth-limit": "1.0.0", - "@envelop/disable-introspection": "1.0.0", - "@envelop/filter-operation-type": "1.0.0", - "@envelop/parser-cache": "2.0.0", - "@envelop/validation-cache": "2.0.0", - "@graphql-tools/merge": "8.2.0", - "@graphql-tools/schema": "8.3.0", - "@graphql-tools/utils": "8.5.0", - "@prisma/client": "3.3.0", - "@redwoodjs/api": "0.38.1", - "core-js": "3.18.3", - "graphql": "15.6.1", - "graphql-helix": "1.8.3", - "graphql-playground-html": "1.6.29", - "graphql-scalars": "1.12.0", - "graphql-tag": "2.12.5", + "@envelop/core": "1.6.2", + "@envelop/depth-limit": "1.2.1", + "@envelop/disable-introspection": "1.2.1", + "@envelop/filter-operation-type": "1.2.1", + "@envelop/parser-cache": "2.2.1", + "@envelop/validation-cache": "2.2.1", + "@graphql-tools/merge": "8.2.1", + "@graphql-tools/schema": "8.3.1", + "@graphql-tools/utils": "8.5.3", + "@prisma/client": "3.5.0", + "@redwoodjs/api": "0.39.2", + "core-js": "3.19.1", + "graphql": "16.0.1", + "graphql-helix": "1.10.2", + "graphql-playground-html": "1.6.30", + "graphql-scalars": "1.13.6", + "graphql-tag": "2.12.6", "lodash.merge": "4.6.2", "lodash.omitby": "4.6.0", "node-fetch": "2.6.1", @@ -36,21 +36,16 @@ "directory": "packages/graphql-server" }, "devDependencies": { - "@babel/cli": "7.15.7", - "@envelop/testing": "2.0.0", - "@envelop/types": "1.2.0", - "@redwoodjs/auth": "0.38.1", + "@babel/cli": "7.16.0", + "@envelop/testing": "2.1.1", + "@envelop/types": "1.5.1", + "@redwoodjs/auth": "0.39.2", "@types/lodash.merge": "4.6.6", "@types/lodash.omitby": "4.6.6", - "@types/uuid": "8.3.1", - "aws-lambda": "1.0.6", + "@types/uuid": "8.3.3", + "aws-lambda": "1.0.7", "jest": "27.3.1", - "typescript": "4.4.4" - }, - "jest": { - "testPathIgnorePatterns": [ - "/dist/" - ] + "typescript": "4.5.2" }, "scripts": { "build": "yarn build:js && yarn build:types", diff --git a/packages/graphql-server/src/functions/__tests__/useRequireAuth.test.ts b/packages/graphql-server/src/functions/__tests__/useRequireAuth.test.ts new file mode 100644 index 000000000000..1c1fffcda36e --- /dev/null +++ b/packages/graphql-server/src/functions/__tests__/useRequireAuth.test.ts @@ -0,0 +1,356 @@ +import type { APIGatewayEvent, Context } from 'aws-lambda' + +import { parseJWT } from '@redwoodjs/api' + +import { AuthenticationError } from '../../errors' + +type RedwoodUser = Record & { roles?: string[] } + +export const mockedAuthenticationEvent = ({ + headers = {}, +}): APIGatewayEvent => { + return { + body: 'MOCKED_BODY', + headers, + multiValueHeaders: {}, + httpMethod: 'POST', + isBase64Encoded: false, + path: '/MOCK_PATH', + pathParameters: null, + queryStringParameters: null, + multiValueQueryStringParameters: null, + stageVariables: null, + requestContext: { + accountId: 'MOCKED_ACCOUNT', + apiId: 'MOCKED_API_ID', + authorizer: { name: 'MOCKED_AUTHORIZER' }, + protocol: 'HTTP', + identity: { + accessKey: null, + accountId: null, + apiKey: null, + apiKeyId: null, + caller: null, + clientCert: null, + cognitoAuthenticationProvider: null, + cognitoAuthenticationType: null, + cognitoIdentityId: null, + cognitoIdentityPoolId: null, + principalOrgId: null, + sourceIp: '123.123.123.123', + user: null, + userAgent: null, + userArn: null, + }, + httpMethod: 'POST', + path: '/MOCK_PATH', + stage: 'MOCK_STAGE', + requestId: 'MOCKED_REQUEST_ID', + requestTimeEpoch: 1, + resourceId: 'MOCKED_RESOURCE_ID', + resourcePath: 'MOCKED_RESOURCE_PATH', + }, + resource: 'MOCKED_RESOURCE', + } +} + +const handler = async ( + _event: APIGatewayEvent, + _context: Context +): Promise => { + // @MARK + // Don't use globalContext until beforeAll runs + const globalContext = require('../../globalContext').context + const currentUser = globalContext.currentUser + + return { + statusCode: 200, + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(currentUser), + } +} + +const handlerWithError = async ( + _event: APIGatewayEvent, + _context: Context +): Promise => { + // @MARK + // Don't use globalContext until beforeAll runs + const globalContext = require('../../globalContext').context + const currentUser = globalContext.currentUser + + try { + throw new AuthenticationError('An error occurred in the handler') + + return { + statusCode: 200, + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(currentUser), + } + } catch (error) { + return { + statusCode: 500, + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ error: error.message }), + } + } +} + +const getCurrentUser = async (decoded, { token }): Promise => { + if (!decoded && token) { + return { token } + } + + const { roles } = parseJWT({ decoded }) + + if (roles) { + return { ...decoded, roles } + } + + return { ...decoded } +} + +const getCurrentUserWithError = async ( + _decoded, + { _token } +): Promise => { + throw Error('Something went wrong getting the user info') +} + +describe.only('useRequireAuth', () => { + beforeAll(() => { + process.env.DISABLE_CONTEXT_ISOLATION = '1' + }) + + afterAll(() => { + process.env.DISABLE_CONTEXT_ISOLATION = '0' + }) + + it('Updates context with output of current user', async () => { + // @MARK + // Because we use context inside useRequireAuth, we only want to import this function + // once we disable context isolation for our test + const { useRequireAuth } = require('../useRequireAuth') + + const handlerEnrichedWithAuthentication = useRequireAuth({ + handlerFn: handler, + getCurrentUser, + }) + + const headers = { + 'auth-provider': 'custom', + authorization: 'Bearer myToken', + } + + const output = await handlerEnrichedWithAuthentication( + mockedAuthenticationEvent({ headers }), + {} + ) + + const response = JSON.parse(output.body) + expect(response.token).toEqual('myToken') + }) + + it('Updates context with output of current user with roles', async () => { + // @MARK + // Because we use context inside useRequireAuth, we only want to import this function + // once we disable context isolation for our test + const { useRequireAuth } = require('../useRequireAuth') + + const handlerEnrichedWithAuthentication = useRequireAuth({ + handlerFn: handler, + getCurrentUser, + }) + + // The authorization JWT is valid and has roles in app metadata + // { + // "sub": "1234567891", + // "name": "John Editor", + // "iat": 1516239022, + // "app_metadata": { + // "roles": ["editor"] + // } + // } + const headersWithRoles = { + 'auth-provider': 'netlify', + authorization: + 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkxIiwibmFtZSI6IkpvaG4gRWRpdG9yIiwiaWF0IjoxNTE2MjM5MDIyLCJhcHBfbWV0YWRhdGEiOnsicm9sZXMiOlsiZWRpdG9yIl19fQ.Fhxe58-7BcjJDoYQAZluJYGwPTPLU0x6K5yA3zXKaX8', + } + + const output = await handlerEnrichedWithAuthentication( + mockedAuthenticationEvent({ headers: headersWithRoles }), + {} + ) // ? + + const response = JSON.parse(output.body) + expect(response.name).toEqual('John Editor') + expect(response.roles).toContain('editor') + }) + it('is 401 Unauthenticated status if an error occurs when getting current user info', async () => { + const { useRequireAuth } = require('../useRequireAuth') + + const handlerEnrichedWithAuthentication = useRequireAuth({ + handlerFn: handler, + getCurrentUser: getCurrentUserWithError, + }) + + const customHeaders = { + 'auth-provider': 'custom', + authorization: 'Bearer myToken', + } + + const response = await handlerEnrichedWithAuthentication( + mockedAuthenticationEvent({ headers: customHeaders }), + {} + ) + + expect(response.statusCode).toEqual(401) + }) + + it('is 401 Unauthenticated status if no auth headers present', async () => { + const { useRequireAuth } = require('../useRequireAuth') + + const handlerEnrichedWithAuthentication = useRequireAuth({ + handlerFn: handler, + getCurrentUser, + }) + + const missingHeaders = null + + const response = await handlerEnrichedWithAuthentication( + mockedAuthenticationEvent({ headers: missingHeaders }), + {} + ) + + expect(response.statusCode).toEqual(401) + }) + + it('is 200 status with token if the auth provider is unsupported', async () => { + const { useRequireAuth } = require('../useRequireAuth') + + const handlerEnrichedWithAuthentication = useRequireAuth({ + handlerFn: handler, + getCurrentUser, + }) + + const unsupportedProviderHeaders = { + 'auth-provider': 'this-auth-provider-is-unsupported', + authorization: 'Basic myToken', + } + + const response = await handlerEnrichedWithAuthentication( + mockedAuthenticationEvent({ headers: unsupportedProviderHeaders }), + {} + ) + + const body = JSON.parse(response.body) + + expect(response.statusCode).toEqual(200) + expect(body.token).toEqual('myToken') + }) + + it('returns 200 if decoding JWT succeeds for netlify', async () => { + const { useRequireAuth } = require('../useRequireAuth') + + const handlerEnrichedWithAuthentication = useRequireAuth({ + handlerFn: handler, + getCurrentUser, + }) + + // Note: The Bearer token JWT contains: + // { + // "sub": "1234567890", + // "name": "John Doe", + // "iat": 1516239022 + // } + + const netlifyJWTHeaders = { + 'auth-provider': 'netlify', + authorization: + 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c', + } + + const response = await handlerEnrichedWithAuthentication( + mockedAuthenticationEvent({ headers: netlifyJWTHeaders }), + {} + ) + + const body = JSON.parse(response.body) + + expect(response.statusCode).toEqual(200) + expect(body['sub']).toEqual('1234567890') + expect(body.name).toEqual('John Doe') + }) + + it('is 401 Unauthenticated status if decoding JWT fails for netlify', async () => { + const { useRequireAuth } = require('../useRequireAuth') + + const handlerEnrichedWithAuthentication = useRequireAuth({ + handlerFn: handler, + getCurrentUser, + }) + + const invalidJWTHeaders = { + 'auth-provider': 'netlify', + authorization: 'Bearer this-is-an-invalid-jwt', + } + + const response = await handlerEnrichedWithAuthentication( + mockedAuthenticationEvent({ headers: invalidJWTHeaders }), + {} + ) + + expect(response.statusCode).toEqual(401) + }) + + it('is 401 Unauthenticated status if decoding JWT fails for supabase', async () => { + const { useRequireAuth } = require('../useRequireAuth') + + const handlerEnrichedWithAuthentication = useRequireAuth({ + handlerFn: handler, + getCurrentUser, + }) + + const invalidJWTHeaders = { + 'auth-provider': 'supabase', + authorization: 'Bearer this-is-an-invalid-jwt', + } + + const response = await handlerEnrichedWithAuthentication( + mockedAuthenticationEvent({ headers: invalidJWTHeaders }), + {} + ) + + expect(response.statusCode).toEqual(401) + }) + + it('is 500 Server Error status if handler errors', async () => { + const { useRequireAuth } = require('../useRequireAuth') + + const customHeaders = { + 'auth-provider': 'custom', + authorization: 'Bearer myToken', + } + + const handlerEnrichedWithAuthentication = useRequireAuth({ + handlerFn: handlerWithError, + getCurrentUser, + }) + + const response = await handlerEnrichedWithAuthentication( + mockedAuthenticationEvent({ headers: customHeaders }), + {} + ) + + const message = JSON.parse(response.body).error + + expect(response.statusCode).toEqual(500) + expect(message).toEqual('An error occurred in the handler') + }) +}) diff --git a/packages/graphql-server/src/functions/graphql.ts b/packages/graphql-server/src/functions/graphql.ts index 8a23cbfabe82..f9fca912ee8d 100644 --- a/packages/graphql-server/src/functions/graphql.ts +++ b/packages/graphql-server/src/functions/graphql.ts @@ -19,7 +19,7 @@ import type { APIGatewayProxyResult, Context as LambdaContext, } from 'aws-lambda' -import { GraphQLError, GraphQLSchema } from 'graphql' +import { GraphQLError, GraphQLSchema, OperationTypeNode } from 'graphql' import { getGraphQLParameters, processRequest, @@ -180,7 +180,9 @@ export const createGraphQLHandler = ({ ) // Only allow execution of specific operation types plugins.push( - useFilterAllowedOperations(allowedOperations || ['mutation', 'query']) + useFilterAllowedOperations( + allowedOperations || [OperationTypeNode.QUERY, OperationTypeNode.MUTATION] + ) ) // App-defined plugins diff --git a/packages/graphql-server/src/functions/types.ts b/packages/graphql-server/src/functions/types.ts index 08a9c6a67018..76039780629b 100644 --- a/packages/graphql-server/src/functions/types.ts +++ b/packages/graphql-server/src/functions/types.ts @@ -112,6 +112,11 @@ export interface GraphQLHandlerOptions { * * By default, only allow query and mutation (ie, do not allow subscriptions). * + * An array of GraphQL's OperationTypeNode enums: + * - OperationTypeNode.SUBSCRIPTION + * - OperationTypeNode.QUERY + * - OperationTypeNode.MUTATION + * * @see https://github.com/dotansimha/envelop/tree/main/packages/plugins/filter-operation-type */ allowedOperations?: AllowedOperations diff --git a/packages/graphql-server/src/functions/useRequireAuth.ts b/packages/graphql-server/src/functions/useRequireAuth.ts new file mode 100644 index 000000000000..6d36326ce668 --- /dev/null +++ b/packages/graphql-server/src/functions/useRequireAuth.ts @@ -0,0 +1,68 @@ +import type { APIGatewayEvent, Context as LambdaContext } from 'aws-lambda' + +import { getAuthenticationContext } from '@redwoodjs/api' + +import { + getAsyncStoreInstance, + setContext, + context as globalContext, +} from '../globalContext' + +import type { GetCurrentUser } from './types' + +export const useRequireAuth = ({ + handlerFn, + getCurrentUser, +}: { + handlerFn: ( + event: APIGatewayEvent, + context: LambdaContext, + ...others: any + ) => any + getCurrentUser: GetCurrentUser +}) => { + return async ( + event: APIGatewayEvent, + context: LambdaContext, + ...rest: any + ): Promise => { + const authEnrichedFunction = async () => { + try { + let authContext = undefined + + authContext = await getAuthenticationContext({ + event: event, + context: context, + }) + + if (authContext) { + const currentUser = getCurrentUser + ? await getCurrentUser( + authContext[0], + authContext[1], + authContext[2] + ) + : null + + globalContext.currentUser = currentUser + setContext(globalContext) + } + } catch (e) { + return { + statusCode: 401, + } + } + + return await handlerFn(event, context, ...rest) + } + + if (getAsyncStoreInstance()) { + // This must be used when you're self-hosting RedwoodJS. + return getAsyncStoreInstance().run(new Map(), authEnrichedFunction) + } else { + // This is OK for AWS (Netlify/Vercel) because each Lambda request + // is handled individually. + return await authEnrichedFunction() + } + } +} diff --git a/packages/graphql-server/src/index.ts b/packages/graphql-server/src/index.ts index 9817ed56548c..510e936193e6 100644 --- a/packages/graphql-server/src/index.ts +++ b/packages/graphql-server/src/index.ts @@ -5,6 +5,7 @@ export * from './globalContext' export * from './errors' export * from './functions/graphql' +export * from './functions/useRequireAuth' export * from './makeMergedSchema/makeMergedSchema' export * from './types' diff --git a/packages/graphql-server/src/plugins/useRedwoodLogger.ts b/packages/graphql-server/src/plugins/useRedwoodLogger.ts index a08ecf6a4fd3..c240f3fd986e 100644 --- a/packages/graphql-server/src/plugins/useRedwoodLogger.ts +++ b/packages/graphql-server/src/plugins/useRedwoodLogger.ts @@ -1,5 +1,5 @@ import { Plugin } from '@envelop/core' -import { handleStreamOrSingleExecutionResult } from '@envelop/types' +import { handleStreamOrSingleExecutionResult } from '@envelop/core' import { ExecutionResult, Kind, OperationDefinitionNode } from 'graphql' import { v4 as uuidv4 } from 'uuid' diff --git a/packages/internal/package.json b/packages/internal/package.json index fd4b54e53e7d..d3c839a17472 100644 --- a/packages/internal/package.json +++ b/packages/internal/package.json @@ -1,6 +1,6 @@ { "name": "@redwoodjs/internal", - "version": "0.38.1", + "version": "0.39.2", "files": [ "dist" ], @@ -17,30 +17,30 @@ "types": "dist/index.d.ts", "license": "MIT", "dependencies": { - "@babel/parser": "7.15.8", - "@babel/plugin-transform-typescript": "7.15.8", - "@babel/register": "7.15.3", - "@babel/runtime-corejs3": "7.15.4", - "@babel/traverse": "7.15.4", - "@graphql-codegen/cli": "2.2.1", - "@graphql-codegen/core": "2.2.0", - "@graphql-codegen/schema-ast": "2.2.0", - "@graphql-codegen/typescript": "2.2.4", - "@graphql-codegen/typescript-operations": "2.1.8", - "@graphql-codegen/typescript-react-apollo": "3.1.6", - "@graphql-codegen/typescript-resolvers": "2.3.2", - "@redwoodjs/graphql-server": "0.38.1", + "@babel/parser": "7.16.4", + "@babel/plugin-transform-typescript": "7.16.1", + "@babel/register": "7.16.0", + "@babel/runtime-corejs3": "7.16.3", + "@babel/traverse": "7.16.3", + "@graphql-codegen/cli": "2.3.0", + "@graphql-codegen/core": "2.3.0", + "@graphql-codegen/schema-ast": "2.4.0", + "@graphql-codegen/typescript": "2.4.1", + "@graphql-codegen/typescript-operations": "2.2.1", + "@graphql-codegen/typescript-react-apollo": "3.2.2", + "@graphql-codegen/typescript-resolvers": "2.4.2", + "@redwoodjs/graphql-server": "0.39.2", "babel-plugin-graphql-tag": "3.3.0", - "babel-plugin-polyfill-corejs3": "0.2.5", + "babel-plugin-polyfill-corejs3": "0.4.0", "chalk": "4.1.2", - "core-js": "3.18.3", + "core-js": "3.19.1", "deepmerge": "4.2.2", - "esbuild": "0.13.8", + "esbuild": "0.13.14", "fast-glob": "3.2.7", - "findup-sync": "4.0.0", + "findup-sync": "5.0.0", "fs-extra": "10.0.0", "glob": "7.2.0", - "graphql": "15.6.1", + "graphql": "16.0.1", "kill-port": "1.6.1", "prettier": "2.4.1", "rimraf": "3.0.2", @@ -48,16 +48,16 @@ "toml": "3.0.0" }, "devDependencies": { - "@babel/cli": "7.15.7", + "@babel/cli": "7.16.0", "@types/babel-plugin-tester": "9.0.4", "@types/babel__core": "7.1.16", "@types/findup-sync": "4.0.1", "@types/fs-extra": "9.0.13", "@types/rimraf": "3.0.2", "babel-plugin-tester": "10.1.0", - "graphql-tag": "2.12.5", + "graphql-tag": "2.12.6", "jest": "27.3.1", - "typescript": "4.4.4" + "typescript": "4.5.2" }, "jest": { "testPathIgnorePatterns": [ diff --git a/packages/internal/src/__tests__/build_api.test.ts b/packages/internal/src/__tests__/build_api.test.ts index 398b6633d6c1..fadb1361ef1f 100644 --- a/packages/internal/src/__tests__/build_api.test.ts +++ b/packages/internal/src/__tests__/build_api.test.ts @@ -124,25 +124,66 @@ test('api prebuild finds babel.config.js', () => { expect(p).toEqual('api/babel.config.js') }) -test('api prebuild uses babel config', () => { +test('api prebuild uses babel config only from the api side root', () => { const p = prebuiltFiles.filter((p) => p.endsWith('dog.js')).pop() const code = fs.readFileSync(p, 'utf-8') - const firstLine = stripInlineSourceMap(code).split('\n')[0] - expect(firstLine).toMatchInlineSnapshot(`"import dog from \\"dog-bless\\";"`) + expect(code).toContain(`import dog from "dog-bless";`) + + // Should ignore root babel config + expect(code).not.toContain(`import kitty from "kitty-purr"`) +}) + +// Still a bit of a mystery why this plugin isn't transforming gql tags +test.skip('api prebuild transforms gql with `babel-plugin-graphql-tag`', () => { + // babel-plugin-graphql-tag should transpile the "gql" parts of our files, + // achieving the following: + // 1. removing the `graphql-tag` import + // 2. convert the gql syntax into graphql's ast. + // + // https://www.npmjs.com/package/babel-plugin-graphql-tag + const builtFiles = prebuildApiFiles(findApiFiles()) + const p = builtFiles + .filter((x) => typeof x !== 'undefined') + .filter((p) => p.endsWith('todos.sdl.js')) + .pop() + + const code = fs.readFileSync(p, 'utf-8') + expect(code.includes('import gql from "graphql-tag";')).toEqual(false) + expect(code.includes('gql`')).toEqual(false) }) test('Pretranspile polyfills unsupported functionality', () => { const p = prebuiltFiles.filter((p) => p.endsWith('polyfill.js')).pop() const code = fs.readFileSync(p, 'utf-8') - const firstLine = stripInlineSourceMap(code).split('\n')[0] - expect(firstLine).toMatchInlineSnapshot( - `"import \\"core-js/modules/esnext.string.replace-all.js\\";"` + expect(code).toContain( + 'import _replaceAllInstanceProperty from "@babel/runtime-corejs3/core-js/instance/replace-all"' ) }) -function stripInlineSourceMap(src: string): string { - return src - .split('\n') - .filter((line) => !line.startsWith('//# sourceMappingURL=')) - .join('\n') -} +test('Pretranspile uses corejs3 aliasing', () => { + // See https://babeljs.io/docs/en/babel-plugin-transform-runtime#core-js-aliasing + // This is because we configure the transform runtime plugin corejs + + const p = prebuiltFiles.filter((p) => p.endsWith('transform.js')).pop() + const code = fs.readFileSync(p, 'utf-8') + + // Polyfill for Symbol + expect(code).toContain( + `import _Symbol from "@babel/runtime-corejs3/core-js/symbol"` + ) + + // Polyfill for Promise + expect(code).toContain( + `import _Promise from "@babel/runtime-corejs3/core-js/promise"` + ) + + // Polyfill for .includes + expect(code).toContain( + 'import _includesInstanceProperty from "@babel/runtime-corejs3/core-js/instance/includes"' + ) + + // Polyfill for .iterator + expect(code).toContain( + `import _getIterator from "@babel/runtime-corejs3/core-js/get-iterator"` + ) +}) diff --git a/packages/internal/src/__tests__/files.test.ts b/packages/internal/src/__tests__/files.test.ts index 91a9e284386c..9db36d28d701 100644 --- a/packages/internal/src/__tests__/files.test.ts +++ b/packages/internal/src/__tests__/files.test.ts @@ -34,6 +34,7 @@ test('finds all the cells', () => { expect(p).toMatchInlineSnapshot(` Array [ "web/src/components/NumTodosCell/NumTodosCell.js", + "web/src/components/NumTodosTwoCell/NumTodosTwoCell.js", "web/src/components/TodoListCell/TodoListCell.tsx", ] `) @@ -44,28 +45,28 @@ test('finds directory named modules', () => { const p = paths.map(cleanPaths) expect(p).toMatchInlineSnapshot(` -Array [ - "api/src/directives/requireAuth/requireAuth.js", - "api/src/directives/skipAuth/skipAuth.js", - "api/src/functions/healthz/healthz.js", - "api/src/functions/nested/nested.ts", - "api/src/services/todos/todos.js", - "web/src/components/AddTodo/AddTodo.js", - "web/src/components/AddTodoControl/AddTodoControl.js", - "web/src/components/Check/Check.js", - "web/src/components/TableCell/TableCell.js", - "web/src/components/TodoItem/TodoItem.js", - "web/src/layouts/SetLayout/SetLayout.js", - "web/src/pages/BarPage/BarPage.tsx", - "web/src/pages/FatalErrorPage/FatalErrorPage.js", - "web/src/pages/FooPage/FooPage.tsx", - "web/src/pages/HomePage/HomePage.tsx", - "web/src/pages/NotFoundPage/NotFoundPage.js", - "web/src/pages/PrivatePage/PrivatePage.tsx", - "web/src/pages/TypeScriptPage/TypeScriptPage.tsx", - "web/src/pages/admin/EditUserPage/EditUserPage.jsx", -] -`) + Array [ + "api/src/directives/requireAuth/requireAuth.js", + "api/src/directives/skipAuth/skipAuth.js", + "api/src/functions/healthz/healthz.js", + "api/src/functions/nested/nested.ts", + "api/src/services/todos/todos.js", + "web/src/components/AddTodo/AddTodo.js", + "web/src/components/AddTodoControl/AddTodoControl.js", + "web/src/components/Check/Check.js", + "web/src/components/TableCell/TableCell.js", + "web/src/components/TodoItem/TodoItem.js", + "web/src/layouts/SetLayout/SetLayout.js", + "web/src/pages/BarPage/BarPage.tsx", + "web/src/pages/FatalErrorPage/FatalErrorPage.js", + "web/src/pages/FooPage/FooPage.tsx", + "web/src/pages/HomePage/HomePage.tsx", + "web/src/pages/NotFoundPage/NotFoundPage.js", + "web/src/pages/PrivatePage/PrivatePage.tsx", + "web/src/pages/TypeScriptPage/TypeScriptPage.tsx", + "web/src/pages/admin/EditUserPage/EditUserPage.jsx", + ] + `) }) test('finds all the page files', () => { @@ -99,13 +100,13 @@ test('find api functions', () => { const p = paths.map(cleanPaths) expect(p).toMatchInlineSnapshot(` -Array [ - "api/src/functions/graphql.js", - "api/src/functions/healthz/healthz.js", - "api/src/functions/nested/nested.ts", - "api/src/functions/x/index.js", -] -`) + Array [ + "api/src/functions/graphql.js", + "api/src/functions/healthz/healthz.js", + "api/src/functions/nested/nested.ts", + "api/src/functions/x/index.js", + ] + `) }) test('isFileInsideFolder works correctly (esp on windows)', () => { diff --git a/packages/internal/src/__tests__/typeDefinitions.test.ts b/packages/internal/src/__tests__/typeDefinitions.test.ts index 6c7054a150ce..e8b7816583f2 100644 --- a/packages/internal/src/__tests__/typeDefinitions.test.ts +++ b/packages/internal/src/__tests__/typeDefinitions.test.ts @@ -42,6 +42,7 @@ test('generate the correct mirror types for cells', () => { expect(p).toMatchInlineSnapshot(` Array [ ".redwood/types/mirror/web/src/components/NumTodosCell/index.d.ts", + ".redwood/types/mirror/web/src/components/NumTodosTwoCell/index.d.ts", ".redwood/types/mirror/web/src/components/TodoListCell/index.d.ts", ] `) @@ -195,3 +196,30 @@ test('mirror path for dir cells', () => { `".redwood/types/mirror/web/src/components/NumTodosCell"` ) }) + +test('respects user provided codegen config', async () => { + const customCodegenConfigPath = path.join(FIXTURE_PATH, 'codegen.yml') + // Add codegen.yml to fixture folder + fs.writeFileSync( + customCodegenConfigPath, + `config: + omitOperationSuffix: false + namingConvention: + typeNames: change-case-all#upperCase` + ) + + await generateGraphQLSchema() + const [outputPath] = await generateTypeDefGraphQLWeb() + + const gqlTypesOutput = fs.readFileSync(outputPath, 'utf-8') + + // Should be upper cased type + expect(gqlTypesOutput).toContain('ADDTODO_CREATETODOMUTATION') + + // because we override omitOPerationSuffix to false, it should append QUERY + // for __fixtures__/example-todo-main/../NumTodosCell.js + expect(gqlTypesOutput).toContain('NUMTODOSCELL_GETCOUNTQUERY') + + // Delete added codegen.yml + fs.rmSync(customCodegenConfigPath) +}) diff --git a/packages/internal/src/build/babel/api.ts b/packages/internal/src/build/babel/api.ts index 4c38dc590a88..f8adc8411be0 100644 --- a/packages/internal/src/build/babel/api.ts +++ b/packages/internal/src/build/babel/api.ts @@ -4,12 +4,51 @@ import path from 'path' import type { TransformOptions } from '@babel/core' import * as babel from '@babel/core' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore Not inside tsconfig rootdir -import pkgJson from '../../../package.json' import { getPaths } from '../../paths' -import { registerBabel, RegisterHookOptions } from './common' +import { + registerBabel, + RegisterHookOptions, + CORE_JS_VERSION, + RUNTIME_CORE_JS_VERSION, + getCommonPlugins, +} from './common' + +const TARGETS_NODE = '12.16' +// Warning! Use the minor core-js version: "corejs: '3.6'", instead of "corejs: 3", +// because we want to include the features added in the minor version. +// https://github.com/zloirock/core-js/blob/master/README.md#babelpreset-env + +// Use preset env in all cases other than actual build +// e.g. jest, console and exec - because they rely on having transpiled code +export const getApiSideBabelPresets = ( + { presetEnv } = { presetEnv: false } +) => { + return [ + '@babel/preset-typescript', + // Preset-env is required when we are not doing the transpilation with esbuild + presetEnv && [ + '@babel/preset-env', + { + targets: { + node: TARGETS_NODE, + }, + useBuiltIns: 'usage', + corejs: { + version: CORE_JS_VERSION, + // List of supported proposals: https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#ecmascript-proposals + proposals: true, + }, + exclude: [ + // Remove class-properties from preset-env, and include separately with loose + // https://github.com/webpack/webpack/issues/9708 + '@babel/plugin-proposal-class-properties', + '@babel/plugin-proposal-private-methods', + ], + }, + ], + ].filter(Boolean) as TransformOptions['presets'] +} export const getApiSideBabelPlugins = () => { const rwjsPaths = getPaths() @@ -17,22 +56,49 @@ export const getApiSideBabelPlugins = () => { // a custom "name" is supplied so that user's do not accidently overwrite // Redwood's own plugins when they specify their own. - const corejsMajorMinorVersion = pkgJson.dependencies['core-js'] - .split('.') - .splice(0, 2) - .join('.') // Gives '3.16' instead of '3.16.12' + // const corejsMajorMinorVersion = pkgJson.dependencies['core-js'] + // .split('.') + // .splice(0, 2) + // .join('.') // Gives '3.16' instead of '3.16.12' const plugins: TransformOptions['plugins'] = [ + ...getCommonPlugins(), ['@babel/plugin-transform-typescript', undefined, 'rwjs-babel-typescript'], + // [ + // 'babel-plugin-polyfill-corejs3', + // { + // method: 'usage-global', + // corejs: corejsMajorMinorVersion, + // proposals: true, // Bug: https://github.com/zloirock/core-js/issues/978#issuecomment-904839852 + // targets: { node: TARGETS_NODE }, // Netlify defaults NodeJS 12: https://answers.netlify.com/t/aws-lambda-now-supports-node-js-14/31789/3 + // }, + // 'rwjs-babel-polyfill', + // ], + + /** + * Uses modular polyfills from @babel/runtime-corejs3 but means + * @babel/runtime-corejs3 MUST be included as a dependency (esp on the api side) + * + * Before: import "core-js/modules/esnext.string.replace-all.js" + * which pollutes the global scope + * After: import _replaceAllInstanceProperty from "@babel/runtime-corejs3/core-js/instance/replace-all" + * See packages/internal/src/__tests__/build_api.test.ts for examples + * + * its important that we have @babel/runtime-corejs3 as a RUNTIME dependency on rwjs/api + * See table on https://babeljs.io/docs/en/babel-plugin-transform-runtime#corejs + * + */ [ - 'babel-plugin-polyfill-corejs3', + '@babel/plugin-transform-runtime', { - method: 'usage-global', - corejs: corejsMajorMinorVersion, - proposals: true, // Bug: https://github.com/zloirock/core-js/issues/978#issuecomment-904839852 - targets: { node: 12 }, // Netlify defaults NodeJS 12: https://answers.netlify.com/t/aws-lambda-now-supports-node-js-14/31789/3 + // https://babeljs.io/docs/en/babel-plugin-transform-runtime/#core-js-aliasing + // Setting the version here also requires `@babel/runtime-corejs3` + corejs: { version: 3, proposals: true }, + // https://babeljs.io/docs/en/babel-plugin-transform-runtime/#version + // Transform-runtime assumes that @babel/runtime@7.0.0 is installed. + // Specifying the version can result in a smaller bundle size. + version: RUNTIME_CORE_JS_VERSION, }, - 'rwjs-babel-polyfill', ], [ require('../babelPlugins/babel-plugin-redwood-src-alias').default, @@ -82,7 +148,17 @@ export const getApiSideBabelConfigPath = () => { if (fs.existsSync(p)) { return p } else { - return undefined + return false + } +} + +export const getApiSideDefaultBabelConfig = () => { + return { + presets: getApiSideBabelPresets(), + plugins: getApiSideBabelPlugins(), + configFile: getApiSideBabelConfigPath(), + babelrc: false, + ignore: ['node_modules'], } } @@ -91,12 +167,15 @@ export const registerApiSideBabelHook = ({ plugins = [], ...rest }: RegisterHookOptions = {}) => { + const defaultOptions = getApiSideDefaultBabelConfig() + registerBabel({ - configFile: getApiSideBabelConfigPath(), // incase user has a custom babel.config.js in api - babelrc: false, // Disables `.babelrc` config + ...defaultOptions, + presets: getApiSideBabelPresets({ + presetEnv: true, + }), extensions: ['.js', '.ts'], - plugins: [...getApiSideBabelPlugins(), ...plugins], - ignore: ['node_modules'], + plugins: [...defaultOptions.plugins, ...plugins], cache: false, ...rest, }) @@ -110,11 +189,11 @@ export const prebuildFile = ( plugins: TransformOptions['plugins'] ) => { const code = fs.readFileSync(srcPath, 'utf-8') + const defaultOptions = getApiSideDefaultBabelConfig() const result = babel.transform(code, { + ...defaultOptions, cwd: getPaths().api.base, - babelrc: false, // Disables `.babelrc` config - configFile: getApiSideBabelConfigPath(), filename: srcPath, // we set the sourceFile (for the sourcemap) as a correct, relative path // this is why this function (prebuildFile) must know about the dstPath diff --git a/packages/internal/src/build/babel/common.ts b/packages/internal/src/build/babel/common.ts index 1635842936f3..429f3ba2ad27 100644 --- a/packages/internal/src/build/babel/common.ts +++ b/packages/internal/src/build/babel/common.ts @@ -1,5 +1,7 @@ import type { TransformOptions, PluginItem } from '@babel/core' +const pkgJson = require('../../../package.json') + export interface RegisterHookOptions { /** * Be careful: plugins are a nested array e.g. [[plug1, x, x], [plug2, y, y]]. @@ -30,3 +32,33 @@ interface BabelRegisterOptions extends TransformOptions { export const registerBabel = (options: BabelRegisterOptions) => { require('@babel/register')(options) } + +export const CORE_JS_VERSION = pkgJson.dependencies['core-js'] + .split('.') + .slice(0, 2) + .join('.') // Produces: 3.12, instead of 3.12.1 + +if (!CORE_JS_VERSION) { + throw new Error( + 'RedwoodJS Project Babel: Could not determine core-js version.' + ) +} + +export const RUNTIME_CORE_JS_VERSION = + pkgJson.dependencies['@babel/runtime-corejs3'] +if (!RUNTIME_CORE_JS_VERSION) { + throw new Error( + 'RedwoodJS Project Babel: Could not determine core-js runtime version' + ) +} + +export const getCommonPlugins = () => { + return [ + ['@babel/plugin-proposal-class-properties', { loose: true }], + // Note: The private method loose mode configuration setting must be the + // same as @babel/plugin-proposal class-properties. + // (https://babeljs.io/docs/en/babel-plugin-proposal-private-methods#loose) + ['@babel/plugin-proposal-private-methods', { loose: true }], + ['@babel/plugin-proposal-private-property-in-object', { loose: true }], + ] +} diff --git a/packages/internal/src/build/babel/web.ts b/packages/internal/src/build/babel/web.ts index d7cfb1e57b5b..1b7dfedfe274 100644 --- a/packages/internal/src/build/babel/web.ts +++ b/packages/internal/src/build/babel/web.ts @@ -1,40 +1,222 @@ import fs from 'fs' import path from 'path' +import type { TransformOptions } from '@babel/core' + import { getPaths } from '../../paths' -import { registerBabel, RegisterHookOptions } from './common' +import { + CORE_JS_VERSION, + getCommonPlugins, + registerBabel, + RegisterHookOptions, +} from './common' + +export const getWebSideBabelPlugins = () => { + const rwjsPaths = getPaths() + + const plugins: TransformOptions['plugins'] = [ + ...getCommonPlugins(), + // === Import path handling + [ + 'babel-plugin-module-resolver', + { + alias: { + src: + // Jest monorepo and multi project runner is not correctly determining + // the `cwd`: https://github.com/facebook/jest/issues/7359 + process.env.NODE_ENV !== 'test' ? './src' : rwjsPaths.web.src, + }, + root: [rwjsPaths.web.base], + cwd: 'packagejson', + loglevel: 'silent', // to silence the unnecessary warnings + }, + 'rwjs-module-resolver', + ], + [ + require('../babelPlugins/babel-plugin-redwood-src-alias').default, + { + srcAbsPath: rwjsPaths.web.src, + }, + 'rwjs-babel-src-alias', + ], + [ + require('../babelPlugins/babel-plugin-redwood-directory-named-import') + .default, + undefined, + 'rwjs-directory-named-modules', + ], + + // === Auto imports, and transforms + [ + 'babel-plugin-auto-import', + { + declarations: [ + { + // import { React } from 'react' + default: 'React', + path: 'react', + }, + { + // import PropTypes from 'prop-types' + default: 'PropTypes', + path: 'prop-types', + }, + { + // import gql from 'graphql-tag' + default: 'gql', + path: 'graphql-tag', + }, + ], + }, + 'rwjs-web-auto-import', + ], + ['babel-plugin-graphql-tag', undefined, 'rwjs-babel-graphql-tag'], + [ + 'inline-react-svg', + { + svgo: { + plugins: [ + { + name: 'removeAttrs', + params: { attrs: '(data-name)' }, + }, + // Otherwise having style="xxx" breaks + 'convertStyleToAttrs', + ], + }, + }, + 'rwjs-inline-svg', + ], + + // === Handling redwood "magic" + ].filter(Boolean) + + return plugins +} + +export const getWebSideOverrides = ( + { staticImports } = { + staticImports: false, + } +) => { + const overrides = [ + { + test: /.+Cell.(js|tsx)$/, + plugins: [require('../babelPlugins/babel-plugin-redwood-cell').default], + }, + // Automatically import files in `./web/src/pages/*` in to + // the `./web/src/Routes.[ts|jsx]` file. + { + test: ['./web/src/Routes.js', './web/src/Routes.tsx'], + plugins: [ + [ + require('../babelPlugins/babel-plugin-redwood-routes-auto-loader') + .default, + { + useStaticImports: staticImports, + }, + ], + ], + }, + // ** Files ending in `Cell.mock.[js,ts]` ** + // Automatically determine keys for saving and retrieving mock data. + // Only required for storybook and jest + process.env.NODE_ENV !== 'production' && { + test: /.+Cell.mock.(js|ts)$/, + plugins: [ + require('../babelPlugins/babel-plugin-redwood-mock-cell-data').default, + ], + }, + ].filter(Boolean) + + return overrides as TransformOptions[] +} + +export const getWebSideBabelPresets = () => { + let reactPresetConfig = undefined + + // This is a special case, where @babel/preset-react needs config + // And using extends doesn't work + if (getWebSideBabelConfigPath()) { + const userProjectConfig = require(getWebSideBabelConfigPath() as string) + + userProjectConfig.presets?.forEach( + (preset: TransformOptions['presets']) => { + // If it isn't a preset with special config ignore it + if (!Array.isArray(preset)) { + return + } -// TODO: move web side babel plugins here too when we pretranspile web side -// and export getWebSideBabelPlugins + const [presetName, presetConfig] = preset + if (presetName === '@babel/preset-react') { + reactPresetConfig = presetConfig + } + } + ) + } + return [ + ['@babel/preset-react', reactPresetConfig], + ['@babel/preset-typescript', undefined, 'rwjs-babel-preset-typescript'], + [ + '@babel/preset-env', + { + // the targets are set in /web/package.json + useBuiltIns: 'usage', + corejs: { + version: CORE_JS_VERSION, + proposals: true, + }, + exclude: [ + // Remove class-properties from preset-env, and include separately + // https://github.com/webpack/webpack/issues/9708 + '@babel/plugin-proposal-class-properties', + '@babel/plugin-proposal-private-methods', + ], + }, + 'rwjs-babel-preset-env', + ], + ] +} export const getWebSideBabelConfigPath = () => { - // NOTE: web side has .babel.rc still, not babel.config.js - // This should be handled in the prebuild for web PR - const babelRcPath = path.join(getPaths().web.base, '.babelrc.js') - if (fs.existsSync(babelRcPath)) { - return babelRcPath + const customBabelConfig = path.join(getPaths().web.base, 'babel.config.js') + if (fs.existsSync(customBabelConfig)) { + return customBabelConfig } else { return undefined } } +export const getWebSideDefaultBabelConfig = () => { + // NOTE: + // Even though we specify the config file, babel will still search for .babelrc + // and merge them because we have specified the filename property, unless babelrc = false + + return { + presets: getWebSideBabelPresets(), + plugins: getWebSideBabelPlugins(), + overrides: getWebSideOverrides(), + extends: getWebSideBabelConfigPath(), + babelrc: false, + ignore: ['node_modules'], + } +} + // Used in prerender only currently export const registerWebSideBabelHook = ({ plugins = [], - overrides, + overrides = [], }: RegisterHookOptions = {}) => { - // NOTE: - // Even though we specify the config file, babel will still search for .babelrc - // and merge them because we have specified the filename property, unless babelrc = false + const defaultOptions = getWebSideDefaultBabelConfig() registerBabel({ + ...defaultOptions, root: getPaths().base, - configFile: getWebSideBabelConfigPath(), // incase user has a custom babel.config.js in api - babelrc: false, extensions: ['.js', '.ts', '.tsx', '.jsx'], - plugins: [...plugins], - ignore: [/node_modules/], + plugins: [...defaultOptions.plugins, ...plugins], cache: false, - overrides, + // We only register for prerender currently + // Static importing pages makes sense + overrides: [...getWebSideOverrides({ staticImports: true }), ...overrides], }) } diff --git a/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/cell/cell-with-commented-exports/output.js b/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/cell/cell-with-commented-exports/output.js index f7bb3a6af1e9..a1f6717ba472 100644 --- a/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/cell/cell-with-commented-exports/output.js +++ b/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/cell/cell-with-commented-exports/output.js @@ -28,4 +28,5 @@ export default createCell({ Loading, Failure, Success, + displayName: 'code', }) diff --git a/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/cell/cell-with-required-exports/output.js b/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/cell/cell-with-required-exports/output.js index 419a792d8a3c..90cb307b3cd8 100644 --- a/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/cell/cell-with-required-exports/output.js +++ b/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/cell/cell-with-required-exports/output.js @@ -30,4 +30,5 @@ export default createCell({ Empty, Failure, Success, + displayName: 'code', }) diff --git a/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/mock-cell-data/output_NumTodosCell.mock.js b/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/mock-cell-data/output_NumTodosCell.mock.js index b5a14f6d94f5..9b8a12a0e130 100644 --- a/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/mock-cell-data/output_NumTodosCell.mock.js +++ b/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/mock-cell-data/output_NumTodosCell.mock.js @@ -1,3 +1,5 @@ -export const standard = mockGraphQLQuery('NumTodosCell_GetCount', { - todosCount: 42, +export const standard = mockGraphQLQuery('NumTodosCell_GetCount', () => { + return { + todosCount: 42, + } }) diff --git a/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/mock-cell-data/output_NumTodosTwoCell.mock.js b/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/mock-cell-data/output_NumTodosTwoCell.mock.js new file mode 100644 index 000000000000..063b05b4ab05 --- /dev/null +++ b/packages/internal/src/build/babelPlugins/__tests__/__fixtures__/mock-cell-data/output_NumTodosTwoCell.mock.js @@ -0,0 +1,7 @@ +export const standard = mockGraphQLQuery('NumTodosCell_GetCount', () => { + return { + todosCount: 42, + } +}) +export const justAnotherExport = 'bazinga' +export const please = () => 'leave_me_alone' diff --git a/packages/internal/src/build/babelPlugins/__tests__/babel-plugin-redwood-mock-cell-data.test.ts b/packages/internal/src/build/babelPlugins/__tests__/babel-plugin-redwood-mock-cell-data.test.ts index aa96f726e648..3ff9149fbcca 100644 --- a/packages/internal/src/build/babelPlugins/__tests__/babel-plugin-redwood-mock-cell-data.test.ts +++ b/packages/internal/src/build/babelPlugins/__tests__/babel-plugin-redwood-mock-cell-data.test.ts @@ -5,7 +5,7 @@ import pluginTester from 'babel-plugin-tester' import plugin from '../babel-plugin-redwood-mock-cell-data' describe('babel plugin redwood mock cell data', () => { - const __fixtures__ = path.resolve(__dirname, '../../../../../../__fixtures__') //? + const __fixtures__ = path.resolve(__dirname, '../../../../../../__fixtures__') pluginTester({ plugin, @@ -30,6 +30,16 @@ describe('babel plugin redwood mock cell data', () => { '__fixtures__/mock-cell-data/output_NumTodosCell.mock.js' ), }, + 'exporting a function declaration': { + fixture: path.join( + __fixtures__, + 'example-todo-main/web/src/components/NumTodosTwoCell/NumTodosTwoCell.mock.js' + ), + outputFixture: path.join( + __dirname, + '__fixtures__/mock-cell-data/output_NumTodosTwoCell.mock.js' + ), + }, }, }) }) diff --git a/packages/internal/src/build/babelPlugins/babel-plugin-redwood-cell.ts b/packages/internal/src/build/babelPlugins/babel-plugin-redwood-cell.ts index 2f514666f0f5..96a6f6ac66d3 100644 --- a/packages/internal/src/build/babelPlugins/babel-plugin-redwood-cell.ts +++ b/packages/internal/src/build/babelPlugins/babel-plugin-redwood-cell.ts @@ -1,3 +1,5 @@ +import { parse } from 'path' + import type { PluginObj, types } from '@babel/core' // This wraps a file that has a suffix of `Cell` in Redwood's `createCell` higher @@ -6,13 +8,14 @@ import type { PluginObj, types } from '@babel/core' // ```js // import { createCell } from '@redwoodjs/web' // -// export default createCell({ QUERY, Loading, Success, Failure, Empty, beforeQuery, afterQuery }) +// export default createCell({ QUERY, Loading, Success, Failure, isEmpty, Empty, beforeQuery, afterQuery, displayName }) // ``` // A cell can export the declarations below. const EXPECTED_EXPORTS_FROM_CELL = [ 'beforeQuery', 'QUERY', + 'isEmpty', 'afterQuery', 'Loading', 'Success', @@ -79,20 +82,32 @@ export default function ({ types: t }: { types: typeof types }): PluginObj { ) // Insert at the bottom of the file: - // + export default createCell({ QUERY?, Loading?, Succes?, Failure?, Empty?, beforeQuery?, afterQuery? }) + // + export default createCell({ QUERY?, Loading?, Succes?, Failure?, Empty?, beforeQuery?, isEmpty, afterQuery?, displayName? }) path.node.body.push( t.exportDefaultDeclaration( t.callExpression(t.identifier('createCell'), [ - t.objectExpression( - exportNames.map((name) => + t.objectExpression([ + ...exportNames.map((name) => t.objectProperty( t.identifier(name), t.identifier(name), false, true ) - ) - ), + ), + /** + * Add the `displayName` property + * so we can name the Cell after the filename. + */ + t.objectProperty( + t.identifier('displayName'), + t.stringLiteral( + parse(this.file.opts.filename as string).name + ), + false, + true + ), + ]), ]) ) ) diff --git a/packages/internal/src/build/babelPlugins/babel-plugin-redwood-mock-cell-data.ts b/packages/internal/src/build/babelPlugins/babel-plugin-redwood-mock-cell-data.ts index 0ba5228a5054..4b670486689a 100644 --- a/packages/internal/src/build/babelPlugins/babel-plugin-redwood-mock-cell-data.ts +++ b/packages/internal/src/build/babelPlugins/babel-plugin-redwood-mock-cell-data.ts @@ -11,6 +11,16 @@ export default function ({ types: t }: { types: typeof types }): PluginObj { let nodesToRemove: any[] = [] let nodesToInsert: any[] = [] + // export const standard = ${ex} + const createExportStandard = ( + ex: types.CallExpression | types.ArrowFunctionExpression + ) => + t.exportNamedDeclaration( + t.variableDeclaration('const', [ + t.variableDeclarator(t.identifier('standard'), ex), + ]) + ) + return { name: 'babel-plugin-redwood-mock-cell-data', @@ -40,27 +50,69 @@ export default function ({ types: t }: { types: typeof types }): PluginObj { // 4. The Cell has a operation name for the QUERY export. const d = p.node.declaration - if (d?.type !== 'VariableDeclaration') { - return - } - - const vd = d.declarations[0] as types.VariableDeclarator - const id = vd.id as types.Identifier - const exportName = id?.name - if (exportName !== 'standard') { - return - } + const filename = state.file.opts.filename - const init = vd?.init - if (!init) { - return + let mockFunction + + // Only auto-mock the standard export + + switch (d?.type) { + case 'VariableDeclaration': + // If its an arrow function + // or export standard = function() + { + const standardMockExport = d.declarations[0] + const id = standardMockExport.id as types.Identifier + const exportName = id?.name + + if (exportName !== 'standard') { + return + } + + const mockFunctionMaybe = standardMockExport?.init + if (!mockFunctionMaybe) { + return + } + + // If they're not exporting a function, blow up + if ( + mockFunctionMaybe.type !== 'ArrowFunctionExpression' && + mockFunctionMaybe.type !== 'FunctionExpression' + ) { + throw new Error( + `\n \n Mock Error: You must export your standard mock as a function \n \n` + ) + } + + mockFunction = mockFunctionMaybe + } + break + + case 'FunctionDeclaration': + { + const exportName = d.id?.name + + if (exportName !== 'standard') { + return + } + + // if its a normal function export e.g. export function standard() + // convert the named FunctionDeclaration to an arrow func i.e. (..args)=>{//originalbody here} + mockFunction = t.arrowFunctionExpression(d.params, d.body) + } + break + + default: + // If it isn't a mock function called standard, ignore it + return } // Find the model of the Cell that is in the same directory. - const filename = state.file.opts.filename const dir = URL_file(path.dirname(state.file.opts.filename)) const project = getProject(getBaseDirFromFile(filename)) - const cell = project.cells.find((x: any) => x.uri.startsWith(dir)) + const cell = project.cells.find((path: { uri: string }) => { + return path.uri.startsWith(dir) + }) if (!cell || !cell?.filePath) { return @@ -70,20 +122,10 @@ export default function ({ types: t }: { types: typeof types }): PluginObj { return } - // export const standard - const exportStandard = ( - ex: types.CallExpression | types.ArrowFunctionExpression - ) => - t.exportNamedDeclaration( - t.variableDeclaration('const', [ - t.variableDeclarator(t.identifier('standard'), ex), - ]) - ) - - // mockGraphQLQuery(, ) + // mockGraphQLQuery(, ) const mockGraphQLCall = t.callExpression( t.identifier('mockGraphQLQuery'), - [t.stringLiteral(cell.queryOperationName), init] + [t.stringLiteral(cell.queryOperationName), mockFunction] ) // Delete original "export const standard" @@ -105,7 +147,7 @@ export default function ({ types: t }: { types: typeof types }): PluginObj { nodesToInsert = [ ...nodesToInsert, importAfterQuery, - exportStandard( + createExportStandard( t.arrowFunctionExpression( [], t.callExpression(t.identifier('afterQuery'), [ @@ -116,7 +158,10 @@ export default function ({ types: t }: { types: typeof types }): PluginObj { ] } else { // + export const standard = mo - nodesToInsert = [...nodesToInsert, exportStandard(mockGraphQLCall)] + nodesToInsert = [ + ...nodesToInsert, + createExportStandard(mockGraphQLCall), + ] } }, }, diff --git a/packages/internal/src/generate/graphqlSchema.ts b/packages/internal/src/generate/graphqlSchema.ts index 97a6501ac310..cd90a710a07a 100644 --- a/packages/internal/src/generate/graphqlSchema.ts +++ b/packages/internal/src/generate/graphqlSchema.ts @@ -45,7 +45,7 @@ export const generateGraphQLSchema = async () => { // This tries to clean up the output of those errors. console.error(e) console.error(chalk.red('Error parsing SDLs or Schema')) - for (const error of e?.errors) { + for (const error of e.errors ?? []) { console.error(error.details) } diff --git a/packages/internal/src/generate/templates/web-routerRoutes.d.ts.template b/packages/internal/src/generate/templates/web-routerRoutes.d.ts.template index ed3258b2cf74..9be9a4069fda 100644 --- a/packages/internal/src/generate/templates/web-routerRoutes.d.ts.template +++ b/packages/internal/src/generate/templates/web-routerRoutes.d.ts.template @@ -20,33 +20,33 @@ ${routes.map( } } -type ParamType = constraint extends 'Int' +type ParamType = match extends 'Int' ? number - : constraint extends 'Boolean' + : match extends 'Boolean' ? boolean - : constraint extends 'Float' + : match extends 'Float' ? number : string // Path string parser for Redwood Routes type ParsedParams = // {a:Int}/[...moar] - ${"PartialRoute extends `{${infer Param}:${infer Constraint}}/${infer Rest}`"} + ${"PartialRoute extends `{${infer Param}:${infer Match}}/${infer Rest}`"} ? // check for greedy match e.g. {b}/{c:Int} - // Param = b}/{c, Rest2 = {c, Constrait = Int so we reconstruct the old one {c + : + Int + } + // Param = b}/{c, Rest2 = {c, Match = Int so we reconstruct the old one {c + : + Int + } ${"Param extends `${infer Param2}}/${infer Rest2}`"} ? { [ParamName in Param2]: string } & - ${"ParsedParams<`${Rest2}:${Constraint}}`> &"} + ${"ParsedParams<`${Rest2}:${Match}}`> &"} ${"ParsedParams<`${Rest}`>"} - ${": { [Entry in Param]: ParamType } & ParsedParams<`${Rest}`>"} - : // has type, but at the end e.g.{d:Int} - ${"PartialRoute extends `{${infer Param}:${infer Constraint}}`"} + ${": { [Entry in Param]: ParamType } & ParsedParams<`${Rest}`>"} + : // has type, but at the end e.g. {d:Int} + ${"PartialRoute extends `{${infer Param}:${infer Match}}`"} ? // Greedy match order 2 ${"Param extends `${infer Param2}}/${infer Rest2}`"} ? { [ParamName in Param2]: string } & - ${"ParsedParams<`${Rest2}:${Constraint}}`>"} - : { [Entry in Param]: ParamType } - : // no type, but has stuff ater it {c}/{d} + ${"ParsedParams<`${Rest2}:${Match}}`>"} + : { [Entry in Param]: ParamType } + : // no type, but has stuff after it, e.g. {c}/{d} ${"PartialRoute extends `{${infer Param}}/${infer Rest}`"} ${"? { [ParamName in Param]: string } & ParsedParams<`${Rest}`>"} : // last one with no type e.g. {d} diff --git a/packages/internal/src/generate/typeDefinitions.ts b/packages/internal/src/generate/typeDefinitions.ts index f8a5a4b5463e..fa93d8c1c3cc 100644 --- a/packages/internal/src/generate/typeDefinitions.ts +++ b/packages/internal/src/generate/typeDefinitions.ts @@ -1,7 +1,8 @@ import fs from 'fs' import path from 'path' -import { generate } from '@graphql-codegen/cli' +import { generate, loadCodegenConfig } from '@graphql-codegen/cli' +import type { Types as CodegenTypes } from '@graphql-codegen/plugin-helpers' import { getCellGqlQuery, fileToAst } from '../ast' import { findCells, findDirectoryNamedModules } from '../files' @@ -191,15 +192,10 @@ export const generateTypeDefGlobalContext = () => { return writeTypeDefIncludeFile('api-globalContext.d.ts.template') } -// TODO: We're going to have to give the user an entry point into this -// configuration file because they may have to define other scalars -// and they may want to generate a custom side. :shrug -// TODO: Figure out how to get a list of scalars from the api-side so that -// they don't get out of sync. export const generateTypeDefGraphQLApi = async () => { try { const rwjsPaths = getPaths() - const f = await generateTypeDefGraphQL({ + const f = await runCodegenGraphQL({ [path.join(rwjsPaths.api.types, 'graphql.d.ts')]: { plugins: [ { @@ -219,57 +215,75 @@ export const generateTypeDefGraphQLApi = async () => { } export const generateTypeDefGraphQLWeb = async () => { - if (findCells().length) { - const rwjsPaths = getPaths() - try { - const f = await generateTypeDefGraphQL({ - [path.join(rwjsPaths.web.types, 'graphql.d.ts')]: { - documents: './web/src/**/!(*.d).{ts,tsx,js,jsx}', - plugins: [ - { - typescript: { - enumsAsTypes: true, - }, + const rwjsPaths = getPaths() + try { + const f = await runCodegenGraphQL({ + [path.join(rwjsPaths.web.types, 'graphql.d.ts')]: { + documents: './web/src/**/!(*.d).{ts,tsx,js,jsx}', + plugins: [ + { + typescript: { + enumsAsTypes: true, }, - 'typescript-operations', - ], - }, - }) - return f - } catch (e) { - console.error() - console.error('Error: Could not generate GraphQL type definitions (web)') - console.error() - return [] - } - } else { + }, + 'typescript-operations', + ], + }, + }) + return f + } catch (e) { + console.error() + console.error('Error: Could not generate GraphQL type definitions (web)') + console.error() return [] } } -const generateTypeDefGraphQL = async (generates: Record) => { +/** + * This is the function used internally by generateTypeDefGraphQLApi and generateTypeDefGraphQLWeb + * And contains the base configuration for generating gql types with codegen + * + * Named a little differently to make it easier to spot + */ + +// CLI generate also takes cwd +type CodegenConfig = CodegenTypes.Config & { cwd: string } + +const runCodegenGraphQL = async ( + generates: Record +) => { const rwjsPaths = getPaths() type GenerateResponse = { filename: string; contents: string }[] - // https://www.graphql-code-generator.com/docs/getting-started/programmatic-usage#using-the-cli-instead-of-core - const f: GenerateResponse = await generate( - { - cwd: rwjsPaths.base, - schema: rwjsPaths.generated.schema, - config: { - scalars: { - DateTime: 'string', - Date: 'string', - JSON: 'Record', - JSONObject: 'Record', - Time: 'string', - }, - omitOperationSuffix: true, // prevent type names being PetQueryQuery, RW generators already append Query/Mutation/etc. + + const codegenConfig: CodegenConfig = { + cwd: rwjsPaths.base, + schema: rwjsPaths.generated.schema, + config: { + namingConvention: 'keep', // to allow camelCased query names + scalars: { + // We need these, otherwise these scalars are mapped to any + // @TODO is there a way we can use scalars defined in packages/graphql-server/src/rootSchema.ts + DateTime: 'string', + Date: 'string', + JSON: 'Record', + JSONObject: 'Record', + Time: 'string', }, - // @ts-expect-error TODO: Figure out how to get the proper type here. - generates, - silent: false, - errorsOnly: true, + omitOperationSuffix: true, // prevent type names being PetQueryQuery, RW generators already append Query/Mutation/etc }, + generates, + silent: false, + errorsOnly: true, + } + + const userCodegenConfig = await loadCodegenConfig({ + configFilePath: rwjsPaths.base, + }) + + // https://www.graphql-code-generator.com/docs/getting-started/programmatic-usage#using-the-cli-instead-of-core + const f: GenerateResponse = await generate( + // Merge in user codegen config with the rw built-in one + { ...codegenConfig, ...userCodegenConfig?.config }, true ) return f.map(({ filename }) => filename) diff --git a/packages/internal/src/index.ts b/packages/internal/src/index.ts index 677f29f3d3d9..ed3561c705c2 100644 --- a/packages/internal/src/index.ts +++ b/packages/internal/src/index.ts @@ -12,3 +12,4 @@ export * from './validateSchema' // Babel helpers export * from './build/babel/api' export * from './build/babel/web' +export * from './build/babel/common' diff --git a/packages/internal/src/paths.ts b/packages/internal/src/paths.ts index 20b9ab2510ac..1bf913c78172 100644 --- a/packages/internal/src/paths.ts +++ b/packages/internal/src/paths.ts @@ -21,6 +21,7 @@ export interface NodeTargetPaths { config: string dist: string types: string + models: string } export interface BrowserTargetPaths { @@ -38,6 +39,7 @@ export interface BrowserTargetPaths { postcss: string storybookConfig: string storybookPreviewConfig: string + storybookManagerConfig: string dist: string types: string } @@ -78,6 +80,7 @@ const PATH_API_DIR_FUNCTIONS = 'api/src/functions' const PATH_RW_SCRIPTS = 'scripts' const PATH_API_DIR_GRAPHQL = 'api/src/graphql' const PATH_API_DIR_CONFIG = 'api/src/config' +const PATH_API_DIR_MODELS = 'api/src/models' const PATH_API_DIR_LIB = 'api/src/lib' const PATH_API_DIR_GENERATORS = 'api/generators' const PATH_API_DIR_SERVICES = 'api/src/services' @@ -96,6 +99,7 @@ const PATH_WEB_DIR_CONFIG_WEBPACK = 'web/config/webpack.config.js' const PATH_WEB_DIR_CONFIG_POSTCSS = 'web/config/postcss.config.js' const PATH_WEB_DIR_CONFIG_STORYBOOK_CONFIG = 'web/config/storybook.config.js' const PATH_WEB_DIR_CONFIG_STORYBOOK_PREVIEW = 'web/config/storybook.preview.js' +const PATH_WEB_DIR_CONFIG_STORYBOOK_MANAGER = 'web/config/storybook.manager.js' const PATH_WEB_DIR_DIST = 'web/dist' @@ -181,6 +185,7 @@ export const getPaths = (BASE_DIR: string = getBaseDir()): Paths => { src: path.join(BASE_DIR, PATH_API_DIR_SRC), dist: path.join(BASE_DIR, 'api/dist'), types: path.join(BASE_DIR, 'api/types'), + models: path.join(BASE_DIR, PATH_API_DIR_MODELS), }, web: { @@ -204,6 +209,10 @@ export const getPaths = (BASE_DIR: string = getBaseDir()): Paths => { BASE_DIR, PATH_WEB_DIR_CONFIG_STORYBOOK_PREVIEW ), + storybookManagerConfig: path.join( + BASE_DIR, + PATH_WEB_DIR_CONFIG_STORYBOOK_MANAGER + ), dist: path.join(BASE_DIR, PATH_WEB_DIR_DIST), types: path.join(BASE_DIR, 'web/types'), }, diff --git a/packages/internal/tsconfig.json b/packages/internal/tsconfig.json index abab26201af5..04de4467b027 100644 --- a/packages/internal/tsconfig.json +++ b/packages/internal/tsconfig.json @@ -6,7 +6,7 @@ "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo", "outDir": "dist", }, - "include": ["src/**/*", "./ambient.d.ts", "src/../package.json"], + "include": ["src/**/*", "./ambient.d.ts"], "references": [ { "path": "../graphql-server" }, // ODD, but we do this so we dont have to have internal as a runtime dependency ] diff --git a/packages/prerender/ambient.d.ts b/packages/prerender/ambient.d.ts index 34975766a2e1..6baebaa4553e 100644 --- a/packages/prerender/ambient.d.ts +++ b/packages/prerender/ambient.d.ts @@ -8,24 +8,22 @@ declare global { var __REDWOOD__HELMET_CONTEXT: { helmet?: HelmetData } var __REDWOOD__APP_TITLE: string var __REDWOOD__USE_AUTH: () => AuthContextInterface - - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - var __REDWOOD__API_PROXY_PATH: string /** - * FQDN or absolute path to the GraphQL serverless function, without the trailing slash. + * URL or absolute path to the GraphQL serverless function, without the trailing slash. * Example: `./redwood/functions/graphql` or `https://api.redwoodjs.com/graphql` */ var RWJS_API_GRAPHQL_URL: string /** - * FQDN or absolute path to the DbAuth serverless function, without the trailing slash. + * URL or absolute path to the DbAuth serverless function, without the trailing slash. * Example: `./redwood/functions/auth` or `https://api.redwoodjs.com/auth` **/ var RWJS_API_DBAUTH_URL: string - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - var __REDWOOD__API_URL: string - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - var __REDWOOD__API_GRAPHQL_SERVER_PATH: string + /** + * URL or absolute path to serverless functions, without the trailing slash. + * Example: `./redwood/functions/` or `https://api.redwoodjs.com/` + **/ + var RWJS_API_URL: string namespace NodeJS { interface Global { @@ -34,12 +32,12 @@ declare global { __REDWOOD__APP_TITLE: string __REDWOOD__USE_AUTH: () => AuthContextInterface - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - __REDWOOD__API_PROXY_PATH: string - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - __REDWOOD__API_URL: string - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - __REDWOOD__API_GRAPHQL_SERVER_PATH: string + /** URL or absolute path to the GraphQL serverless function */ + RWJS_API_GRAPHQL_URL: string + /** URL or absolute path to the DbAuth serverless function */ + RWJS_API_DBAUTH_URL: string + /** URL or absolute path to serverless functions */ + RWJS_API_URL: string } } } diff --git a/packages/prerender/package.json b/packages/prerender/package.json index a0e2c5f043fd..aec9a78c1dbd 100644 --- a/packages/prerender/package.json +++ b/packages/prerender/package.json @@ -1,7 +1,7 @@ { "name": "@redwoodjs/prerender", "description": "RedwoodJS prerender", - "version": "0.38.1", + "version": "0.39.2", "license": "MIT", "files": [ "dist", @@ -14,14 +14,14 @@ "react-dom": "17.0.2" }, "dependencies": { - "@redwoodjs/auth": "0.38.1", - "@redwoodjs/internal": "0.38.1", - "@redwoodjs/router": "0.38.1", - "@redwoodjs/structure": "0.38.1", - "@redwoodjs/web": "0.38.1", + "@redwoodjs/auth": "0.39.2", + "@redwoodjs/internal": "0.39.2", + "@redwoodjs/router": "0.39.2", + "@redwoodjs/structure": "0.39.2", + "@redwoodjs/web": "0.39.2", "babel-plugin-ignore-html-and-css-imports": "0.1.0", "cheerio": "1.0.0-rc.10", - "mime-types": "2.1.33", + "mime-types": "2.1.34", "node-fetch": "2.6.1" }, "repository": { @@ -44,10 +44,10 @@ }, "gitHead": "8be6a35c2dfd5aaeb12d55be4f0c77eefceb7762", "devDependencies": { - "@babel/cli": "7.15.7", + "@babel/cli": "7.16.0", "@types/mime-types": "2.1.1", "babel-plugin-tester": "10.1.0", "jest": "27.3.1", - "typescript": "4.4.4" + "typescript": "4.5.2" } } diff --git a/packages/prerender/src/runPrerender.tsx b/packages/prerender/src/runPrerender.tsx index 86566c8e84a3..e18a09a3485e 100644 --- a/packages/prerender/src/runPrerender.tsx +++ b/packages/prerender/src/runPrerender.tsx @@ -16,8 +16,6 @@ interface PrerenderParams { routerPath: string // e.g. /about, /dashboard/me } -const rwWebPaths = getPaths().web - export const runPrerender = async ({ routerPath, }: PrerenderParams): Promise => { @@ -28,20 +26,6 @@ export const runPrerender = async ({ { plugins: [ ['ignore-html-and-css-imports'], // webpack/postcss handles CSS imports - [ - 'babel-plugin-module-resolver', - { - alias: { - src: rwWebPaths.src, - }, - root: [getPaths().web.base], - // needed for respecting users' custom aliases in web/.babelrc - // See https://github.com/tleunen/babel-plugin-module-resolver/blob/master/DOCS.md#cwd - cwd: 'babelrc', - loglevel: 'silent', // to silence the unnecessary warnings - }, - 'prerender-module-resolver', // add this name, so it doesn't overwrite custom module resolvers in users' web/.babelrc - ], [mediaImportsPlugin], ], }, diff --git a/packages/record/.babelrc.js b/packages/record/.babelrc.js new file mode 100644 index 000000000000..3b2c815712d9 --- /dev/null +++ b/packages/record/.babelrc.js @@ -0,0 +1 @@ +module.exports = { extends: '../../babel.config.js' } diff --git a/packages/record/README.md b/packages/record/README.md new file mode 100644 index 000000000000..aeda3c136403 --- /dev/null +++ b/packages/record/README.md @@ -0,0 +1,35 @@ +# RedwoodRecord + +RedwoodRecord is an ORM ([Object-Relational Mapping](https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping)) built on top of Prisma. It may be extended in the future to wrap other database access packages. + +RedwoodRecord is heavily inspired by [ActiveRecord](https://guides.rubyonrails.org/active_record_basics.html) which ships with [Ruby on Rails](https://rubyonrails.org). It presents a natural interface to the underlying data in your database, without worry about the particulars of SQL syntax. + +## Usage + +Usage documentation is avilable at https://redwoodjs.com/docs/redwoodrecord + +## Package Structure + +RedwoodRecord is composed of 5 classes total: + +1. **Core** - provides core database access for a single model, enabling CRUD actions +2. **Reflection** - parses the Prisma data schema and determines what relations exist to other models +3. **RelationProxy** - provides access to related models reveales by the Reflection class +4. **ValidationMixin** - adds validation support, adding error messages +5. **RedwoodRecord** - combines the functionality of the other four classes into the standard base class that all models should extend from + +There is also an `errors.js` file which contains all error messages that RedwoodRecord could throw. + +### Tasks + +RedwoodRecord depends on reading the Prisma schema file to determine relations to other tables. In order to avoid the `async` wait when parsing the schema with Prisma's build-in function, we have a task which parses the schema file and then saves out a JSON version to the cache `.redwood` directory. This task also creates an `index.js` file in your `api/src/models` directory that imports the models themselves and also adds some configuration to support relations without a circular dependency. The models are then re-exported. + +This task is run with: + +``` +yarn rw record init +``` + +This task needs to be run whenever you create a new model, or change your database schema in a way that would add/remove a relation to another model. + +> We plan to make the task run automatically, watching for changes to your schema.prisma or models directory. But for now you'll need to run it manually! diff --git a/packages/record/package.json b/packages/record/package.json new file mode 100644 index 000000000000..fc1945670140 --- /dev/null +++ b/packages/record/package.json @@ -0,0 +1,39 @@ +{ + "name": "@redwoodjs/record", + "version": "0.39.2", + "files": [ + "dist" + ], + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "license": "MIT", + "dependencies": { + "@prisma/client": "3.5.0", + "@prisma/sdk": "3.5.0", + "core-js": "3.19.1" + }, + "repository": { + "type": "git", + "url": "https://github.com/redwoodjs/redwood.git", + "directory": "packages/record" + }, + "devDependencies": { + "@babel/cli": "7.16.0", + "jest": "27.3.1" + }, + "jest": { + "testPathIgnorePatterns": [ + "/dist/" + ] + }, + "scripts": { + "datamodel:parse": "node src/scripts/parse.js", + "build": "yarn build:js", + "prepublishOnly": "NODE_ENV=production yarn build", + "build:js": "babel src -d dist --extensions \".js,.ts,.tsx\"", + "build:watch": "nodemon --watch src --ext \"js,ts,tsx\" --ignore dist --exec \"yarn build\"", + "test": "jest src", + "test:watch": "yarn test --watch" + }, + "gitHead": "d583dfdf18f9433038098a64e71f6a421c6d1c04" +} diff --git a/packages/record/src/errors.js b/packages/record/src/errors.js new file mode 100644 index 000000000000..6555a46ff632 --- /dev/null +++ b/packages/record/src/errors.js @@ -0,0 +1,45 @@ +import { RedwoodError } from '@redwoodjs/api' + +export class RedwoodRecordError extends RedwoodError { + constructor() { + super() + this.name = 'RedwoodRecordError' + } +} + +export class RedwoodRecordUncaughtError extends RedwoodError { + constructor(message) { + super(message) + this.name = 'RedwoodRecordUncaughtError' + } +} + +export class RedwoodRecordNotFoundError extends RedwoodError { + constructor(name) { + super(`${name} record not found`) + this.name = 'RedwoodRecordNotFoundError' + } +} + +export class RedwoodRecordNullAttributeError extends RedwoodError { + constructor(name) { + super(`${name} must not be null`) + this.name = 'RedwoodRecordNullAttributeError' + } +} + +export class RedwoodRecordMissingAttributeError extends RedwoodError { + constructor(name) { + super(`${name} is missing`) + this.name = 'RedwoodRecordMissingAttributeError' + } +} + +export class RedwoodRecordMissingRequiredModelError extends RedwoodError { + constructor(modelName, requiredModelName) { + super( + `Tried to build a relationship for ${requiredModelName} model but is not listed as a \`requiredModel\` in ${modelName}` + ) + this.name = 'RedwoodRecordMissingRequiredModelError' + } +} diff --git a/packages/record/src/index.js b/packages/record/src/index.js new file mode 100644 index 000000000000..aa3f0a004c90 --- /dev/null +++ b/packages/record/src/index.js @@ -0,0 +1,8 @@ +export * from './errors' +export { default as Core } from './redwoodrecord/Core' +export { default as Reflection } from './redwoodrecord/Reflection' +export { default as RelationProxy } from './redwoodrecord/RelationProxy' +export { default as ValidationMixin } from './redwoodrecord/ValidationMixin' +export { default as RedwoodRecord } from './redwoodrecord/RedwoodRecord' + +export * from './tasks/parse' diff --git a/packages/record/src/redwoodrecord/Core.js b/packages/record/src/redwoodrecord/Core.js new file mode 100644 index 000000000000..73332742efa6 --- /dev/null +++ b/packages/record/src/redwoodrecord/Core.js @@ -0,0 +1,290 @@ +import camelCase from 'camelcase' + +import * as Errors from '../errors' + +export default class Core { + //////////////////////////// + // Public class properties + //////////////////////////// + + // Set in child class to override DB accessor name. This is the name of the + // property you would call on an instance of Prisma Client in order the query + // a model in your schema. ie. For the call `db.user` the accessorName is + // "user". Not setting this property will use the default camelCase version of + // the class name itself as the accessor. + // + // static accessorName = 'users' + static accessorName + + // Set in child class to override primary key field name for this model. + // + // static primaryKey = 'userId' + static primaryKey = 'id' + + // Parsed schema.prisma for use in subclasses + static schema = null + + // Any other model that may be required by this model + static requiredModels = [] + + ///////////////////////// + // Public class methods + ///////////////////////// + + // Access the raw Prisma Client for doing low level query manipulation + static db = null + + // Returns the Prisma DB accessor instance (ex. db.user) + static get accessor() { + return this.db[this.accessorName || camelCase(this.name)] + } + + // Alias for where({}) + static all(args) { + return this.where({}, args) + } + + static build(attributes) { + const record = new this() + // TODO: creating a record through the RelationProxy will put that relationship into `attributes` here. Ideally that would only be used for the create and then discarded. + record.attributes = attributes + return record + } + + // Create a new record. Instantiates a new instance and then calls .save() on it + static async create(attributes, options = {}) { + const record = this.build(attributes) + + return await record.save(options) + } + + // Find a single record by ID. + static async find(id, options = {}) { + const record = await this.findBy( + { + [this.primaryKey]: id, + ...(options.where || {}), + }, + options + ) + if (record === null) { + throw new Errors.RedwoodRecordNotFoundError(this.name) + } + + return record + } + + // Returns the first record matching the given `where`, otherwise first in the + // whole table (whatever the DB determines is the first record) + static async findBy(attributes, options = {}) { + const record = await this.accessor.findFirst({ + where: attributes, + ...options, + }) + + return record ? await this.build(record) : null + } + + // Alias for findBy + static async first(...args) { + return this.findBy(...args) + } + + // Find all records + static async where(attributes, options = {}) { + const records = await this.accessor.findMany({ + where: attributes, + ...options, + }) + + return Promise.all( + records.map(async (record) => { + return await this.build(record) + }) + ) + } + + /////////////////////////////// + // Private instance properties + /////////////////////////////// + + // Stores instance attributes object internally + #attributes = {} + + //////////////////////////// + // Public instance methods + //////////////////////////// + + constructor() {} + + get attributes() { + return this.#attributes + } + + set attributes(attrs) { + if (attrs) { + this.#attributes = attrs + this._createPropertiesForAttributes() + } + } + + async destroy(options = {}) { + const { throw: shouldThrow, ...rest } = options + + try { + await this.constructor.accessor.delete({ + where: { [this.constructor.primaryKey]: this.attributes.id }, + ...rest, + }) + return this + } catch (e) { + this._deleteErrorHandler(e, shouldThrow) + return false + } + } + + // Saves the attributes to the database + async save(options = {}) { + const saveAttributes = JSON.parse(JSON.stringify(this.attributes)) + + try { + let newAttributes + + if (this.attributes[this.constructor.primaryKey]) { + // update existing record + delete saveAttributes[this.constructor.primaryKey] + + newAttributes = await this.constructor.accessor.update({ + where: { + [this.constructor.primaryKey]: + this.attributes[this.constructor.primaryKey], + }, + data: saveAttributes, + }) + } else { + // create new record + newAttributes = await this.constructor.accessor.create({ + data: saveAttributes, + }) + } + + // update attributes in case someone else changed since we last read them + this.attributes = newAttributes + } catch (e) { + this._saveErrorHandler(e, options.throw) + return false + } + + return this + } + + async update(attributes = {}, options = {}) { + this.#attributes = Object.assign(this.#attributes, attributes) + return await this.save(options) + } + + //////////////////////////// + // Private instance methods + //////////////////////////// + + // Turns a plain object's properties into getters/setters on the instance: + // + // const user = new User({ name: 'Rob' }) + // user.name // => 'Rob' + _createPropertiesForAttributes() { + for (const [name, value] of Object.entries(this.attributes)) { + // Has attribute already been created on this instance? + // eslint-disable-next-line + if (this.hasOwnProperty(name)) { + continue + } + // Is this a relationship attribute? + if ( + value && + typeof value === 'object' && + (Object.keys(value).includes('create') || + Object.keys(value).includes('connect')) + ) { + continue + } + + this._createPropertyForAttribute(name) + } + } + + // Create property for a single attribute + _createPropertyForAttribute(name) { + Object.defineProperty(this, name, { + get() { + return this._attributeGetter(name) + }, + set(value) { + this._attributeSetter(name, value) + }, + enumerable: true, + }) + } + + _attributeGetter(name) { + return this.#attributes[name] + } + + _attributeSetter(name, value) { + return (this.#attributes[name] = value) + } + + _onSaveError(_name, _message) { + // to be implemented in RedwoodRecord which knows how to handle errors + } + + _deleteErrorHandler(error, shouldThrow) { + if (error.message.match(/Record to delete does not exist/)) { + this._onSaveError( + 'base', + `${this.constructor.name} record to destroy not found` + ) + if (shouldThrow) { + throw new Errors.RedwoodRecordNotFoundError() + } + } else { + this._onSaveError( + 'base', + `${this.constructor.name} record threw uncaught error: ${error.message}` + ) + if (shouldThrow) { + throw new Errors.RedwoodRecordUncaughtError(error.message) + } + } + } + + // Handles errors from saving a record (either update or create), converting + // to this.#errors messages, or throwing RedwoodRecord errors + _saveErrorHandler(error, shouldThrow) { + if (error.message.match(/Record to update not found/)) { + this._onSaveError( + 'base', + `${this.constructor.name} record to update not found` + ) + if (shouldThrow) { + throw new Errors.RedwoodRecordNotFoundError(this.constructor.name) + } + } else if (error.message.match(/must not be null/)) { + const [_all, name] = error.message.match(/Argument (\w+)/) + this._onSaveError(name, 'must not be null') + if (shouldThrow) { + throw new Errors.RedwoodRecordNullAttributeError(name) + } + } else if (error.message.match(/is missing/)) { + const [_all, name] = error.message.match(/Argument (\w+)/) + this._onSaveError('base', `${name} is missing`) + if (shouldThrow) { + throw new Errors.RedwoodRecordMissingAttributeError(name) + } + } else { + this._onSaveError('base', error.message) + if (shouldThrow) { + throw new Errors.RedwoodRecordUncaughtError(error.message) + } + } + } +} diff --git a/packages/record/src/redwoodrecord/RedwoodRecord.js b/packages/record/src/redwoodrecord/RedwoodRecord.js new file mode 100644 index 000000000000..14377a86d24e --- /dev/null +++ b/packages/record/src/redwoodrecord/RedwoodRecord.js @@ -0,0 +1,38 @@ +import Core from './Core' +import Reflection from './Reflection' +import RelationProxy from './RelationProxy' +import ValidationMixin from './ValidationMixin' + +export default class RedwoodRecord extends ValidationMixin(Core) { + static get reflect() { + return new Reflection(this) + } + + // Call original build, but add related attributes + static build(attributes) { + const record = super.build(attributes) + RelationProxy.addRelations(record, this.constructor.schema) + return record + } + + // Don't even try to save if data isn't valid + async save(options = {}) { + if (this.validate({ throw: options.throw })) { + return await super.save(options) + } else { + return false + } + } + + // Call original method, but add error keys for validation + _createPropertyForAttribute(name) { + super._createPropertyForAttribute(name) + this._errors[name] = [] + } + + // Add validation error on save error + _onSaveError(...args) { + super._onSaveError(...args) + this.addError(...args) + } +} diff --git a/packages/record/src/redwoodrecord/Reflection.js b/packages/record/src/redwoodrecord/Reflection.js new file mode 100644 index 000000000000..d92a9daf5655 --- /dev/null +++ b/packages/record/src/redwoodrecord/Reflection.js @@ -0,0 +1,101 @@ +// Introspects a given model and returns its attributes and figures out what +// other models it belongs to or has many of. + +export default class Reflection { + #hasMany = null + #belongsTo = null + #attributes = null + + constructor(model) { + this.model = model + } + + get attributes() { + if (!this.#attributes) { + this.#parseAttributes() + } + + return this.#attributes + } + + get belongsTo() { + if (!this.#belongsTo) { + this.#parseBelongsTo() + } + + return this.#belongsTo + } + + get hasMany() { + if (!this.#hasMany) { + this.#parseHasMany() + } + + return this.#hasMany + } + + // Finds the schema for a single model + #schemaForModel(name = this.model.name) { + return this.model.schema.models.find((model) => model.name === name) + } + + #parseHasMany() { + const selfSchema = this.#schemaForModel() + this.#hasMany = {} + + selfSchema?.fields?.forEach((field) => { + if (field.isList) { + // get other side of relationship to determine foreign key name + const otherSchema = this.#schemaForModel(field.type) + const belongsTo = otherSchema.fields.find( + (field) => field.type === this.model.name + ) + + this.#hasMany[field.name] = { + modelName: field.type, + referenceName: belongsTo.name, + // a null foreign key denotes an implicit many-to-many relationship + foreignKey: belongsTo.relationFromFields[0] || null, + primaryKey: belongsTo.relationToFields[0], + } + } + }) + } + + #parseBelongsTo() { + const selfSchema = this.#schemaForModel() + this.#belongsTo = {} + + selfSchema?.fields?.forEach((field) => { + if (field.relationFromFields?.length) { + this.#belongsTo[field.name] = { + modelName: field.type, + foreignKey: field.relationFromFields[0], + primaryKey: field.relationToFields[0], + } + } + }) + } + + #parseAttributes() { + const selfSchema = this.#schemaForModel() + this.#attributes = {} + + if (!this.#hasMany) { + this.#parseHasMany() + } + if (!this.belongsTo) { + this.#parseBelongsTo() + } + + selfSchema?.fields?.forEach((field) => { + const { name, ...props } = field + if ( + !Object.keys(this.#hasMany).includes(name) && + !Object.keys(this.#belongsTo).includes(name) + ) { + this.#attributes[name] = props + } + }) + } +} diff --git a/packages/record/src/redwoodrecord/RelationProxy.js b/packages/record/src/redwoodrecord/RelationProxy.js new file mode 100644 index 000000000000..4b5f30fb53af --- /dev/null +++ b/packages/record/src/redwoodrecord/RelationProxy.js @@ -0,0 +1,139 @@ +// Proxies access to a related model. Stores the requirements for the relation, +// so that any function called on it is called on the original model, but with +// the relations attributes automatically merged in. + +import Reflection from './Reflection' + +export default class RelationProxy { + static addRelations(record) { + const reflection = new Reflection(record.constructor) + + this.#addHasManyRelations(record, reflection.hasMany) + this.#addBelongsToRelations(record, reflection.belongsTo) + } + + static #addHasManyRelations(record, hasMany) { + for (const [name, options] of Object.entries(hasMany)) { + // Property already defined from a previous usage, don't try to define again + // eslint-disable-next-line + if (record.hasOwnProperty(name)) { + continue + } + + const model = record.constructor.requiredModels.find((requiredModel) => { + return requiredModel.name === options.modelName + }) + + if (!model) { + console.warn( + `Model ${record.constructor.name} has a relationship defined for \`${name}\` in schema.prisma, but there is no Redwoood model for this relationship.` + ) + continue + } + + Object.defineProperty(record, name, { + get() { + if (options.foreignKey === null) { + // implicit many-to-many + return new RelationProxy(model, { + where: { + [options.referenceName]: { + some: { [options.primaryKey]: record[options.primaryKey] }, + }, + }, + create: { + [options.referenceName]: { + connect: [ + { [options.primaryKey]: record[options.primaryKey] }, + ], + }, + }, + }) + } else { + // hasMany + return new RelationProxy(model, { + where: { [options.foreignKey]: record[options.primaryKey] }, + }) + } + }, + enumerable: true, + }) + } + } + + static #addBelongsToRelations(record, belongsTo) { + for (const [name, options] of Object.entries(belongsTo)) { + // Property already defined from a previous usage, don't try to define again + // eslint-disable-next-line + if (record.hasOwnProperty(name)) { + continue + } + + const model = record.constructor.requiredModels.find((requiredModel) => { + return requiredModel.name === options.modelName + }) + + if (!model) { + console.warn( + `Model ${record.constructor.name} has a relationship defined for \`${name}\` in schema.prisma, but there is no Redwoood model for this relationship.` + ) + continue + } + + Object.defineProperty(record, name, { + async get() { + return await model.findBy({ + [options.primaryKey]: record[options.foreignKey], + }) + }, + enumerable: true, + }) + } + } + + constructor(model, relation) { + // Stores the model this proxy is proxying + this.model = model + // Stores the relation attributes, like `{ userId: 123 }` + this.relation = relation + } + + all(...args) { + return this.where(...args) + } + + create(attributes, options = {}) { + let relatedAttributes = { ...attributes } + + if (this.relation.create) { + relatedAttributes = { ...relatedAttributes, ...this.relation.create } + } else { + relatedAttributes = { ...relatedAttributes, ...this.relation.where } + } + + return this.model.create(relatedAttributes, options) + } + + find(id, options = {}) { + return this.findBy({ [this.model.primaryKey]: id }, options) + } + + findBy(attributes, options = {}) { + const relatedAttributes = { + ...attributes, + ...this.relation.where, + } + + return this.model.findBy(relatedAttributes, options) + } + + first(...args) { + return this.findBy(...args) + } + + where(attributes, options = {}) { + const relatedAttributes = { ...attributes, ...this.relation.where } + + return this.model.where(relatedAttributes, options) + } +} diff --git a/packages/record/src/redwoodrecord/ValidationMixin.js b/packages/record/src/redwoodrecord/ValidationMixin.js new file mode 100644 index 000000000000..36d620f0c05d --- /dev/null +++ b/packages/record/src/redwoodrecord/ValidationMixin.js @@ -0,0 +1,86 @@ +import { validate as validateField } from '@redwoodjs/api' + +export default (Base) => + class extends Base { + // Stores error messages internally + _errors = { base: [] } + + // Removes all error messages. + _clearErrors() { + for (const [attribute, _array] of Object.entries(this._errors)) { + this._errors[attribute] = [] + } + } + + // Denotes validations that need to run for the given fields. Must be in the + // form of { field: options } where `field` is the name of the field and + // `options` are the validation options. See Service Validations docs for + // usage examples: https://redwoodjs.com/docs/services.html#service-validations + // + // static validates = { + // emailAddress: { email: true }, + // name: { presence: true, length: { min: 2, max: 255 } } + // } + static validates = {} + + // Whether or not this instance is valid and has no errors. Essentially the + // opposite of `hasError`, but runs validations first. This means it will + // reset any custom errors added with `addError()` + get isValid() { + this.validate() + return !this.hasError + } + + get errors() { + return this._errors + } + + // Whether or not this instance contains any errors according to validation + // rules. Does not run valiations, (and so preserves custom errors) returns + // the state of error objects. Essentially the opposite of `isValid`. + get hasError() { + return !Object.entries(this._errors).every( + ([_name, errors]) => !errors.length + ) + } + + // Adds an error to the _errors object. Can be called manually via instance, + // however any errors added this way will be wiped out if calling `validate()` + addError(attribute, message) { + if (!this._errors[attribute]) { + this._errors[attribute] = [] + } + this._errors[attribute].push(message) + } + + // Checks each field against validate directives. Creates errors if so and + // returns `false`, otherwise returns `true`. + validate(options = {}) { + this._clearErrors() + + // If there are no validations, then we're valid! The database could still + // throw an error though, but that's handled elsewhere. + if (this.constructor.validates.length === 0) { + return true + } + + const results = [] + + for (const [name, recipe] of Object.entries(this.constructor.validates)) { + // TODO: Throw error if attribute is not present at all? Does that mess up undefined validation? + try { + validateField(this[name], name, recipe) + results.push(true) + } catch (e) { + this.addError(name, e.message) + if (options.throw) { + throw e + } else { + results.push(false) + } + } + } + + return results.every((result) => result) + } + } diff --git a/packages/record/src/redwoodrecord/__tests__/Core.test.js b/packages/record/src/redwoodrecord/__tests__/Core.test.js new file mode 100644 index 000000000000..4b7f6a7873dc --- /dev/null +++ b/packages/record/src/redwoodrecord/__tests__/Core.test.js @@ -0,0 +1,462 @@ +import * as Errors from '../../errors' +import Core from '../Core' + +import datamodel from './datamodel.json' + +// Mock Prisma +const db = { user: jest.fn() } + +// Setup Core +Core.schema = datamodel +Core.db = db + +// Test Models +class Post extends Core { + static requiredModels = [] +} +class User extends Core { + static requiredModels = [] +} +Post.requiredModels = [User] +User.requiredModels = [Post] + +afterEach(() => { + db.user.mockClear() + User.primaryKey = 'id' +}) + +describe('static methods', () => { + it('returns the name of itself', () => { + expect(Core.name).toEqual('Core') + }) + + it('returns the db object', () => { + expect(Core.db).toEqual(db) + }) + + it('defaults `accessor` property to undefined', () => { + expect(Core.accessorName).toEqual(undefined) + }) + + it('can override the accessor name if needed', () => { + class TestClass extends Core { + static accessorName = 'TesterTable' + } + + expect(TestClass.accessorName).toEqual('TesterTable') + }) + + it('defaults `primaryKey`', () => { + expect(Core.primaryKey).toEqual('id') + }) + + it('stores the parsed schema.prisma', () => { + expect(Core.schema).toHaveProperty('models') + }) +}) + +describe('instance methods', () => { + describe('build()', () => { + it('instantiates with a list of attributes', () => { + const attrs = { foo: 'bar' } + const record = Core.build(attrs) + + expect(record.attributes).toEqual(attrs) + }) + + it('creates getters for each attribute', () => { + const record = Core.build({ foo: 'bar' }) + + expect(record.foo).toEqual('bar') + }) + + it('creates setters for each attribute', () => { + const record = Core.build({ foo: 'bar' }) + record.foo = 'baz' + + expect(record.foo).toEqual('baz') + }) + + it('skips getters/setters with a `create` or `connect` child key', () => { + const connect = Core.build({ id: 1, posts: { connect: { id: 2 } } }) + expect(connect.posts).toEqual(undefined) + + const create = Core.build({ id: 1, comments: { create: { id: 2 } } }) + expect(create.comments).toEqual(undefined) + }) + }) +}) + +// Subclass behavior, needs to be backed by an actual model to work + +describe('User subclass', () => { + describe('static methods', () => { + describe('accessor', () => { + it('returns table representation on prisma client', () => { + expect(User.accessor).toEqual(db.user) + }) + }) + + describe('where', () => { + it('returns an array of User records', async () => { + db.user.findMany = jest.fn(() => [ + { + id: 1, + email: 'rob@redwoodjs.com', + }, + ]) + + const where = { email: 'rob@redwoodjs.com' } + await User.where(where) + + expect(db.user.findMany).toHaveBeenCalledWith({ where }) + }) + }) + + describe('all', () => { + it('calls where with an empty first argument', async () => { + db.user.findMany = jest.fn(() => []) + await User.all() + + expect(db.user.findMany).toHaveBeenCalledWith({ + where: {}, + }) + }) + + it('is an alias for where', async () => { + db.user.findMany = jest.fn(() => [ + { + id: 1, + email: 'rob@redwoodjs.com', + }, + ]) + + expect(await User.all()).toEqual(await User.where()) + }) + }) + + describe('create', () => { + it('initializes and saves a new record from a list of attributes', async () => { + const attributes = { + email: 'peter@redwoodjs.com', + name: 'Peter Pistorius', + hashedPassword: 'abc', + salt: 'abc', + } + db.user.create = jest.fn(() => ({ id: 1, ...attributes })) + + const user = await User.create(attributes) + + expect(db.user.create).toHaveBeenCalledWith({ data: attributes }) + expect(user instanceof User).toEqual(true) + expect(user.id).not.toEqual(undefined) + expect(user.email).toEqual('peter@redwoodjs.com') + expect(user.name).toEqual('Peter Pistorius') + }) + }) + + describe('find', () => { + it('finds a user by ID', async () => { + const id = 1 + db.user.findFirst = jest.fn(() => ({ + id, + email: 'rob@redwoodjs.com', + })) + const user = await User.find(id) + + expect(db.user.findFirst).toHaveBeenCalledWith({ where: { id } }) + expect(user.id).toEqual(id) + }) + + it('throws RedwoodRecordNotFound if ID is not found', async () => { + db.user.findFirst = jest.fn(() => null) + + try { + await User.find(999999999) + } catch (e) { + expect(e instanceof Errors.RedwoodRecordNotFoundError).toEqual(true) + expect(e.message).toEqual('User record not found') + } + expect.assertions(2) + }) + }) + + describe('findBy', () => { + it('returns the first record if no arguments', async () => { + const id = 1 + db.user.findFirst = jest.fn(() => ({ + id, + email: 'rob@redwoodjs.com', + })) + + const user = await User.findBy() + + expect(db.user.findFirst).toHaveBeenCalledWith({}) + expect(user.id).toEqual(id) + }) + + it('returns the first record that matches the given attributes', async () => { + const id = 1 + db.user.findFirst = jest.fn(() => ({ + id, + email: 'tom@redwoodjs.com', + })) + + const user = await User.findBy({ email: 'tom@redwoodjs.com' }) + + expect(db.user.findFirst).toHaveBeenCalledWith({ + where: { email: 'tom@redwoodjs.com' }, + }) + expect(user.id).toEqual(id) + }) + + it('returns null if no records', async () => { + db.user.findFirst = jest.fn(() => null) + + expect(await User.findBy()).toEqual(null) + }) + }) + + describe('first', () => { + it('is an alias for findBy', async () => { + const id = 1 + db.user.findFirst = jest.fn(() => ({ + id, + email: 'tom@redwoodjs.com', + })) + + const userFirst = await User.first() + const userFindBy = await User.findBy() + + expect(db.user.findFirst).toHaveBeenCalledTimes(2) + expect(db.user.findFirst).toHaveBeenCalledWith({}) + expect(userFirst).toEqual(userFindBy) + }) + }) + }) + + describe('instance methods', () => { + describe('destroy', () => { + it('deletes a record', async () => { + const data = { id: 1, email: 'tom@redwoodjs.com' } + db.user.delete = jest.fn(() => data) + const user = User.build(data) + + await user.destroy() + + expect(db.user.delete).toHaveBeenCalledWith({ + where: { id: data.id }, + }) + }) + + it('returns the record that was deleted', async () => { + const data = { id: 1, email: 'tom@redwoodjs.com' } + db.user.delete = jest.fn(() => data) + const user = User.build(data) + const result = await user.destroy() + + expect(result).toEqual(user) + }) + + it('returns false if record not found', async () => { + db.user.delete = jest.fn(() => { + throw new Error('Record to delete does not exist') + }) + const user = User.build({ id: 99999999 }) + + expect(await user.destroy()).toEqual(false) + }) + + it('throws an error if record not found', async () => { + db.user.delete = jest.fn(() => { + throw new Error('Record to delete does not exist') + }) + const user = User.build({ id: 99999999 }) + + await expect(user.destroy({ throw: true })).rejects.toThrow( + Errors.RedwoodRecordNotFoundError + ) + }) + }) + + describe('save', () => { + describe('create new', () => { + it('returns true if create is successful', async () => { + const attributes = { + email: 'peter@redwoodjs.com', + name: 'Peter Pistorius', + hashedPassword: 'abc', + salt: 'abc', + } + db.user.create = jest.fn(() => ({ id: 1, ...attributes })) + const user = await User.build(attributes) + + const result = await user.save() + + expect(db.user.create).toHaveBeenCalledWith({ data: attributes }) + expect(result.id).toEqual(1) + }) + + it('returns false if create fails', async () => { + db.user.create = jest.fn(() => { + throw new Error() + }) + const user = await User.build({ email: 'foo@bar.com' }) + const result = await user.save() + + expect(db.user.create).toHaveBeenCalledWith({ + data: { email: 'foo@bar.com' }, + }) + expect(result).toEqual(false) + }) + + it('throws error for missing attribute', async () => { + db.user.create = jest.fn(() => { + throw new Error('Argument email is missing') + }) + const user = await User.build({}) + + try { + await user.save({ throw: true }) + } catch (e) { + expect( + e instanceof Errors.RedwoodRecordMissingAttributeError + ).toEqual(true) + } + expect.assertions(1) + }) + + it('throws error for null attribute', async () => { + db.user.create = jest.fn(() => { + throw new Error('Argument email must not be null') + }) + const user = await User.build({ email: null }) + + try { + await user.save({ throw: true }) + } catch (e) { + expect(e instanceof Errors.RedwoodRecordNullAttributeError).toEqual( + true + ) + } + expect.assertions(1) + }) + + it('throws for otherwise uncaught error', async () => { + db.user.create = jest.fn(() => { + throw new Error('Something bad happened') + }) + const user = await User.build({ email: null }) + + try { + await user.save({ throw: true }) + } catch (e) { + expect(e instanceof Errors.RedwoodRecordUncaughtError).toEqual(true) + } + expect.assertions(1) + }) + }) + + describe('update existing', () => { + it('returns true if update is successful', async () => { + const attributes = { + email: 'updated@redwoodjs.com', + name: 'Peter Pistorius', + hashedPassword: 'abc', + salt: 'abc', + } + db.user.update = jest.fn(() => attributes) + const user = await User.build({ id: 1, ...attributes }) + const result = await user.save() + + expect(db.user.update).toHaveBeenCalledWith({ + where: { id: 1 }, + data: attributes, + }) + expect(result.email).toEqual('updated@redwoodjs.com') + }) + + it('allows different primary key', async () => { + User.primaryKey = 'userId' + const attributes = { + email: 'updated@redwoodjs.com', + name: 'Peter Pistorius', + hashedPassword: 'abc', + salt: 'abc', + } + db.user.update = jest.fn(() => attributes) + const user = await User.build({ userId: 1, ...attributes }) + await user.save() + + expect(db.user.update).toHaveBeenCalledWith({ + where: { userId: 1 }, + data: attributes, + }) + }) + + it('returns false if update fails', async () => { + db.user.update = jest.fn(() => { + throw new Error('Record to update not found') + }) + const user = await User.build({ id: 99999999 }) + const result = await user.save() + + expect(result).toEqual(false) + }) + + it('throws if record not found', async () => { + db.user.update = jest.fn(() => { + throw new Error('Record to update not found') + }) + const user = await User.build({ id: 99999999 }) + + try { + await user.save({ throw: true }) + } catch (e) { + expect(e instanceof Errors.RedwoodRecordNotFoundError).toEqual(true) + } + + expect.assertions(1) + }) + + it('throws on null required field if given the option', async () => { + db.user.update = jest.fn(() => { + throw new Error('Argument email must not be null') + }) + const user = await User.build({ id: 99999999 }) + user.email = null + + try { + await user.save({ throw: true }) + } catch (e) { + expect(e instanceof Errors.RedwoodRecordNullAttributeError).toEqual( + true + ) + } + + expect.assertions(1) + }) + }) + }) + + describe('update', () => { + it('updates an existing record with new data', async () => { + const attributes = { + email: 'updated@redwoodjs.com', + name: 'Robert Cameron', + hashedPassword: 'abc', + salt: 'abc', + } + db.user.update = jest.fn(() => attributes) + const user = await User.build({ id: 1, ...attributes }) + const _result = await user.update({ name: 'Robert Cameron' }) + + expect(db.user.update).toHaveBeenCalledWith({ + where: { id: 1 }, + data: attributes, + }) + expect(user.name).toEqual('Robert Cameron') + }) + }) + }) +}) diff --git a/packages/record/src/redwoodrecord/__tests__/RedwoodRecord.test.js b/packages/record/src/redwoodrecord/__tests__/RedwoodRecord.test.js new file mode 100644 index 000000000000..414989732237 --- /dev/null +++ b/packages/record/src/redwoodrecord/__tests__/RedwoodRecord.test.js @@ -0,0 +1,108 @@ +import * as ValidationErrors from '@redwoodjs/api' + +import RedwoodRecord from '../RedwoodRecord' +import Reflection from '../Reflection' +import RelationProxy from '../RelationProxy' + +import datamodel from './datamodel.json' + +const db = { user: jest.fn() } + +describe('reflect()', () => { + it('returns instance of Reflection', () => { + expect(RedwoodRecord.reflect instanceof Reflection).toEqual(true) + }) +}) + +describe('build()', () => { + class Post extends RedwoodRecord {} + class User extends RedwoodRecord {} + class Comment extends RedwoodRecord {} + User.requiredModels = [Post, Comment] + User.schema = datamodel + + it('adds relation properties', () => { + const user = User.build({}) + + expect(user.posts instanceof RelationProxy).toEqual(true) + }) +}) + +describe('save()', () => { + it('returns false if save fails', async () => { + class User extends RedwoodRecord { + static schema = datamodel + static validates = { + email: { presence: true }, + } + } + const user = new User() + + expect(await user.save()).toEqual(false) + }) + + it('throws an error if given the option', async () => { + class User extends RedwoodRecord { + static schema = datamodel + static validates = { + email: { presence: true }, + } + } + const user = new User() + + expect(user.save({ throw: true })).rejects.toThrow( + ValidationErrors.PresenceValidationError + ) + }) + + it('adds an error if not valid before saving', async () => { + class User extends RedwoodRecord { + static schema = datamodel + static validates = { + email: { presence: true }, + } + } + const user = new User() + await user.save() + + expect(user.errors.email).toEqual(['email must be present']) + }) +}) + +describe('_createPropertyForAttribute()', () => { + it('creates error attribute placeholders', () => { + RedwoodRecord.schema = datamodel + const attrs = { foo: 'bar' } + const record = RedwoodRecord.build(attrs) + + expect(record.errors.foo).toEqual([]) + }) +}) + +describe('_onSaveError()', () => { + class Post extends RedwoodRecord {} + class User extends RedwoodRecord {} + class Comment extends RedwoodRecord {} + User.requiredModels = [Post, Comment] + User.schema = datamodel + User.db = db + + it('returns false if save fails', async () => { + db.user.update = jest.fn(() => { + throw new Error('Argument email must not be null') + }) + const user = User.build({ id: 1, email: null }) + + expect(await user.save()).toEqual(false) + }) + + it('adds an error if save fails', async () => { + db.user.update = jest.fn(() => { + throw new Error('Argument email must not be null') + }) + const user = User.build({ id: 1, email: null }) + await user.save() + + expect(user.errors.email).toEqual(['must not be null']) + }) +}) diff --git a/packages/record/src/redwoodrecord/__tests__/Reflection.test.js b/packages/record/src/redwoodrecord/__tests__/Reflection.test.js new file mode 100644 index 000000000000..f3a5e861a262 --- /dev/null +++ b/packages/record/src/redwoodrecord/__tests__/Reflection.test.js @@ -0,0 +1,95 @@ +// This test requires that a schema.prisma file exists or is mocked: +// +// model User { +// id Int @id @default(autoincrement()) +// email String @unique +// name String? +// posts Post[] +// hashedPassword String +// salt String +// resetToken String? +// resetTokenExpiresAt DateTime? +// } +// +// model Post { +// id Int @id @default(autoincrement()) +// userId Int +// user User @relation(fields: [userId], references: [id]) +// title String +// } + +import RedwoodRecord from '../RedwoodRecord' +import Reflection from '../Reflection' + +import datamodel from './datamodel.json' + +class User extends RedwoodRecord {} +class Post extends RedwoodRecord {} +User.schema = datamodel +Post.schema = datamodel + +// Reflection doesn't require defining related model records +// User.requiredModels = [Post] +// Post.requiredModels = [User] + +describe('constructor', () => { + it('should store the model name', () => { + const reflect = new Reflection(User) + + expect(reflect.model).toEqual(User) + }) +}) + +describe('relationship', () => { + it('includes hasMany relationships', () => { + const reflection = new Reflection(User) + const hasMany = reflection.hasMany + + expect(hasMany.posts).toEqual({ + modelName: 'Post', + foreignKey: 'userId', + primaryKey: 'id', + referenceName: 'user', + }) + }) + + it('includes implicit many-to-many relationships', () => { + const reflection = new Reflection(Post) + const hasMany = reflection.hasMany + + expect(hasMany.categories).toEqual({ + modelName: 'Category', + foreignKey: null, + primaryKey: 'id', + referenceName: 'posts', + }) + }) + + it('includes belongsTo relationships', () => { + const reflection = new Reflection(Post) + const belongsTo = reflection.belongsTo + + expect(belongsTo.user).toEqual({ + modelName: 'User', + foreignKey: 'userId', + primaryKey: 'id', + }) + }) + + it('includes attributes', () => { + const userReflection = new Reflection(User) + const userAttributes = userReflection.attributes + const postReflection = new Reflection(Post) + const postAttributes = postReflection.attributes + + expect(Object.keys(userAttributes).length).toEqual(7) + // doesn't include hasMany relationships + expect(userAttributes.posts).toEqual(undefined) + + expect(Object.keys(postAttributes).length).toEqual(3) + // doesn't include belongsTo relationships + expect(postAttributes.user).toEqual(undefined) + // does include foreign keys + expect(postAttributes.userId).not.toEqual(undefined) + }) +}) diff --git a/packages/record/src/redwoodrecord/__tests__/RelationProxy.test.js b/packages/record/src/redwoodrecord/__tests__/RelationProxy.test.js new file mode 100644 index 000000000000..95220d830786 --- /dev/null +++ b/packages/record/src/redwoodrecord/__tests__/RelationProxy.test.js @@ -0,0 +1,235 @@ +import RedwoodRecord from '../RedwoodRecord' +import RelationProxy from '../RelationProxy' + +import datamodel from './datamodel.json' + +const db = { user: jest.fn() } + +class Post extends RedwoodRecord {} +class User extends RedwoodRecord {} +class Comment extends RedwoodRecord {} +class Category extends RedwoodRecord {} +Post.db = db +Post.schema = datamodel +User.db = db +User.schema = datamodel +Comment.db = db +Comment.schema = datamodel +Category.db = db +Category.schema = datamodel + +global.console.warn = jest.fn() + +beforeEach(() => { + db.user.mockClear() + Post.requiredModels = [User, Comment, Category] + User.requiredModels = [Post, Comment] + Category.requiredModels = [Post] +}) + +afterEach(() => { + global.console.warn.mockClear() + jest.restoreAllMocks() +}) + +describe('belongsTo', () => { + it('adds nothing if model has no belongsTo relations', () => { + const record = new User() + + RelationProxy.addRelations(record) + + expect(record.user).toEqual(undefined) + }) + + it('logs a warning if model does not require needed model', () => { + Post.requiredModels = [] + const record = new Post() + RelationProxy.addRelations(record) + + // one warning for user, comments, categories + expect(console.warn).toBeCalledTimes(3) + }) + + it('created method returns a belongsTo a record', async () => { + jest + .spyOn(User, 'findBy') + .mockImplementation(() => User.build({ id: 1, name: 'Rob' })) + const record = new Post() + record.userId = 1 + + RelationProxy.addRelations(record) + const user = await record.user + + expect(User.findBy).toHaveBeenCalledWith({ id: 1 }) + expect(user instanceof User).toEqual(true) + expect(user.id).toEqual(1) + }) +}) + +describe('hasMany', () => { + it('adds nothing if model has no hasMany relations', () => { + const record = new Post() + RelationProxy.addRelations(record) + + expect(record.posts).toEqual(undefined) + }) + + it('logs a warning if model does not require needed model', () => { + User.requiredModels = [] + const record = new User() + RelationProxy.addRelations(record) + + // one warning for posts and one for comments + expect(console.warn).toBeCalledTimes(2) + }) + + it('instantiates hasMany proxy', () => { + const record = new User() + record.id = 1 + + RelationProxy.addRelations(record) + const proxy = record.posts + + expect(proxy instanceof RelationProxy).toEqual(true) + expect(proxy.model).toEqual(Post) + expect(proxy.relation).toEqual({ where: { userId: 1 } }) + }) + + it('create hasMany record linked by foreign key', async () => { + jest.spyOn(User, 'find').mockImplementation(() => User.build({ id: 1 })) + jest + .spyOn(Post, 'create') + .mockImplementation(() => User.build({ id: 1, userId: 1 })) + + const user = await User.find(1) + const newPost = await user.posts.create({ + title: 'My second post', + }) + + expect(Post.create).toHaveBeenCalledWith( + { + userId: 1, + title: 'My second post', + }, + {} + ) + expect(newPost.userId).toEqual(user.id) + }) + + it('fetches related records with find()', async () => { + jest.spyOn(User, 'find').mockImplementation(() => User.build({ id: 1 })) + jest.spyOn(Post, 'findBy').mockImplementation(() => Post.build({ id: 2 })) + + const record = await User.find(1) + const post = await record.posts.find(2) + + expect(Post.findBy).toHaveBeenCalledWith({ id: 2, userId: 1 }, {}) + expect(post.id).toEqual(2) + }) + + it('fetches related records with findBy()', async () => { + jest.spyOn(User, 'find').mockImplementation(() => User.build({ id: 1 })) + jest + .spyOn(Post, 'findBy') + .mockImplementation(() => Post.build({ id: 2, title: 'New' })) + + const record = await User.find(1) + const post = await record.posts.findBy({ title: 'New' }) + + expect(Post.findBy).toHaveBeenCalledWith({ title: 'New', userId: 1 }, {}) + expect(post.id).toEqual(2) + }) + + it('fetches related records with where()', async () => { + jest.spyOn(User, 'find').mockImplementation(() => User.build({ id: 1 })) + jest.spyOn(Post, 'where').mockImplementation(() => [Post.build({ id: 2 })]) + + const record = await User.find(1) + const posts = await record.posts.where() + + expect(Post.where).toHaveBeenCalledWith({ userId: 1 }, {}) + expect(posts.length).toEqual(1) + expect(posts[0].id).toEqual(2) + }) +}) + +describe('implicit many-to-many', () => { + it('instantiates hasMany proxy', () => { + const record = new Post() + record.id = 1 + + RelationProxy.addRelations(record) + const proxy = record.categories + + expect(proxy instanceof RelationProxy).toEqual(true) + expect(proxy.model).toEqual(Category) + expect(proxy.relation).toEqual({ + where: { posts: { some: { id: 1 } } }, + create: { posts: { connect: [{ id: record.id }] } }, + }) + }) + + it('create connects manyToMany record', async () => { + jest.spyOn(Post, 'find').mockImplementation(() => Post.build({ id: 1 })) + jest + .spyOn(Category, 'create') + .mockImplementation(() => Category.build({ id: 2, name: 'Sample' })) + + const post = await Post.find(1) + const newCategory = await post.categories.create({ name: 'Sample' }) + + expect(Category.create).toHaveBeenCalledWith( + { + name: 'Sample', + posts: { + connect: [{ id: 1 }], + }, + }, + {} + ) + + expect(newCategory.id).toEqual(2) + }) + + it('fetches related records with find()', async () => { + jest.spyOn(Post, 'find').mockImplementation(() => Post.build({ id: 1 })) + jest + .spyOn(Category, 'findBy') + .mockImplementation(() => Category.build({ id: 2, name: 'Cat' })) + + const record = await Post.find(1) + const category = await record.categories.find(2) + + expect(Category.findBy).toHaveBeenCalledWith( + { + id: 2, + posts: { + some: { id: 1 }, + }, + }, + {} + ) + expect(category.id).toEqual(2) + }) + + it('fetches related records with where()', async () => { + jest.spyOn(Post, 'find').mockImplementation(() => Post.build({ id: 1 })) + jest + .spyOn(Category, 'where') + .mockImplementation(() => [Category.build({ id: 2, name: 'Cat' })]) + + const record = await Post.find(1) + const categories = await record.categories.where() + + expect(Category.where).toHaveBeenCalledWith( + { + posts: { + some: { id: 1 }, + }, + }, + {} + ) + expect(categories.length).toEqual(1) + expect(categories[0].id).toEqual(2) + }) +}) diff --git a/packages/record/src/redwoodrecord/__tests__/Validation.test.js b/packages/record/src/redwoodrecord/__tests__/Validation.test.js new file mode 100644 index 000000000000..d04927a67081 --- /dev/null +++ b/packages/record/src/redwoodrecord/__tests__/Validation.test.js @@ -0,0 +1,187 @@ +import { PresenceValidationError } from '@redwoodjs/api' + +import Validation from '../ValidationMixin' + +class Mixin {} +class TestClass extends Validation(Mixin) {} + +beforeEach(() => { + TestClass.validates = {} +}) + +describe.only('hasError', () => { + it('defaults to false', () => { + const record = new TestClass() + + expect(record.hasError).toEqual(false) + }) + + it('returns true if there are base errors', () => { + const record = new TestClass() + record.addError('base', 'base is invalid') + + expect(record.hasError).toEqual(true) + }) + + it('returns true if there are field errors', () => { + const record = new TestClass() + record.addError('foo', 'foo is invalid') + + expect(record.hasError).toEqual(true) + }) + + it('resets once validations are run', () => { + const record = new TestClass() + record.addError('base', 'base is invalid') + expect(record.hasError).toEqual(true) + + record.validate() + expect(record.hasError).toEqual(false) + }) +}) + +describe.only('isValid', () => { + it('returns true if record has no validations', () => { + const record = new TestClass() + + expect(record.isValid).toEqual(true) + }) + + it('returns true if record is valid', () => { + TestClass.validates = { + email: { presence: true }, + } + + const record = new TestClass() + record.email = 'rob@redwoodjs.com' + + expect(record.isValid).toEqual(true) + }) + + it('returns false if record is invalid', () => { + TestClass.validates = { + email: { presence: true }, + } + + const record = new TestClass() + record.email = null + + expect(record.isValid).toEqual(false) + }) +}) + +describe.only('validate', () => { + it('returns true if record has no validations', () => { + const record = new TestClass() + + expect(record.validate()).toEqual(true) + }) + + it('sets no errors if no validations', () => { + const record = new TestClass() + + expect(record.errors).toEqual({ base: [] }) + }) + + it('returns true if single validation passes', () => { + TestClass.validates = { + email: { presence: true }, + } + const record = new TestClass() + record.email = 'rob@redwoodjs.com' + + expect(record.validate()).toEqual(true) + }) + + it('sets no error message if validation passes', () => { + TestClass.validates = { + email: { presence: true }, + } + const record = new TestClass() + record.email = 'rob@redwoodjs.com' + record.validate() + + expect(record.errors).toEqual({ base: [] }) + }) + + it('returns true if multiple validations pass', () => { + TestClass.validates = { + email: { presence: true, email: true }, + } + const record = new TestClass() + record.email = 'rob@redwoodjs.com' + + expect(record.validate()).toEqual(true) + }) + + it('returns false if single validation fails', () => { + TestClass.validates = { + email: { presence: true }, + } + const record = new TestClass() + record.email = null + + expect(record.validate()).toEqual(false) + }) + + it('sets error message if validation fails', () => { + TestClass.validates = { + email: { presence: true }, + } + const record = new TestClass() + record.email = null + record.validate() + + expect(record.errors.email).toEqual(['email must be present']) + }) + + it('returns false if any one of multiple validations on single field fails', () => { + TestClass.validates = { + email: { presence: true, email: true }, + } + const record = new TestClass() + record.email = 'invalid' + + expect(record.validate()).toEqual(false) + }) + + it('returns false if any one of multiple validations on multiple fields fails', () => { + TestClass.validates = { + email: { email: true }, + name: { presence: true }, + } + const record = new TestClass() + record.email = 'invalid' + record.name = null + + expect(record.validate()).toEqual(false) + }) + + it('sets multiple error message if multiple validations fail', () => { + TestClass.validates = { + email: { email: true }, + name: { presence: true }, + } + const record = new TestClass() + record.email = 'invalid' + record.name = null + record.validate() + + expect(record.errors.email).toEqual([ + 'email must be formatted like an email address', + ]) + expect(record.errors.name).toEqual(['name must be present']) + }) + + it('throws error on validation if option provided', () => { + TestClass.validates = { + email: { presence: true }, + } + const record = new TestClass() + record.email = null + + expect(() => record.validate({ throw: true })).toThrow( + PresenceValidationError + ) + }) +}) diff --git a/packages/record/src/redwoodrecord/__tests__/data.json b/packages/record/src/redwoodrecord/__tests__/data.json new file mode 100644 index 000000000000..37ef6b2cec6c --- /dev/null +++ b/packages/record/src/redwoodrecord/__tests__/data.json @@ -0,0 +1,52 @@ +export const standard = defineScenario({ + user: { + rob: { + data: { + email: 'rob@redwoodjs.com', + name: 'Rob Cameron', + hashedPassword: 'abcd', + salt: '1234', + }, + }, + tom: { + data: { + email: 'tom@redwoodjs.com', + name: 'Tom Preston-Werner', + hashedPassword: 'abcd', + salt: '1234', + }, + }, + }, + post: { + rob: (scenario) => ({ + data: { + userId: scenario.user.rob.id, + title: 'Rob first post', + }, + }), + tom: (scenario) => ({ + data: { + userId: scenario.user.tom.id, + title: 'Tom first post', + }, + }), + }, + category: { + wood: (scenario) => ({ + data: { + name: 'Wood', + posts: { + connect: [{ id: scenario.post.rob.id }], + }, + }, + }), + metal: (scenario) => ({ + data: { + name: 'Metal', + posts: { + connect: [{ id: scenario.post.tom.id }], + }, + }, + }), + }, +}) diff --git a/packages/record/src/redwoodrecord/__tests__/datamodel.json b/packages/record/src/redwoodrecord/__tests__/datamodel.json new file mode 100644 index 000000000000..c59f0d1fc894 --- /dev/null +++ b/packages/record/src/redwoodrecord/__tests__/datamodel.json @@ -0,0 +1,401 @@ +{ + "enums": [], + "models": [ + { + "name": "User", + "isEmbedded": false, + "dbName": null, + "fields": [ + { + "name": "id", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": true, + "isReadOnly": false, + "type": "Int", + "hasDefaultValue": true, + "default": { + "name": "autoincrement", + "args": [] + }, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "email", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": true, + "isId": false, + "isReadOnly": false, + "type": "String", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "name", + "kind": "scalar", + "isList": false, + "isRequired": false, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "String", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "posts", + "kind": "object", + "isList": true, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "Post", + "hasDefaultValue": false, + "relationName": "PostToUser", + "relationFromFields": [], + "relationToFields": [], + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "comments", + "kind": "object", + "isList": true, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "Comment", + "hasDefaultValue": false, + "relationName": "CommentToUser", + "relationFromFields": [], + "relationToFields": [], + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "hashedPassword", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "String", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "salt", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "String", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "resetToken", + "kind": "scalar", + "isList": false, + "isRequired": false, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "String", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "resetTokenExpiresAt", + "kind": "scalar", + "isList": false, + "isRequired": false, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "DateTime", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + } + ], + "isGenerated": false, + "primaryKey": null, + "uniqueFields": [], + "uniqueIndexes": [] + }, + { + "name": "Post", + "isEmbedded": false, + "dbName": null, + "fields": [ + { + "name": "id", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": true, + "isReadOnly": false, + "type": "Int", + "hasDefaultValue": true, + "default": { + "name": "autoincrement", + "args": [] + }, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "userId", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": true, + "type": "Int", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "user", + "kind": "object", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "User", + "hasDefaultValue": false, + "relationName": "PostToUser", + "relationFromFields": ["userId"], + "relationToFields": ["id"], + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "title", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "String", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "comments", + "kind": "object", + "isList": true, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "Comment", + "hasDefaultValue": false, + "relationName": "CommentToPost", + "relationFromFields": [], + "relationToFields": [], + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "categories", + "kind": "object", + "isList": true, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "Category", + "hasDefaultValue": false, + "relationName": "CategoryToPost", + "relationFromFields": [], + "relationToFields": ["id"], + "isGenerated": false, + "isUpdatedAt": false + } + ], + "isGenerated": false, + "primaryKey": null, + "uniqueFields": [], + "uniqueIndexes": [] + }, + { + "name": "Category", + "isEmbedded": false, + "dbName": null, + "fields": [ + { + "name": "id", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": true, + "isReadOnly": false, + "type": "Int", + "hasDefaultValue": true, + "default": { + "name": "autoincrement", + "args": [] + }, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "name", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "String", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "posts", + "kind": "object", + "isList": true, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "Post", + "hasDefaultValue": false, + "relationName": "CategoryToPost", + "relationFromFields": [], + "relationToFields": ["id"], + "isGenerated": false, + "isUpdatedAt": false + } + ], + "isGenerated": false, + "primaryKey": null, + "uniqueFields": [], + "uniqueIndexes": [] + }, + { + "name": "Comment", + "isEmbedded": false, + "dbName": null, + "fields": [ + { + "name": "id", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": true, + "isReadOnly": false, + "type": "Int", + "hasDefaultValue": true, + "default": { + "name": "autoincrement", + "args": [] + }, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "postId", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": true, + "type": "Int", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "post", + "kind": "object", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "Post", + "hasDefaultValue": false, + "relationName": "CommentToPost", + "relationFromFields": ["postId"], + "relationToFields": ["id"], + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "userId", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": true, + "type": "Int", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "user", + "kind": "object", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "User", + "hasDefaultValue": false, + "relationName": "CommentToUser", + "relationFromFields": ["userId"], + "relationToFields": ["id"], + "isGenerated": false, + "isUpdatedAt": false + }, + { + "name": "body", + "kind": "scalar", + "isList": false, + "isRequired": true, + "isUnique": false, + "isId": false, + "isReadOnly": false, + "type": "String", + "hasDefaultValue": false, + "isGenerated": false, + "isUpdatedAt": false + } + ], + "isGenerated": false, + "primaryKey": null, + "uniqueFields": [], + "uniqueIndexes": [] + } + ] +} diff --git a/packages/record/src/tasks/parse.js b/packages/record/src/tasks/parse.js new file mode 100644 index 000000000000..dfc863c6cd66 --- /dev/null +++ b/packages/record/src/tasks/parse.js @@ -0,0 +1,84 @@ +import fs from 'fs' +import path from 'path' + +import { getDMMF } from '@prisma/sdk' + +import { getPaths } from '@redwoodjs/internal' + +const DATAMODEL_PATH = path.join(getPaths().generated.base, 'datamodel.json') +const MODELS_PATH = path.join(getPaths().api.src, 'models') +const MODELS_INDEX_PATH = path.join(MODELS_PATH, 'index.js') + +const indexLines = [ + '// This file is autogenerated by Redwood and will be overwitten periodically', + '', + "import { db } from 'src/lib/db'", + "import datamodel from '../../../.redwood/datamodel.json'", + "import { RedwoodRecord } from '@redwoodjs/record'", + '', + 'RedwoodRecord.db = db', + 'RedwoodRecord.schema = datamodel', + '', +] + +const modelImports = [] +const modelRequires = {} +let datamodel + +// parse datamodel and write out cache +export const parseDatamodel = () => { + getDMMF({ datamodelPath: getPaths().api.dbSchema }).then((schema) => { + datamodel = schema.datamodel + fs.writeFileSync(DATAMODEL_PATH, JSON.stringify(datamodel, null, 2)) + console.info(`\n Wrote ${DATAMODEL_PATH}`) + + // figure out what model classes are present + const modelNames = fs + .readdirSync(MODELS_PATH) + .map((file) => { + if (file !== 'index.js') { + return file.split('.')[0] + } + }) + .filter((val) => val) + + modelNames.forEach((modelName) => { + // which other models this model requires + const thisModelRequires = [] + + // import statements + modelImports.push(`import ${modelName} from 'src/models/${modelName}'`) + + // requireModel declarations + const schemaModel = datamodel.models.find( + (model) => model.name === modelName + ) + + if (schemaModel) { + schemaModel.fields.forEach((field) => { + if (field.kind === 'object' && modelNames.includes(field.type)) { + thisModelRequires.push(field.type) + } + }) + modelRequires[modelName] = thisModelRequires + } + }) + + modelImports.forEach((modelImport) => { + indexLines.push(modelImport) + }) + + indexLines.push('') + + for (const [name, requires] of Object.entries(modelRequires)) { + indexLines.push(`${name}.requiredModels = [${requires.join(', ')}]`) + } + + indexLines.push('') + indexLines.push(`export { ${modelNames.join(', ')} }`) + indexLines.push('') // empty newline at end + + fs.writeFileSync(MODELS_INDEX_PATH, indexLines.join('\n')) + console.info(` Wrote ${MODELS_INDEX_PATH}\n`) + }) +} diff --git a/packages/router/ambient.d.ts b/packages/router/ambient.d.ts index 8fcc28d4b404..59d6fb505603 100644 --- a/packages/router/ambient.d.ts +++ b/packages/router/ambient.d.ts @@ -2,24 +2,22 @@ declare global { var __REDWOOD__PRERENDERING: boolean - - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - var __REDWOOD__API_PROXY_PATH: string /** - * FQDN or absolute path to the GraphQL serverless function, without the trailing slash. + * URL or absolute path to the GraphQL serverless function, without the trailing slash. * Example: `./redwood/functions/graphql` or `https://api.redwoodjs.com/graphql` */ var RWJS_API_GRAPHQL_URL: string /** - * FQDN or absolute path to the DbAuth serverless function, without the trailing slash. + * URL or absolute path to the DbAuth serverless function, without the trailing slash. * Example: `./redwood/functions/auth` or `https://api.redwoodjs.com/auth` **/ var RWJS_API_DBAUTH_URL: string - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - var __REDWOOD__API_URL: string - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - var __REDWOOD__API_GRAPHQL_SERVER_PATH: string + /** + * URL or absolute path to serverless functions, without the trailing slash. + * Example: `./redwood/functions/` or `https://api.redwoodjs.com/` + **/ + var RWJS_API_URL: string namespace NodeJS { interface Global { @@ -28,17 +26,12 @@ declare global { */ __REDWOOD__PRERENDERING: boolean - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - __REDWOOD__API_PROXY_PATH: string - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - __REDWOOD__API_URL: string - /** @deprecated Please use `RWJS_API_GRAPHQL_URL` or `RWJS_API_DBAUTH_URL` */ - __REDWOOD__API_GRAPHQL_SERVER_PATH: string - - /** FQDN or absolute path to the GraphQL serverless function */ + /** URL or absolute path to the GraphQL serverless function */ RWJS_API_GRAPHQL_URL: string - /** FQDN or absolute path to the DbAuth serverless function */ + /** URL or absolute path to the DbAuth serverless function */ RWJS_API_DBAUTH_URL: string + /** URL or absolute path to serverless functions */ + RWJS_API_URL: string } } } diff --git a/packages/router/package.json b/packages/router/package.json index a9463a3d1303..0fed9543eec7 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@redwoodjs/router", - "version": "0.38.1", + "version": "0.39.2", "files": [ "dist" ], @@ -9,8 +9,8 @@ "license": "MIT", "dependencies": { "@reach/skip-nav": "0.16.0", - "@redwoodjs/auth": "0.38.1", - "core-js": "3.18.3", + "@redwoodjs/auth": "0.39.2", + "core-js": "3.19.1", "lodash.isequal": "4.5.0" }, "repository": { @@ -19,13 +19,13 @@ "directory": "packages/router" }, "devDependencies": { - "@babel/cli": "7.15.7", + "@babel/cli": "7.16.0", "@types/lodash.isequal": "4.5.5", "jest": "27.3.1", "prop-types": "15.7.2", "react": "17.0.2", "react-dom": "17.0.2", - "typescript": "4.4.4" + "typescript": "4.5.2" }, "scripts": { "build": "yarn build:js && yarn build:types", diff --git a/packages/router/src/links.tsx b/packages/router/src/links.tsx index 7794de3e6a24..91e3a4e5b2b7 100644 --- a/packages/router/src/links.tsx +++ b/packages/router/src/links.tsx @@ -56,6 +56,7 @@ const useMatch = (pathname: string, options?: UseMatchOptions) => { interface LinkProps { to: string + onClick?: React.MouseEventHandler } const Link = forwardRef< @@ -95,6 +96,7 @@ interface NavLinkProps { to: string activeClassName: string activeMatchParams?: FlattenSearchParams + onClick: React.MouseEventHandler } const NavLink = forwardRef< diff --git a/packages/router/src/router.tsx b/packages/router/src/router.tsx index e897fc3b4e36..eab78c864293 100644 --- a/packages/router/src/router.tsx +++ b/packages/router/src/router.tsx @@ -192,7 +192,7 @@ const LocationAwareRouter: React.FC = ({ } }) - if (shouldShowSplash) { + if (shouldShowSplash && typeof SplashPage !== 'undefined') { return ( { export type TrailingSlashesTypes = 'never' | 'always' | 'preserve' export interface ParamType { - constraint?: RegExp - transform?: (value: any) => unknown + match?: RegExp + parse?: (value: any) => unknown } /** Definitions of the core param types. */ const coreParamTypes: Record = { String: { - constraint: /[^/]+/, + match: /[^/]+/, }, Int: { - constraint: /\d+/, - transform: Number, + match: /\d+/, + parse: Number, }, Float: { - constraint: /[-+]?(?:\d*\.?\d+|\d+\.?\d*)(?:[eE][-+]?\d+)?/, - transform: Number, + match: /[-+]?(?:\d*\.?\d+|\d+\.?\d*)(?:[eE][-+]?\d+)?/, + parse: Number, }, Boolean: { - constraint: /true|false/, - transform: (boolAsString: string) => boolAsString === 'true', + match: /true|false/, + parse: (boolAsString: string) => boolAsString === 'true', }, Glob: { - constraint: /.*/, + match: /.*/, }, } @@ -103,24 +103,23 @@ const matchPath = ( // Get the names and the transform types for the given route. const routeParams = paramsForRoute(route) const allParamTypes = { ...coreParamTypes, ...paramTypes } - let typeConstrainedRoute = route + let typeMatchingRoute = route - // Map all params from the route to their type constraint regex to create a - // "type-constrained route" regex + // Map all params from the route to their type `match` regexp to create a + // "type-matching route" regexp for (const [_name, type, match] of routeParams) { - // `undefined` constraint if `type` is not supported - const constraint = - allParamTypes[type as SupportedRouterParamTypes]?.constraint + // `undefined` matcher if `type` is not supported + const matcher = allParamTypes[type as SupportedRouterParamTypes]?.match - // Get the regex as a string, or default regex if no constraint - const typeRegex = constraint?.source || '[^/]+' + // Get the regex as a string, or default regexp if `match` is not specified + const typeRegexp = matcher?.source || '[^/]+' - typeConstrainedRoute = typeConstrainedRoute.replace(match, `(${typeRegex})`) + typeMatchingRoute = typeMatchingRoute.replace(match, `(${typeRegexp})`) } // Does the `pathname` match the route? const matches = [ - ...pathname.matchAll(new RegExp(`^${typeConstrainedRoute}$`, 'g')), + ...pathname.matchAll(new RegExp(`^${typeMatchingRoute}$`, 'g')), ] if (matches.length === 0) { @@ -135,8 +134,8 @@ const matchPath = ( const typeInfo = allParamTypes[transformName as SupportedRouterParamTypes] let transformedValue: string | unknown = value - if (typeof typeInfo?.transform === 'function') { - transformedValue = typeInfo.transform(value) + if (typeof typeInfo?.parse === 'function') { + transformedValue = typeInfo.parse(value) } return { diff --git a/packages/structure/package.json b/packages/structure/package.json index 6d2106b5b9e4..a37f8376862b 100644 --- a/packages/structure/package.json +++ b/packages/structure/package.json @@ -1,7 +1,7 @@ { "name": "@redwoodjs/structure", "description": "noun: the arrangement of and relations between the parts or elements of something complex", - "version": "0.38.1", + "version": "0.39.2", "license": "MIT", "main": "dist/index.js", "files": [ @@ -9,15 +9,15 @@ ], "types": "./dist/index.d.ts", "dependencies": { - "@prisma/sdk": "3.3.0", - "@redwoodjs/internal": "0.38.1", + "@prisma/sdk": "3.5.0", + "@redwoodjs/internal": "0.39.2", "@types/line-column": "1.0.0", - "camelcase": "6.2.0", + "camelcase": "6.2.1", "deepmerge": "4.2.2", "dotenv-defaults": "3.0.0", "enquirer": "2.3.6", - "findup-sync": "4.0.0", - "graphql": "15.6.1", + "findup-sync": "5.0.0", + "graphql": "16.0.1", "lazy-get-decorator": "2.2.0", "line-column": "1.0.2", "lodash": "4.17.21", @@ -25,7 +25,7 @@ "lru-cache": "6.0.0", "proxyquire": "2.1.3", "toml": "3.0.0", - "ts-morph": "12.0.0", + "ts-morph": "12.2.0", "vscode-languageserver": "6.1.1", "vscode-languageserver-textdocument": "1.0.2", "vscode-languageserver-types": "3.16.0", @@ -37,14 +37,14 @@ "directory": "packages/structure" }, "devDependencies": { - "@babel/cli": "7.15.7", + "@babel/cli": "7.16.0", "@types/fs-extra": "9.0.13", - "@types/lodash": "4.14.176", + "@types/lodash": "4.14.177", "@types/lru-cache": "5.1.1", - "@types/node": "16.11.4", - "@types/vscode": "1.61.0", + "@types/node": "16.11.9", + "@types/vscode": "1.62.0", "jest": "27.3.1", - "typescript": "4.4.4" + "typescript": "4.5.2" }, "jest": { "testPathIgnorePatterns": [ diff --git a/packages/testing/config/jest/api/index.js b/packages/testing/config/jest/api/index.js index 760bde242fbd..49163b3b27cc 100644 --- a/packages/testing/config/jest/api/index.js +++ b/packages/testing/config/jest/api/index.js @@ -1,6 +1,10 @@ const path = require('path') -const { getPaths } = require('@redwoodjs/internal') +const { + getPaths, + getApiSideDefaultBabelConfig, + getApiSideBabelPresets, +} = require('@redwoodjs/internal') const rwjsPaths = getPaths() const NODE_MODULES_PATH = path.join(rwjsPaths.base, 'node_modules') @@ -21,4 +25,15 @@ module.exports = { '@redwoodjs/testing/api' ), }, + transform: { + '\\.[jt]sx?$': [ + 'babel-jest', + { + ...getApiSideDefaultBabelConfig(), + presets: getApiSideBabelPresets({ + presetEnv: true, // jest needs code transpiled + }), + }, + ], + }, } diff --git a/packages/testing/config/jest/api/jest.setup.js b/packages/testing/config/jest/api/jest.setup.js index 31172fca2345..1d1a2ebdb47e 100644 --- a/packages/testing/config/jest/api/jest.setup.js +++ b/packages/testing/config/jest/api/jest.setup.js @@ -4,12 +4,16 @@ const path = require('path') const { getSchemaDefinitions, + getSchemaConfig, } = require('@redwoodjs/cli/dist/lib/schemaHelpers') const { setContext } = require('@redwoodjs/graphql-server') const { getPaths } = require('@redwoodjs/internal') const { defineScenario } = require('@redwoodjs/testing/dist/api') const { db } = require(path.join(getPaths().api.src, 'lib', 'db')) +// Error codes thrown by [MySQL, SQLite, Postgres] when foreign key constraint +// fails on DELETE +const FOREIGN_KEY_ERRORS = [1451, 1811, 23503] const DEFAULT_SCENARIO = 'standard' const TEARDOWN_CACHE_PATH = path.join( getPaths().generated.base, @@ -26,10 +30,21 @@ const isIdenticalArray = (a, b) => { return JSON.stringify(a) === JSON.stringify(b) } +// determine what kind of quotes are needed around table names in raw SQL +const getQuoteStyle = () => { + const config = getSchemaConfig() + + switch (config.datasources?.[0]?.provider) { + case 'mysql': + return '`' + default: + return '"' + } +} + const configureTeardown = async () => { - const schemaModels = (await getSchemaDefinitions()).datamodel.models.map( - (m) => m.dbName || m.name - ) + const schema = await getSchemaDefinitions() + const schemaModels = schema.datamodel.models.map((m) => m.dbName || m.name) // check if pre-defined delete order already exists and if so, use it to start if (fs.existsSync(TEARDOWN_CACHE_PATH)) { @@ -65,11 +80,16 @@ const seedScenario = async (scenario) => { } const teardown = async () => { + const quoteStyle = getQuoteStyle() + for (const modelName of teardownOrder) { try { - await db.$executeRawUnsafe(`DELETE from "${modelName}"`) + await db.$executeRawUnsafe( + `DELETE FROM ${quoteStyle}${modelName}${quoteStyle}` + ) } catch (e) { - if (e.message.match(/FOREIGN KEY constraint failed/)) { + const match = e.message.match(/Code: `(\d+)`/) + if (match && FOREIGN_KEY_ERRORS.includes(parseInt(match[1]))) { const index = teardownOrder.indexOf(modelName) teardownOrder[index] = null teardownOrder.push(modelName) diff --git a/packages/testing/config/jest/web/index.js b/packages/testing/config/jest/web/index.js index 70fc6e15a014..85f57fa2ae76 100644 --- a/packages/testing/config/jest/web/index.js +++ b/packages/testing/config/jest/web/index.js @@ -1,13 +1,17 @@ const path = require('path') const { TextDecoder } = require('util') -const { getPaths } = require('@redwoodjs/internal') +const { + getPaths, + getWebSideDefaultBabelConfig, +} = require('@redwoodjs/internal') const rwjsPaths = getPaths() const NODE_MODULES_PATH = path.join(rwjsPaths.base, 'node_modules') module.exports = { roots: ['/src/'], + testEnvironment: 'jest-environment-jsdom', displayName: { color: 'blueBright', name: 'web', @@ -50,5 +54,7 @@ module.exports = { '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|css)$': '@redwoodjs/testing/dist/web/fileMock.js', }, - testEnvironment: 'jest-environment-jsdom', + transform: { + '\\.[jt]sx?$': ['babel-jest', getWebSideDefaultBabelConfig()], + }, } diff --git a/packages/testing/config/storybook/.babelrc b/packages/testing/config/storybook/.babelrc deleted file mode 100644 index 2122bbfd9135..000000000000 --- a/packages/testing/config/storybook/.babelrc +++ /dev/null @@ -1,5 +0,0 @@ -const path = require('path') - -const { getPaths } = require('@redwoodjs/internal') - -module.export = require(path.join(getPaths().web.base, '.babelrc.js')) diff --git a/packages/testing/config/storybook/main.js b/packages/testing/config/storybook/main.js index 4f98f24281e3..2a93c568a08d 100644 --- a/packages/testing/config/storybook/main.js +++ b/packages/testing/config/storybook/main.js @@ -14,6 +14,29 @@ const config = getConfig() const rwjsPaths = getPaths() +function isPackageInstalled(alias) { + try { + return Boolean(require(alias)) + } catch (e) { + return false + } +} + +function withEmotionVersionFallback(config) { + const alias = Object.entries({ + '@emotion/core': '@emotion/core', + '@emotion/styled': '@emotion/styled', + 'emotion-theming': '@emotion/react', + }).reduce((acc, [packageName, alias]) => { + if (isPackageInstalled(alias)) { + acc[packageName] = require.resolve(alias) + } + return acc + }, {}) + + return merge(config, { resolve: { alias } }) +} + const baseConfig = { core: { builder: 'webpack5', @@ -22,6 +45,16 @@ const baseConfig = { `${importStatementPath(rwjsPaths.web.src)}/**/*.stories.{tsx,jsx,js}`, ], addons: [config.web.a11y && '@storybook/addon-a11y'].filter(Boolean), + // Storybook's UI uses a seperate Webpack configuration + managerWebpack: (sbConfig) => { + const userManagerPath = fs.existsSync(rwjsPaths.web.storybookManagerConfig) + ? rwjsPaths.web.storybookManagerConfig + : './manager.example.js' + sbConfig.resolve.alias['~__REDWOOD__USER_STORYBOOK_MANAGER_CONFIG'] = + userManagerPath + + return sbConfig + }, webpackFinal: (sbConfig, { configType }) => { // configType is 'PRODUCTION' or 'DEVELOPMENT', why shout? const isEnvProduction = @@ -91,6 +124,8 @@ const baseConfig = { // https://webpack.js.org/guides/build-performance/#output-without-path-info sbConfig.output.pathinfo = false + sbConfig = withEmotionVersionFallback(sbConfig) + return sbConfig }, } diff --git a/packages/testing/config/storybook/manager.example.js b/packages/testing/config/storybook/manager.example.js new file mode 100644 index 000000000000..4d6026ebb8d9 --- /dev/null +++ b/packages/testing/config/storybook/manager.example.js @@ -0,0 +1,38 @@ +// This is an example of a custom manager.js file. If you'd like to +// customize your own, copy this file to web/config/storybook.manager.js. +// +// If you'd like to theme Storybook, make sure you install the +// @storybook/addons and @storybook/theming dependencies on the web-side. +// https://storybook.js.org/docs/react/configure/theming + +// const { addons } = require('@storybook/addons') +// const { create } = require('@storybook/theming') + +// const theme = create({ +// base: 'light', + +// colorPrimary: '#DC5E38', // red-600 +// colorSecondary: '#DC5E38', // red-600 + +// // UI +// appBg: '#FFFFFF', +// appBorderColor: '#F3C7BA', // red-300 + +// // Toolbar default and active colors +// barTextColor: '#A1A1AA', // gray-400 +// barBg: '#FAEAE5', // red-200 + +// // Form colors +// // inputBg: '#FFFFFF', +// // inputBorder: '#4B5563', // gray-600 +// // inputTextColor: '#111827', // gray-900 +// // inputBorderRadius: 4, + +// // Brand +// brandTitle: 'RedwoodJS Storybook', +// brandUrl: 'https://redwoodjs.com/', +// brandImage: +// 'https://community.redwoodjs.com/uploads/default/original/1X/e47e406616568a5534c0e181b949ac0c3a6e2a1b.png', +// }) + +// addons.setConfig({ theme }) diff --git a/packages/testing/config/storybook/manager.js b/packages/testing/config/storybook/manager.js new file mode 100644 index 000000000000..753f88e9363a --- /dev/null +++ b/packages/testing/config/storybook/manager.js @@ -0,0 +1,9 @@ +const { merge } = require('webpack-merge') + +const baseConfig = {} + +// Load the user's `manager.js`-equivalent using the alias setup in `./main.js` +const userConfig = require('~__REDWOOD__USER_STORYBOOK_MANAGER_CONFIG') + +/** @returns {import('webpack').Configuration} Webpack Configuration with storybook provider */ +module.exports = merge(baseConfig, userConfig) diff --git a/packages/testing/package.json b/packages/testing/package.json index 89281ad030fc..33c431e0eded 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,7 +1,7 @@ { "name": "@redwoodjs/testing", "description": "Tools, wrappers and configuration for testing a Redwood project.", - "version": "0.38.1", + "version": "0.39.2", "files": [ "config", "web", @@ -12,23 +12,23 @@ "types": "dist/index.d.ts", "license": "MIT", "dependencies": { - "@redwoodjs/auth": "0.38.1", - "@redwoodjs/graphql-server": "0.38.1", - "@redwoodjs/internal": "0.38.1", - "@redwoodjs/router": "0.38.1", - "@redwoodjs/web": "0.38.1", + "@redwoodjs/auth": "0.39.2", + "@redwoodjs/graphql-server": "0.39.2", + "@redwoodjs/internal": "0.39.2", + "@redwoodjs/router": "0.39.2", + "@redwoodjs/web": "0.39.2", "@storybook/addon-a11y": "6.3.12", "@storybook/builder-webpack5": "6.3.12", "@storybook/manager-webpack5": "6.3.12", "@storybook/react": "6.3.12", - "@testing-library/jest-dom": "5.14.1", + "@testing-library/jest-dom": "5.15.1", "@testing-library/react": "12.1.2", "@testing-library/user-event": "13.5.0", "@types/babel-core": "6.25.7", - "@types/jest": "27.0.2", - "@types/node": "16.11.4", - "@types/react": "17.0.31", - "@types/react-dom": "17.0.10", + "@types/jest": "27.0.3", + "@types/node": "16.11.9", + "@types/react": "17.0.35", + "@types/react-dom": "17.0.11", "@types/webpack": "5.28.0", "babel-jest": "27.3.1", "babel-plugin-inline-react-svg": "2.0.1", @@ -54,7 +54,7 @@ }, "gitHead": "8be6a35c2dfd5aaeb12d55be4f0c77eefceb7762", "devDependencies": { - "@babel/cli": "7.15.7", - "typescript": "4.4.4" + "@babel/cli": "7.16.0", + "typescript": "4.5.2" } } diff --git a/packages/web/ambient.d.ts b/packages/web/ambient.d.ts index 0e37456917e1..b0f6058091f9 100644 --- a/packages/web/ambient.d.ts +++ b/packages/web/ambient.d.ts @@ -8,16 +8,13 @@ declare global { var __REDWOOD__HELMET_CONTEXT: { helmet?: HelmetData } var __REDWOOD__APP_TITLE: string var __REDWOOD__USE_AUTH: () => AuthContextInterface - /** - * FQDN or absolute path to the GraphQL serverless function, without the trailing slash. - * Example: `./redwood/functions/graphql` or `https://api.redwoodjs.com/graphql` - */ - var RWJS_API_GRAPHQL_URL: string - /** - * FQDN or absolute path to the DbAuth serverless function, without the trailing slash. - * Example: `./redwood/functions/auth` or `https://api.redwoodjs.com/auth` - **/ + + /** URL or absolute path to the DbAuth serverless function */ var RWJS_API_DBAUTH_URL: string + /** URL or absolute path to the GraphQL serverless function */ + var RWJS_API_GRAPHQL_URL: string + /** URL or absolute path to serverless functions */ + var RWJS_API_URL: string namespace NodeJS { interface Global { @@ -29,10 +26,12 @@ declare global { __REDWOOD__APP_TITLE: string __REDWOOD__USE_AUTH: () => AuthContextInterface - /** FQDN or absolute path to the GraphQL serverless function */ + /** URL or absolute path to the GraphQL serverless function */ RWJS_API_GRAPHQL_URL: string - /** FQDN or absolute path to the DbAuth serverless function */ + /** URL or absolute path to the DbAuth serverless function */ RWJS_API_DBAUTH_URL: string + /** URL or absolute path to serverless functions */ + RWJS_API_URL: string } } } diff --git a/packages/web/package.json b/packages/web/package.json index d1da1795b05c..894ec8ebef14 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@redwoodjs/web", - "version": "0.38.1", + "version": "0.39.2", "files": [ "dist", "apollo", @@ -11,10 +11,10 @@ "types": "dist/index.d.ts", "license": "MIT", "dependencies": { - "@apollo/client": "3.4.16", - "@redwoodjs/auth": "0.38.1", - "core-js": "3.18.3", - "graphql": "15.6.1", + "@apollo/client": "3.5.5", + "@redwoodjs/auth": "0.39.2", + "core-js": "3.19.1", + "graphql": "16.0.1", "proptypes": "1.1.0", "react-helmet-async": "1.1.2", "react-hot-toast": "2.1.1" @@ -28,10 +28,10 @@ "react": "17.0.2" }, "devDependencies": { - "@babel/cli": "7.15.7", - "@types/react": "17.0.31", + "@babel/cli": "7.16.0", + "@types/react": "17.0.35", "jest": "27.3.1", - "typescript": "4.4.4" + "typescript": "4.5.2" }, "scripts": { "build": "yarn build:js && yarn build:types", diff --git a/packages/web/src/apollo/index.tsx b/packages/web/src/apollo/index.tsx index d358d046ac1d..60dafb20d8b4 100644 --- a/packages/web/src/apollo/index.tsx +++ b/packages/web/src/apollo/index.tsx @@ -1,15 +1,22 @@ -import type { ApolloClientOptions } from '@apollo/client' +import type { + ApolloClientOptions, + setLogVerbosity, + ApolloCache, +} from '@apollo/client' import * as apolloClient from '@apollo/client' import { setContext } from '@apollo/client/link/context' +import type { F } from 'ts-toolbelt' + // Note: Importing directly from `apollo/client` does not work properly in Storybook. const { ApolloProvider, ApolloClient, ApolloLink, - createHttpLink, + HttpLink, InMemoryCache, useQuery, useMutation, + setLogVerbosity: apolloSetLogVerbosity, } = apolloClient import type { AuthContextInterface } from '@redwoodjs/auth' @@ -26,19 +33,86 @@ export type ApolloClientCacheConfig = apolloClient.InMemoryCacheConfig export type GraphQLClientConfigProp = Omit< ApolloClientOptions, - 'cache' + 'cache' | 'link' > & { + cache?: ApolloCache + /** + * Configuration for Apollo Client's `InMemoryCache`. + * See https://www.apollographql.com/docs/react/caching/cache-configuration/. + */ cacheConfig?: ApolloClientCacheConfig + /** + * Configuration for the terminating `HttpLink`. + * See https://www.apollographql.com/docs/react/api/link/apollo-link-http/#httplink-constructor-options. + * + * For example, you can use this prop to set the credentials policy so that cookies can be sent to other domains: + * + * ```js + * + * ``` + */ + httpLinkConfig?: apolloClient.HttpOptions + /** + * Extend or overwrite `RedwoodApolloProvider`'s Apollo Link. + * + * To overwrite Redwood's Apollo Link, just provide your own `ApolloLink`. + * + * To extend Redwood's Apollo Link, provide a function—it'll get passed an array of Redwood's Apollo Links: + * + * ```js + * const link = (rwLinks) => { + * const consoleLink = new ApolloLink((operation, forward) => { + * console.log(operation.operationName) + * return forward(operation) + * }) + * + * return ApolloLink.from([consoleLink, ...rwLinks]) + * } + * ``` + * + * If you do this, there's several things you should keep in mind: + * - your function should return a single link (e.g., using `ApolloLink.from`; see https://www.apollographql.com/docs/react/api/link/introduction/#additive-composition) + * - the `HttpLink` should come last (https://www.apollographql.com/docs/react/api/link/introduction/#the-terminating-link) + */ + link?: + | apolloClient.ApolloLink + | (( + rwLinks: [ + apolloClient.ApolloLink, + apolloClient.ApolloLink, + apolloClient.HttpLink + ] + ) => apolloClient.ApolloLink) } export type UseAuthProp = () => AuthContextInterface const ApolloProviderWithFetchConfig: React.FunctionComponent<{ - config?: GraphQLClientConfigProp + config: Omit & { + cache: ApolloCache + } useAuth: UseAuthProp -}> = ({ config = {}, children, useAuth }) => { - const { uri, headers } = useFetchConfig() - const { getToken, type: authProviderType, isAuthenticated } = useAuth() + logLevel: F.Return +}> = ({ config, children, useAuth, logLevel }) => { + /** + * Should they run into it, + * this helps users with the "Cannot render cell; GraphQL success but data is null" error. + * + * @see {@link https://github.com/redwoodjs/redwood/issues/2473} + */ + apolloSetLogVerbosity(logLevel) + + /** + * Here we're using Apollo Link to customize Apollo Client's data flow. + * + * Although we're sending conventional HTTP-based requests and could just pass `uri` instead of `link`, + * we need to fetch a new token on every request, making middleware a good fit for this. + * + * @see {@link https://www.apollographql.com/docs/react/api/link/introduction/} + */ + const { isAuthenticated, getToken, type: authProviderType } = useAuth() const withToken = setContext(async () => { if (isAuthenticated && getToken) { @@ -50,6 +124,8 @@ const ApolloProviderWithFetchConfig: React.FunctionComponent<{ return { token: null } }) + const { headers, uri } = useFetchConfig() + const authMiddleware = new ApolloLink((operation, forward) => { const { token } = operation.getContext() @@ -72,14 +148,66 @@ const ApolloProviderWithFetchConfig: React.FunctionComponent<{ return forward(operation) }) - const httpLink = createHttpLink({ uri }) - - const { cacheConfig, ...forwardConfig } = config ?? {} + /** + * A terminating link. + * Apollo Client uses this to send GraphQL operations to a server over HTTP. + * + * @see {@link https://www.apollographql.com/docs/react/api/link/introduction/#the-terminating-link} + */ + const { httpLinkConfig, link: userLink, ...rest } = config ?? {} + + const httpLink = new HttpLink({ uri, ...httpLinkConfig }) + + /** + * The order here's important. + */ + const rwLinks = [withToken, authMiddleware, httpLink] as [ + apolloClient.ApolloLink, + apolloClient.ApolloLink, + apolloClient.HttpLink + ] + + /** + * If the user provides a link that's a function, + * we want to call it with our link. + * + * If it's not, we just want to use it. + * + * And if they don't provide it, we just want to use ours. + */ + let link = ApolloLink.from(rwLinks) + + if (userLink) { + link = typeof userLink === 'function' ? userLink(rwLinks) : userLink + } const client = new ApolloClient({ - cache: new InMemoryCache(cacheConfig), - ...forwardConfig, - link: ApolloLink.from([withToken, authMiddleware.concat(httpLink)]), + /** + * Default options for every Cell. + * Better to specify them here than in `beforeQuery` + * where it's too easy to overwrite them. + * + * @see {@link https://www.apollographql.com/docs/react/api/core/ApolloClient/#example-defaultoptions-object} + */ + defaultOptions: { + watchQuery: { + /** + * The `fetchPolicy` we expect: + * + * > Apollo Client executes the full query against both the cache and your GraphQL server. + * > The query automatically updates if the result of the server-side query modifies cached fields. + * + * @see {@link https://www.apollographql.com/docs/react/data/queries/#cache-and-network} + */ + fetchPolicy: 'cache-and-network', + /** + * So that Cells rerender when refetching: {@link https://www.apollographql.com/docs/react/data/queries/#inspecting-loading-states} + */ + notifyOnNetworkStatusChange: true, + }, + }, + link, + ...rest, }) return {children} @@ -88,12 +216,31 @@ const ApolloProviderWithFetchConfig: React.FunctionComponent<{ export const RedwoodApolloProvider: React.FunctionComponent<{ graphQLClientConfig?: GraphQLClientConfigProp useAuth?: UseAuthProp -}> = ({ graphQLClientConfig, useAuth = useRWAuth, children }) => { + logLevel?: F.Return +}> = ({ + graphQLClientConfig, + useAuth = useRWAuth, + logLevel = 'debug', + children, +}) => { + /** + * Since Apollo Client gets re-instantiated on auth changes, + * we have to instantiate `InMemoryCache` here, + * so that it doesn't get wiped. + */ + const { cacheConfig, ...config } = graphQLClientConfig ?? {} + + const cache = new InMemoryCache(cacheConfig) + return ( {children} diff --git a/packages/web/src/assetImports.ts b/packages/web/src/assetImports.ts new file mode 100644 index 000000000000..7141ecb8095c --- /dev/null +++ b/packages/web/src/assetImports.ts @@ -0,0 +1,53 @@ +// These declarations are based on the webpack bundler settings +// For svgs we use a babel-plugin +// see: redwood/packages/internal/src/build/babel/web.ts + +// For other assets, we're using webpack asset loader +// see: redwood/packages/core/config/webpack.common.js +// These declarations are the most common types + +declare module '*.svg' { + import React = require('react') + const ReactComponent: React.FC> + export default ReactComponent +} + +declare module '*.png' { + const content: string + export default content +} + +declare module '*.bmp' { + const content: string + export default content +} + +declare module '*.jpg' { + const content: string + export default content +} + +declare module '*.jpe?g' { + const content: string + export default content +} + +declare module '*.gif' { + const content: string + export default content +} + +declare module '*.webp' { + const content: string + export default content +} + +declare module '*.ico' { + const content: string + export default content +} + +declare module '*.pdf' { + const content: string + export default content +} diff --git a/packages/web/src/components/createCell.test.tsx b/packages/web/src/components/createCell.test.tsx index afcde88870ee..44733102e8cb 100644 --- a/packages/web/src/components/createCell.test.tsx +++ b/packages/web/src/components/createCell.test.tsx @@ -276,6 +276,32 @@ describe('createCell', () => { screen.getByText(/^{"msg":"System malfunction"}$/) }) + test('Passes error and errorCode to Failure component', async () => { + const TestCell = createCell({ + // @ts-expect-error - Purposefully using a plain string here. + QUERY: 'query TestQuery { answer }', + Failure: ({ error, errorCode }) => ( + <> + {JSON.stringify(error)},code:{errorCode} + + ), + Success: () => <>Great success!, + Loading: () => <>Fetching answer..., + }) + + const myUseQueryHook = () => ({ + error: { msg: 'System malfunction' }, + errorCode: 'SIMON_SAYS_NO', + }) + + render( + + + + ) + screen.getByText(/^{"msg":"System malfunction"},code:SIMON_SAYS_NO$/) + }) + test('Passes children to Failure', async () => { const TestCell = createCell({ // @ts-expect-error - Purposefully using a plain string here. @@ -326,4 +352,51 @@ describe('createCell', () => { // Restore writing to stderr. console.error = err }) + + test('Allows overriding of default isDataEmpty', async () => { + const TestCell = createCell({ + // @ts-expect-error - Purposefully using a plain string here. + QUERY: 'query TestQuery { answer }', + Success: () => <>Great success!, + Empty: () => <>Got nothing, + isEmpty: () => true, + }) + + const myUseQueryHook = () => ({ + data: {}, + loading: false, + }) + + render( + + + + ) + + screen.getByText(/^Got nothing$/) + }) + + test('Allows mixing isDataEmpty with custom logic', async () => { + const TestCell = createCell({ + // @ts-expect-error - Purposefully using a plain string here. + QUERY: 'query TestQuery { answer }', + Success: () => <>Great success!, + Empty: () => <>Got nothing, + isEmpty: (data, { isDataEmpty }) => + isDataEmpty(data) || data.answer === '0', + }) + + const myUseQueryHook = () => ({ + data: { answer: '0' }, + loading: false, + }) + + render( + + + + ) + + screen.getByText(/^Got nothing$/) + }) }) diff --git a/packages/web/src/components/createCell.tsx b/packages/web/src/components/createCell.tsx index f5becb431e0b..0e049d95bf2d 100644 --- a/packages/web/src/components/createCell.tsx +++ b/packages/web/src/components/createCell.tsx @@ -3,19 +3,14 @@ import type { ComponentProps, JSXElementConstructor } from 'react' import type { DocumentNode } from 'graphql' import type { A } from 'ts-toolbelt' +/** + * This is part of how we let users swap out their GraphQL client while staying compatible with Cells. + */ import { useQuery } from './GraphQLHooksProvider' -interface QueryProps { - query: DocumentNode - children: (result: QueryOperationResult) => React.ReactElement -} - -const Query = ({ children, query, ...rest }: QueryProps) => { - const result = useQuery(query, rest) - return result ? children(result) : null -} - -/** Cell component props which is the combination of Query variables and Success props */ +/** + * Cell component props which is the combination of query variables and Success props. + */ export type CellProps< CellSuccess extends keyof JSX.IntrinsicElements | JSXElementConstructor, GQLResult, @@ -28,71 +23,168 @@ export type CellProps< (GQLVariables extends { [key: string]: never } ? unknown : GQLVariables) > -export type DataObject = { [key: string]: unknown } +export type CellLoadingProps = Partial< + Omit +> export type CellFailureProps = Partial< - Omit & { + Omit & { error: QueryOperationResult['error'] | Error // for tests and storybook + /** + * @see {@link https://www.apollographql.com/docs/apollo-server/data/errors/#error-codes} + */ + errorCode: string updating: boolean } > -export type CellLoadingProps = Partial< - Omit -> -// @MARK not sure about this partial, but we need to do this for tests and storybook -// `updating` is just `loading` renamed; since Cells default to stale-while-refetch, -// this prop lets users render something like a spinner to show that a request is in-flight +/** + * @MARK not sure about this partial, but we need to do this for tests and storybook. + * + * `updating` is just `loading` renamed; since Cells default to stale-while-refetch, + * this prop lets users render something like a spinner to show that a request is in-flight. + */ export type CellSuccessProps = Partial< - Omit, 'error' | 'data'> & { updating: boolean } + Omit, 'loading' | 'error' | 'data'> & { + updating: boolean + } > & A.Compute // pre-computing makes the types more readable on hover +/** + * A coarse type for the `data` prop returned by `useQuery`. + * + * ```js + * { + * data: { + * post: { ... } + * } + * } + * ``` + */ +export type DataObject = { [key: string]: unknown } + +/** + * The main interface. + */ export interface CreateCellProps { - beforeQuery?: (props: TProps) => { variables: TProps } + /** + * The GraphQL syntax tree to execute or function to call that returns it. + * If `QUERY` is a function, it's called with the result of `beforeQuery`. + */ QUERY: DocumentNode | ((variables: Record) => DocumentNode) + /** + * Parse `props` into query variables. Most of the time `props` are appropriate variables as is. + */ + beforeQuery?: (props: TProps) => { variables: TProps } + /** + * Sanitize the data returned from the query. + */ afterQuery?: (data: DataObject) => DataObject + /** + * How to decide if the result of a query should render the `Empty` component. + * The default implementation checks that the first field isn't `null` or an empty array. + * + * @example + * + * In the example below, only `users` is checked: + * + * ```js + * export const QUERY = gql` + * users { + * name + * } + * posts { + * title + * } + * ` + * ``` + */ + isEmpty?: ( + response: DataObject, + options: { + isDataEmpty: (data: DataObject) => boolean + } + ) => boolean + /** + * If the query's in flight and there's no stale data, render this. + */ Loading?: React.FC> + /** + * If something went wrong, render this. + */ Failure?: React.FC> - Empty?: React.FC> + /** + * If no data was returned, render this. + */ + Empty?: React.FC> + /** + * If data was returned, render this. + */ Success: React.FC> + /** + * What to call the Cell. Defaults to the filename. + */ + displayName?: string } /** - * Is a higher-order-component that executes a GraphQL query and automatically - * manages the lifecycle of that query. If you export named parameters that match - * the required params of `createCell` it will be automatically wrapped in this - * HOC via a babel-plugin. + * The default `isEmpty` implementation. Checks if the first field is `null` or an empty array. * - * @param {string} QUERY - The graphQL syntax tree to execute - * @param {function=} beforeQuery - Prepare the variables and options for the query - * @param {function=} afterQuery - Sanitize the data return from graphQL - * @param {Component=} Loading - Loading, render this component - * @param {Component=} Empty - Loading, render this component - * @param {Component=} Failure - Something went wrong, render this component - * @param {Component} Success - Data has loaded, render this component + * @remarks * - * @example - * ```js - * // IMPLEMENTATION: - * // `src/ExampleComponent/index.js`. This file is automatically dealt with - * in webpack. + * Consider the following queries. The former returns an object, the latter a list: * - * import { createCell } from '@redwoodjs/web' - * import * as cell from './ExampleComponent' + * ```js + * export const QUERY = gql` + * post { + * title + * } + * ` * - * export default createCell(cell) + * export const QUERY = gql` + * posts { + * title + * } + * ` * ``` * - * // USAGE: - * // Now you have a cell component that will handle the lifecycle methods of - * // a query - * import ExampleComponent from 'src/ExampleComponent' + * If either are "empty", they return: + * + * ```js + * { + * data: { + * post: null + * } + * } * - * const ThingThatUsesExampleComponent = () => { - * return
+ * { + * data: { + * posts: [] + * } * } + * ``` + * + * Note that the latter can return `null` as well depending on the SDL (`posts: [Post!]`). + * + * @remarks + * + * We only check the first field (in the example below, `users`): + * + * ```js + * export const QUERY = gql` + * users { + * name + * } + * posts { + * title + * } + * ` + * ``` */ +const dataField = (data: DataObject) => { + return data[Object.keys(data)[0]] +} const isDataNull = (data: DataObject) => { return dataField(data) === null @@ -103,78 +195,102 @@ const isDataEmptyArray = (data: DataObject) => { return Array.isArray(field) && field.length === 0 } -const dataField = (data: DataObject) => { - return data[Object.keys(data)[0]] -} - -const isEmpty = (data: DataObject) => { +const isDataEmpty = (data: DataObject) => { return isDataNull(data) || isDataEmptyArray(data) } +/** + * Creates a Cell out of a GraphQL query and components that track to its lifecycle. + */ export function createCell({ + QUERY, beforeQuery = (props) => ({ variables: props, + /** + * We're duplicating these props here due to a suspected bug in Apollo Client v3.5.4 + * (it doesn't seem to be respecting `defaultOptions` in `RedwoodApolloProvider`.) + * + * @see {@link https://github.com/apollographql/apollo-client/issues/9105} + */ fetchPolicy: 'cache-and-network', notifyOnNetworkStatusChange: true, }), - QUERY, afterQuery = (data) => ({ ...data }), + isEmpty = isDataEmpty, Loading = () => <>Loading..., Failure, Empty, Success, + displayName = 'Cell', }: CreateCellProps): React.FC { + /** + * If we're prerendering, render the Cell's Loading component and exit early. + */ if (global.__REDWOOD__PRERENDERING) { - // If its prerendering, render the Cell's Loading component - // and exit early. The apolloclient loading props aren't available here, so 'any' + /** + * Apollo Client's props aren't available here, so 'any'. + */ return (props) => } - return (props) => { - // destructuring to not pass children to beforeQuery - const { children: _children, ...variables } = props - - return ( - - {({ error, loading, data, ...queryRest }) => { - if (error) { - if (Failure) { - return ( - - ) - } else { - throw error - } - } else if (data) { - if (typeof Empty !== 'undefined' && isEmpty(data)) { - return ( - - ) - } else { - return ( - - ) - } - } else if (loading) { - return - } else { - throw new Error( - 'Cannot render cell: GraphQL success but `data` is null' - ) - } - }} - + function NamedCell(props: React.PropsWithChildren) { + /** + * Right now, Cells don't render `children`. + */ + const { children: _, ...variables } = props + + const options = beforeQuery(variables) + + const { error, loading, data, ...queryRest } = useQuery( + typeof QUERY === 'function' ? QUERY(options) : QUERY, + options ) + + const commonProps = { + updating: loading, + ...queryRest, + ...props, + } + + if (error) { + if (Failure) { + return ( + + ) + } else { + throw error + } + } else if (data) { + const afterQueryData = afterQuery(data) + + if (isEmpty(data, { isDataEmpty }) && Empty) { + return + } else { + return + } + } else if (loading) { + return + } else { + /** + * There really shouldn't be an `else` here, but like any piece of software, GraphQL clients have bugs. + * If there's no `error` and there's no `data` and we're not `loading`, something's wrong. Most likely with the cache. + * + * @see {@link https://github.com/redwoodjs/redwood/issues/2473#issuecomment-971864604} + */ + console.warn( + `If you're using Apollo Client, check for its debug logs here in the console, which may help explain the error.` + ) + throw new Error( + 'Cannot render Cell: reached an unexpected state where the query succeeded but `data` is `null`. If this happened in Storybook, your query could be missing fields; otherwise this is most likely a GraphQL caching bug. Note that adding an `id` field to all the fields on your query may fix the issue.' + ) + } } + + NamedCell.displayName = displayName + + return NamedCell } diff --git a/packages/web/src/config.ts b/packages/web/src/config.ts index 83018e699c9b..70cc4f1c2760 100644 --- a/packages/web/src/config.ts +++ b/packages/web/src/config.ts @@ -1,4 +1,5 @@ // The `process.env.*` values are replaced by webpack at build time. global.RWJS_API_GRAPHQL_URL = process.env.RWJS_API_GRAPHQL_URL as string global.RWJS_API_DBAUTH_URL = process.env.RWJS_API_DBAUTH_URL as string +global.RWJS_API_URL = process.env.RWJS_API_URL as string global.__REDWOOD__APP_TITLE = process.env.__REDWOOD__APP_TITLE as string diff --git a/packages/web/src/global.web-auto-imports.ts b/packages/web/src/global.web-auto-imports.ts index b22c10d298b2..6c8a756e5514 100644 --- a/packages/web/src/global.web-auto-imports.ts +++ b/packages/web/src/global.web-auto-imports.ts @@ -3,19 +3,21 @@ import type _React from 'react' import type _gql from 'graphql-tag' import type _PropTypes from 'prop-types' +// These are the global types exposed to a user's project +// For "internal" global types see ambient.d.ts + declare global { const React: typeof _React const PropTypes: typeof _PropTypes const gql: typeof _gql interface Window { - /** - * @deprecated Please use RWJS_API_GRAPHQL_URL or RWJS_API_DBAUTH_URL - */ - __REDWOOD__API_PROXY_PATH: never - + /** URL or absolute path to the DbAuth serverless function */ RWJS_API_DBAUTH_URL: string + /** URL or absolute path to the GraphQL serverless function */ RWJS_API_GRAPHQL_URL: string + /** URL or absolute path to serverless functions */ + RWJS_API_URL: string __REDWOOD__APP_TITLE: string } @@ -47,5 +49,4 @@ declare global { onCompleted?: (data: TData) => void [key: string]: any } - /* eslint-enable @typescript-eslint/no-unused-vars */ } diff --git a/packages/web/src/index.ts b/packages/web/src/index.ts index 493162de7e19..2233b350f91e 100644 --- a/packages/web/src/index.ts +++ b/packages/web/src/index.ts @@ -1,5 +1,6 @@ import './global.web-auto-imports' import './config' +import './assetImports' export { default as FatalErrorBoundary } from './components/FatalErrorBoundary' export { diff --git a/tasks/all-contributors/.all-contributorsrc b/tasks/all-contributors/.all-contributorsrc index 1efd1f4c90f7..ce25e4ead570 100644 --- a/tasks/all-contributors/.all-contributorsrc +++ b/tasks/all-contributors/.all-contributorsrc @@ -1709,7 +1709,8 @@ "avatar_url": "https://avatars.githubusercontent.com/u/15746?v=4", "profile": "https://github.com/zakmandhro", "contributions": [ - "code" + "code", + "doc" ] }, { @@ -1875,7 +1876,8 @@ "avatar_url": "https://avatars.githubusercontent.com/u/328257?v=4", "profile": "https://github.com/viperfx", "contributions": [ - "code" + "code", + "doc" ] }, { @@ -2200,6 +2202,106 @@ "contributions": [ "code" ] + }, + { + "login": "memarino92", + "name": "Michael Marino", + "avatar_url": "https://avatars.githubusercontent.com/u/62777339?v=4", + "profile": "https://github.com/memarino92", + "contributions": [ + "code", + "doc" + ] + }, + { + "login": "kibertoad", + "name": "Igor Savin", + "avatar_url": "https://avatars.githubusercontent.com/u/1847934?v=4", + "profile": "https://github.com/kibertoad", + "contributions": [ + "code" + ] + }, + { + "login": "jacobarriola", + "name": "Jacob Arriola", + "avatar_url": "https://avatars.githubusercontent.com/u/1371573?v=4", + "profile": "https://jacobarriola.com/", + "contributions": [ + "code" + ] + }, + { + "login": "v-gjy", + "name": "Jingying Gu", + "avatar_url": "https://avatars.githubusercontent.com/u/90813519?v=4", + "profile": "https://github.com/microsoft/Secure-Supply-Chain/", + "contributions": [ + "code" + ] + }, + { + "login": "TimKolberger", + "name": "Tim Kolberger", + "avatar_url": "https://avatars.githubusercontent.com/u/16899513?v=4", + "profile": "https://kolberger.eu/", + "contributions": [ + "code" + ] + }, + { + "login": "nzdjb", + "name": "nzdjb", + "avatar_url": "https://avatars.githubusercontent.com/u/825061?v=4", + "profile": "https://github.com/nzdjb", + "contributions": [ + "code" + ] + }, + { + "login": "vivshaw", + "name": "Hannah Vivian Shaw", + "avatar_url": "https://avatars.githubusercontent.com/u/23173985?v=4", + "profile": "https://github.com/vivshaw", + "contributions": [ + "doc" + ] + }, + { + "login": "usman-coe", + "name": "usman kareemee", + "avatar_url": "https://avatars.githubusercontent.com/u/2543952?v=4", + "profile": "https://github.com/usman-coe", + "contributions": [ + "doc" + ] + }, + { + "login": "watway", + "name": "watway", + "avatar_url": "https://avatars.githubusercontent.com/u/2321110?v=4", + "profile": "https://github.com/watway", + "contributions": [ + "doc" + ] + }, + { + "login": "edapm", + "name": "Edward Mason", + "avatar_url": "https://avatars.githubusercontent.com/u/67737851?v=4", + "profile": "https://github.com/edapm", + "contributions": [ + "tutorial" + ] + }, + { + "login": "system32uwu", + "name": "Mateo Carriquí", + "avatar_url": "https://avatars.githubusercontent.com/u/29718978?v=4", + "profile": "https://tryhackme.com/p/zast99", + "contributions": [ + "tutorial" + ] } ] } \ No newline at end of file diff --git a/tasks/all-contributors/.learn.all-contributorsrc b/tasks/all-contributors/.learn.all-contributorsrc index 9c9103287c84..63429c5ae2b4 100644 --- a/tasks/all-contributors/.learn.all-contributorsrc +++ b/tasks/all-contributors/.learn.all-contributorsrc @@ -244,6 +244,24 @@ "contributions": [ "tutorial" ] + }, + { + "login": "edapm", + "name": "Edward Mason", + "avatar_url": "https://avatars.githubusercontent.com/u/67737851?v=4", + "profile": "https://github.com/edapm", + "contributions": [ + "tutorial" + ] + }, + { + "login": "system32uwu", + "name": "Mateo Carriquí", + "avatar_url": "https://avatars.githubusercontent.com/u/29718978?v=4", + "profile": "https://tryhackme.com/p/zast99", + "contributions": [ + "tutorial" + ] } ], "contributorsPerLine": 5 diff --git a/tasks/all-contributors/.rwjs.com.all-contributorsrc b/tasks/all-contributors/.rwjs.com.all-contributorsrc index a333a5052c0b..9bdcf613b32d 100644 --- a/tasks/all-contributors/.rwjs.com.all-contributorsrc +++ b/tasks/all-contributors/.rwjs.com.all-contributorsrc @@ -1225,6 +1225,60 @@ "contributions": [ "doc" ] + }, + { + "login": "zakmandhro", + "name": "Zak Mandhro", + "avatar_url": "https://avatars.githubusercontent.com/u/15746?v=4", + "profile": "https://github.com/zakmandhro", + "contributions": [ + "doc" + ] + }, + { + "login": "vivshaw", + "name": "Hannah Vivian Shaw", + "avatar_url": "https://avatars.githubusercontent.com/u/23173985?v=4", + "profile": "https://github.com/vivshaw", + "contributions": [ + "doc" + ] + }, + { + "login": "memarino92", + "name": "Michael Marino", + "avatar_url": "https://avatars.githubusercontent.com/u/62777339?v=4", + "profile": "https://github.com/memarino92", + "contributions": [ + "doc" + ] + }, + { + "login": "viperfx", + "name": "Tharshan Muthulingam", + "avatar_url": "https://avatars.githubusercontent.com/u/328257?v=4", + "profile": "https://uservitalshq.com/", + "contributions": [ + "doc" + ] + }, + { + "login": "usman-coe", + "name": "usman kareemee", + "avatar_url": "https://avatars.githubusercontent.com/u/2543952?v=4", + "profile": "https://github.com/usman-coe", + "contributions": [ + "doc" + ] + }, + { + "login": "watway", + "name": "watway", + "avatar_url": "https://avatars.githubusercontent.com/u/2321110?v=4", + "profile": "https://github.com/watway", + "contributions": [ + "doc" + ] } ], "contributorsPerLine": 5 diff --git a/tasks/all-contributors/README.md b/tasks/all-contributors/README.md index 84f034b67e06..71140685f229 100644 --- a/tasks/all-contributors/README.md +++ b/tasks/all-contributors/README.md @@ -48,6 +48,7 @@ _note: this file is also used for all aggregated contributors_ ### Step 1: Check for new contributors and add to `*rc` files `cd tasks/all-contributors` + `yarn install` > **NOTE:** diff --git a/tasks/e2e/cypress/integration/03-storybook/storybook.spec.js b/tasks/e2e/cypress/integration/03-storybook/storybook.spec.js index 7c92f8e3e8b3..8b055e329c02 100644 --- a/tasks/e2e/cypress/integration/03-storybook/storybook.spec.js +++ b/tasks/e2e/cypress/integration/03-storybook/storybook.spec.js @@ -81,18 +81,18 @@ describe( it('4. Pages: AboutPage, ContactPage, and HomePage', () => { // About cy.visit( - `/storybook/iframe.html?id=pages-aboutpage--generated&viewMode=story` + '/storybook/iframe.html?id=pages-aboutpage--generated&args=&viewMode=story' ) cy.get('p').should('contain.text', 'This site was created') // Contact cy.visit( - `/storybook/iframe.html?id=pages-contactpage--generated&viewMode=story` + `/storybook/iframe.html?id=pages-contactpage--generated&args=&viewMode=story` ) cy.get('label').eq(0).should('contain.text', 'Name') cy.get('button').should('contain.text', 'Save') // Home cy.visit( - `/storybook/iframe.html?id=pages-homepage--generated&viewMode=story` + `/storybook/iframe.html?id=pages-homepage--generated&args=&viewMode=story` ) cy.get('article div').eq(0).should('contain.text', 'Hello world!') cy.get('header h2').eq(1).should('contain.text', 'Third post') diff --git a/tasks/e2e/package.json b/tasks/e2e/package.json index baa67e6b8bba..bad89f9bf74e 100644 --- a/tasks/e2e/package.json +++ b/tasks/e2e/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "private": true, "devDependencies": { - "cypress": "8.6.0", - "cypress-wait-until": "1.7.1" + "cypress": "9.1.0", + "cypress-wait-until": "1.7.2" } } diff --git a/tasks/e2e/yarn.lock b/tasks/e2e/yarn.lock index c43581930603..f75e51c3b70c 100644 --- a/tasks/e2e/yarn.lock +++ b/tasks/e2e/yarn.lock @@ -5,9 +5,9 @@ __metadata: version: 4 cacheKey: 8c0 -"@cypress/request@npm:^2.88.6": - version: 2.88.6 - resolution: "@cypress/request@npm:2.88.6" +"@cypress/request@npm:^2.88.7": + version: 2.88.7 + resolution: "@cypress/request@npm:2.88.7" dependencies: aws-sign2: ~0.7.0 aws4: ^1.8.0 @@ -28,7 +28,7 @@ __metadata: tough-cookie: ~2.5.0 tunnel-agent: ^0.6.0 uuid: ^8.3.2 - checksum: f0d19dc36a223739f23fd454c210116f691251f84d2fecce76e83ec61618b921749c5c1f4a91c8edc493fa9cd33678015625104ca7b1c083322b9f846cccc462 + checksum: 8c5144a0816117053f1e0ea3fc08ecaecd01b6f9f4b005d2362c3560444fc6af0b3aeb30464bb852be8c72d13d315346e35ca70693d350c7d391a9c4df933b04 languageName: node linkType: hard @@ -42,13 +42,6 @@ __metadata: languageName: node linkType: hard -"@types/color-name@npm:^1.1.1": - version: 1.1.1 - resolution: "@types/color-name@npm:1.1.1" - checksum: 2abeac8d8d833e0622c66f21487cc8b522792abb2eff2e40df0e3e53261728cb65bab590edf24953eb8d8653ec88044dc801d9a4e58c489a0f10c025de522868 - languageName: node - linkType: hard - "@types/node@npm:*": version: 15.6.2 resolution: "@types/node@npm:15.6.2" @@ -131,7 +124,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^4.0.0": +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" dependencies: @@ -140,16 +133,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^4.1.0": - version: 4.2.1 - resolution: "ansi-styles@npm:4.2.1" - dependencies: - "@types/color-name": ^1.1.1 - color-convert: ^2.0.1 - checksum: 12d0ebf418666965807ab03e030c1dee52f9e219dde64ce5044a6ca658b8ceb2224d283a8300f3c05568b3428c5707f9cf882c8ddd4dce219ed0528423731d61 - languageName: node - linkType: hard - "arch@npm:^2.2.0": version: 2.2.0 resolution: "arch@npm:2.2.0" @@ -238,7 +221,7 @@ __metadata: languageName: node linkType: hard -"bluebird@npm:^3.7.2": +"bluebird@npm:3.7.2": version: 3.7.2 resolution: "bluebird@npm:3.7.2" checksum: 680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2 @@ -418,25 +401,25 @@ __metadata: languageName: node linkType: hard -"cypress-wait-until@npm:1.7.1": - version: 1.7.1 - resolution: "cypress-wait-until@npm:1.7.1" - checksum: 19948f2c7033d8cd9fecfbd536059969d9cd4ab7f6cbf1269f068e7870e255fc592d88b0722075e7f66a91fea91d377c689b24fa0e4e3658b1c95f7df65bd95d +"cypress-wait-until@npm:1.7.2": + version: 1.7.2 + resolution: "cypress-wait-until@npm:1.7.2" + checksum: 268c1327006d5b249aba80ceaf6813aed7ce149bbd5849602fe6af188acd96e0bec73dc1933c7b8c3ff67b8e35ac59b44d2632b0f1d6495e1ad21887fa9ec3a5 languageName: node linkType: hard -"cypress@npm:8.6.0": - version: 8.6.0 - resolution: "cypress@npm:8.6.0" +"cypress@npm:9.1.0": + version: 9.1.0 + resolution: "cypress@npm:9.1.0" dependencies: - "@cypress/request": ^2.88.6 + "@cypress/request": ^2.88.7 "@cypress/xvfb": ^1.2.4 "@types/node": ^14.14.31 "@types/sinonjs__fake-timers": ^6.0.2 "@types/sizzle": ^2.3.2 arch: ^2.2.0 blob-util: ^2.0.2 - bluebird: ^3.7.2 + bluebird: 3.7.2 cachedir: ^2.3.0 chalk: ^4.1.0 check-more-types: ^2.24.0 @@ -464,7 +447,6 @@ __metadata: ospath: ^1.2.2 pretty-bytes: ^5.6.0 proxy-from-env: 1.0.0 - ramda: ~0.27.1 request-progress: ^3.0.0 supports-color: ^8.1.1 tmp: ~0.2.1 @@ -473,7 +455,7 @@ __metadata: yauzl: ^2.10.0 bin: cypress: bin/cypress - checksum: 6d29723e3544861994fb30c8c0c0d1d23e2a9457c7ecbbba38363af695175ffabbcad6431667b18ae4b61b7142f05b0d0b77fd9bb61c84a34cb818938fc6c38e + checksum: a3f2ed950bb5df817aaef9e85f8a1535a2baec6fe3391234d73aef38f7fd8cae9bf8db461a42d90d5619154b3d7de9b0398063b9c1527cec23225e5ca0486c6b languageName: node linkType: hard @@ -502,16 +484,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.1.1": - version: 4.1.1 - resolution: "debug@npm:4.1.1" - dependencies: - ms: ^2.1.1 - checksum: 399e98c779ba4e71537497f10caf6390646b69330ff8a455427acce04f1ce8d8cd018e1804fdcca772177666fdcd888dd3672bb8f9986c1d785a6c2b9805f370 - languageName: node - linkType: hard - -"debug@npm:^4.3.2": +"debug@npm:^4.1.1, debug@npm:^4.3.2": version: 4.3.2 resolution: "debug@npm:4.3.2" dependencies: @@ -534,8 +507,8 @@ __metadata: version: 0.0.0-use.local resolution: "e2e@workspace:." dependencies: - cypress: 8.6.0 - cypress-wait-until: 1.7.1 + cypress: 9.1.0 + cypress-wait-until: 1.7.2 languageName: unknown linkType: soft @@ -1223,13 +1196,6 @@ __metadata: languageName: node linkType: hard -"ramda@npm:~0.27.1": - version: 0.27.1 - resolution: "ramda@npm:0.27.1" - checksum: 84f717f285f2f9d850ff15850084bccb55fbf4b1985846d39b8d276fa146d9e23416c47583cf25b710d93257fd5a3240447fddc41a1fffcfed48bd5e10d5c97d - languageName: node - linkType: hard - "request-progress@npm:^3.0.0": version: 3.0.0 resolution: "request-progress@npm:3.0.0" @@ -1349,7 +1315,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^4.1.0": +"string-width@npm:^4.1.0, string-width@npm:^4.2.0": version: 4.2.2 resolution: "string-width@npm:4.2.2" dependencies: @@ -1360,17 +1326,6 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^4.2.0": - version: 4.2.0 - resolution: "string-width@npm:4.2.0" - dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.0 - checksum: 54d6451abfdca5f147f930fe4eb1bbdf409ba115042146bb93dae309342124afcfeb776149075f60a6f8d6b2d3b68f48702fc96144b37789dd7a4752284b9648 - languageName: node - linkType: hard - "strip-ansi@npm:^6.0.0": version: 6.0.0 resolution: "strip-ansi@npm:6.0.0" diff --git a/tasks/framework-tools/lerna.json b/tasks/framework-tools/lerna.json index c97f7f7753da..405daa0259ff 100644 --- a/tasks/framework-tools/lerna.json +++ b/tasks/framework-tools/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.38.1", + "version": "0.39.2", "npmClient": "yarn", "packages": [ "../../packages/*" diff --git a/tasks/framework-tools/package.json b/tasks/framework-tools/package.json index 751f47751b2e..c3adb8d885b0 100644 --- a/tasks/framework-tools/package.json +++ b/tasks/framework-tools/package.json @@ -5,37 +5,37 @@ "private": true, "type": "module", "devDependencies": { - "@babel/cli": "7.15.7", - "@babel/core": "7.15.8", - "@babel/node": "7.15.8", - "@babel/plugin-proposal-class-properties": "7.14.5", - "@babel/plugin-proposal-decorators": "7.15.8", - "@babel/plugin-transform-runtime": "7.15.8", - "@babel/preset-env": "7.15.8", - "@babel/preset-react": "7.14.5", - "@babel/preset-typescript": "7.15.0", - "@babel/runtime-corejs3": "7.15.4", - "@redwoodjs/eslint-config": "0.38.1", - "@testing-library/jest-dom": "5.14.1", + "@babel/cli": "7.16.0", + "@babel/core": "7.16.0", + "@babel/node": "7.16.0", + "@babel/plugin-proposal-class-properties": "7.16.0", + "@babel/plugin-proposal-decorators": "7.16.4", + "@babel/plugin-transform-runtime": "7.16.4", + "@babel/preset-env": "7.16.4", + "@babel/preset-react": "7.16.0", + "@babel/preset-typescript": "7.16.0", + "@babel/runtime-corejs3": "7.16.3", + "@redwoodjs/eslint-config": "0.39.2", + "@testing-library/jest-dom": "5.15.1", "@testing-library/react": "12.1.2", "@testing-library/user-event": "13.5.0", - "@types/jest": "27.0.2", + "@types/jest": "27.0.3", "ansi-colors": "4.1.1", "babel-jest": "27.3.1", "babel-plugin-auto-import": "1.1.0", "babel-plugin-remove-code": "0.0.6", - "core-js": "3.18.3", + "core-js": "3.19.1", "cp-cli": "2.0.0", "fast-glob": "3.2.7", "jest": "27.3.1", "lerna": "4.0.0", "msw": "0.35.0", - "nodemon": "2.0.14", + "nodemon": "2.0.15", "npm-packlist": "3.0.0", "ora": "5.4.1", "rimraf": "3.0.2", "terminal-link": "2.1.1", - "typescript": "4.4.4", + "typescript": "4.5.2", "typescript-transform-paths": "3.3.1", "whatwg-fetch": "3.6.2" }, diff --git a/tasks/framework-tools/yarn.lock b/tasks/framework-tools/yarn.lock index f162d045bf7a..f348f7585bd7 100644 --- a/tasks/framework-tools/yarn.lock +++ b/tasks/framework-tools/yarn.lock @@ -5,9 +5,9 @@ __metadata: version: 4 cacheKey: 8c0 -"@babel/cli@npm:7.15.7": - version: 7.15.7 - resolution: "@babel/cli@npm:7.15.7" +"@babel/cli@npm:7.16.0": + version: 7.16.0 + resolution: "@babel/cli@npm:7.16.0" dependencies: "@nicolo-ribaudo/chokidar-2": 2.1.8-no-fsevents.3 chokidar: ^3.4.0 @@ -28,69 +28,60 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 9ba2db4d0bb172d1ec2625757b2c7733cee4fc722af9a2d878745fc81e12331cacc26a8c6a938cf249c5b6a32f2902bc26345d7914c3fbb25d818e683c347be3 + checksum: c03ae9a0839d0995a712087d6c17ac4445ee090f70676f2ed0099ef1f2ce2dd55fc065a3326d6f4d553b18711bc919d43e7dfe0ac5fe8a02cb27a0fc52ded50b languageName: node linkType: hard -"@babel/code-frame@npm:7.12.11": - version: 7.12.11 - resolution: "@babel/code-frame@npm:7.12.11" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/code-frame@npm:7.16.0" dependencies: - "@babel/highlight": ^7.10.4 - checksum: 836ffd155506768e991d6dd8c51db37cad5958ed1c8e0a2329ccd9527165d5c752e943d66a5c3c92ffd45f343419f0742e7636629a529f4fbd5303e3637746b9 + "@babel/highlight": ^7.16.0 + checksum: 12e111dcbb568a2b625969f4021eb46845e752eb8d2637f00f9e04e4f2216572f5c38d6f278d201b8b6fadd56a855e012c97734c90fabf680783b1ff13dc6a98 languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.14.5, @babel/code-frame@npm:^7.15.8": - version: 7.15.8 - resolution: "@babel/code-frame@npm:7.15.8" - dependencies: - "@babel/highlight": ^7.14.5 - checksum: ba2427bf700fd8a263069e99839125c527f48c6566348416fadfc821a362260653dc3601f6bc9fb86852e4e31526a4f50d930e7a4af417feab72c3844263d2b6 +"@babel/compat-data@npm:^7.13.11, @babel/compat-data@npm:^7.16.0, @babel/compat-data@npm:^7.16.4": + version: 7.16.4 + resolution: "@babel/compat-data@npm:7.16.4" + checksum: 2b4acf1353e183954d3ed4b6a0493d6077bdd3c447d6987c8b955c18c7d99a9159318430d1b6565257d4ddcaf8b1e9c85124bd73863c603b083755efe4a6f152 languageName: node linkType: hard -"@babel/compat-data@npm:^7.13.11, @babel/compat-data@npm:^7.15.0": - version: 7.15.0 - resolution: "@babel/compat-data@npm:7.15.0" - checksum: 2b709dddd224be81b9ab2bd8b5b218e5b94ce7678fc04144c98bd0a769df2ee13738ea5f639d585d3847897e208e03e919750fa6b208c32bfeba5f9fe67cec9c - languageName: node - linkType: hard - -"@babel/core@npm:7.15.8, @babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.7.2, @babel/core@npm:^7.7.5": - version: 7.15.8 - resolution: "@babel/core@npm:7.15.8" +"@babel/core@npm:7.16.0, @babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.14.0, @babel/core@npm:^7.7.2, @babel/core@npm:^7.7.5": + version: 7.16.0 + resolution: "@babel/core@npm:7.16.0" dependencies: - "@babel/code-frame": ^7.15.8 - "@babel/generator": ^7.15.8 - "@babel/helper-compilation-targets": ^7.15.4 - "@babel/helper-module-transforms": ^7.15.8 - "@babel/helpers": ^7.15.4 - "@babel/parser": ^7.15.8 - "@babel/template": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.6 + "@babel/code-frame": ^7.16.0 + "@babel/generator": ^7.16.0 + "@babel/helper-compilation-targets": ^7.16.0 + "@babel/helper-module-transforms": ^7.16.0 + "@babel/helpers": ^7.16.0 + "@babel/parser": ^7.16.0 + "@babel/template": ^7.16.0 + "@babel/traverse": ^7.16.0 + "@babel/types": ^7.16.0 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.1.2 semver: ^6.3.0 source-map: ^0.5.0 - checksum: b76ad15b139b6978e4315caa0a85e4cc1991822b083ce5801c7017472e55284ca9c7393ecb6c25b64f06194f4135ee0e662bd76c05799c08d03bf9e1ef8e4ff6 + checksum: ce3526f15cc9c51f12f1fa311fdd32574a7c938aa1aad02e0dff45f1ef07b4a3c2fb74163b9bdbfe3bf8081fde19cceab6409d5c461478731ecccf2e1581b244 languageName: node linkType: hard -"@babel/eslint-parser@npm:7.15.8": - version: 7.15.8 - resolution: "@babel/eslint-parser@npm:7.15.8" +"@babel/eslint-parser@npm:7.16.3": + version: 7.16.3 + resolution: "@babel/eslint-parser@npm:7.16.3" dependencies: eslint-scope: ^5.1.1 eslint-visitor-keys: ^2.1.0 semver: ^6.3.0 peerDependencies: "@babel/core": ">=7.11.0" - eslint: ">=7.5.0" - checksum: 2ef2a68ca166327664ebb2f196c64679cb080201cad10f50780115b3ba51bfde002e6fed6e1e3acd96fabd1d90f1ffd4ed05814e6aaf14b85686104af7e54310 + eslint: ^7.5.0 || ^8.0.0 + checksum: 723b905420acd4c3b4a4b95dd0bba6654698c945cdf2ebf762721c14a834b9adfcfdb48a69a46135a59f7353995eb4c960b2d9f67c181e058c7d3cb1d3b51cec languageName: node linkType: hard @@ -106,81 +97,81 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.15.4, @babel/generator@npm:^7.15.8, @babel/generator@npm:^7.7.2": - version: 7.15.8 - resolution: "@babel/generator@npm:7.15.8" +"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.16.0, @babel/generator@npm:^7.7.2": + version: 7.16.0 + resolution: "@babel/generator@npm:7.16.0" dependencies: - "@babel/types": ^7.15.6 + "@babel/types": ^7.16.0 jsesc: ^2.5.1 source-map: ^0.5.0 - checksum: e6d66820f5ef6f6911c2845a9188b7c4fb9019e1d12035b27b29d3b6266247d3993ed367cc5d341600b87a9f69f4138227124f69c47afc8b9837de855d6d1db3 + checksum: 377f8055f1aa780a566014278b59beb0c554553d253e2be876e3f10c39eee066747690699498d0ed016e441f5285c7aaa156ba029bb13439a5e06988cfd43653 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.14.5, @babel/helper-annotate-as-pure@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-annotate-as-pure@npm:7.15.4" +"@babel/helper-annotate-as-pure@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-annotate-as-pure@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: f2000869d477847c8f634902de4e49a26e809766ce82f5664267b5bc254c4430e25a7ccbdee6d7c87fa2934e1531b3b6208cfc3e82aa5199fcb386f4163289e8 + "@babel/types": ^7.16.0 + checksum: 91e665af6bf7199d68b39d68ab3583fb7e9acb7a1f88cc2924b256d48c0015c71934923a549b1065d3f8e8f9652b65b3b0205ba6412c405cf0c33bb80af30797 languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.14.5": - version: 7.15.4 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.15.4" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.16.0" dependencies: - "@babel/helper-explode-assignable-expression": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: b83bd4e43defec96dad356fd0bb56c12abb61b7d3158e9fe2717b6dc27f086ac670e23c0c41703ffc96c7346b85fad134c7c4f079497f447d0d46d007950b698 + "@babel/helper-explode-assignable-expression": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 994c18dda5e1811e579c1136af2898c78794dae161665bae1bc720811779a5a40a93cf0051606f9120b97031c2048cbe7ab8db575a220acacb979783168fe98d languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.13.0, @babel/helper-compilation-targets@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-compilation-targets@npm:7.15.4" +"@babel/helper-compilation-targets@npm:^7.13.0, @babel/helper-compilation-targets@npm:^7.16.0, @babel/helper-compilation-targets@npm:^7.16.3": + version: 7.16.3 + resolution: "@babel/helper-compilation-targets@npm:7.16.3" dependencies: - "@babel/compat-data": ^7.15.0 + "@babel/compat-data": ^7.16.0 "@babel/helper-validator-option": ^7.14.5 - browserslist: ^4.16.6 + browserslist: ^4.17.5 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 204fd2a957ba92b1963aa49b5a1ae001348c9bbe79a66c04642d946fa061647f8099a2ab49b3b68c65907f883b6851b780e126ff611cb813608c47a16064fc05 + checksum: 33626de16c9bf0b6f112eab84f04e8c2e8bc7fa8dd1c99b6153a8375d859a05d06645e62c0ebaf9738ceb3e7ae5f6b72bcf9d9adea1065a66674b5e5f4afa643 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.14.5, @babel/helper-create-class-features-plugin@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.15.4" +"@babel/helper-create-class-features-plugin@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-create-class-features-plugin@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.15.4 - "@babel/helper-function-name": ^7.15.4 - "@babel/helper-member-expression-to-functions": ^7.15.4 - "@babel/helper-optimise-call-expression": ^7.15.4 - "@babel/helper-replace-supers": ^7.15.4 - "@babel/helper-split-export-declaration": ^7.15.4 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-function-name": ^7.16.0 + "@babel/helper-member-expression-to-functions": ^7.16.0 + "@babel/helper-optimise-call-expression": ^7.16.0 + "@babel/helper-replace-supers": ^7.16.0 + "@babel/helper-split-export-declaration": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: dd00e50d323bc94689de3492a549ecbfa2dd2754025f3ce6f9cadc3b37b2060d63ad422b83edf2e1271304a6abf91092c59af8e257a87bcbb2dbf8d815374f51 + checksum: d84e8c1615bcadd3bb6379f16817a7c7441b2f14771af0232604ae9761c4ce38ef0155db9839bce3a7ea46b74280ee96f5058678adbe727425ea7f2c9eaf12c4 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.14.5" +"@babel/helper-create-regexp-features-plugin@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.14.5 + "@babel/helper-annotate-as-pure": ^7.16.0 regexpu-core: ^4.7.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 19e45c0a8cd1836878685f4be53503c5892127c640609a24c67ccc7850cb4a28668abc2d55752cf57ada856d416b21553173c736dfe04b6b16e2472295e99e35 + checksum: 67d6f8c86ed9f948c338fcbb4b2c91f0fb6b67595379b0a148666ac628896f10043ec78b252162c645fe344ebe9ed93818cdd65d0a650a1fae4776fcd4b05520 languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.2.2": - version: 0.2.3 - resolution: "@babel/helper-define-polyfill-provider@npm:0.2.3" +"@babel/helper-define-polyfill-provider@npm:^0.3.0": + version: 0.3.0 + resolution: "@babel/helper-define-polyfill-provider@npm:0.3.0" dependencies: "@babel/helper-compilation-targets": ^7.13.0 "@babel/helper-module-imports": ^7.12.13 @@ -192,88 +183,88 @@ __metadata: semver: ^6.1.2 peerDependencies: "@babel/core": ^7.4.0-0 - checksum: 4070639e48e397d05efbb147c305b0a7a7bfb8004b65b2a18d33b55b4d3366f7494e398af9fd026687fefc78d39d34cd7ba3ddcb24b6acf5e11dfeea14998e9a + checksum: 59135ecb144646f2d3c1ceaf38a855200f0ec53d9069deee30bdb2a7971027bde771ba0f87e564119a6d8fcb09673245c15dce89dc8c182a79088b7b80c2915d languageName: node linkType: hard -"@babel/helper-explode-assignable-expression@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-explode-assignable-expression@npm:7.15.4" +"@babel/helper-explode-assignable-expression@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-explode-assignable-expression@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: fdcbe26935597e494e9de7ee5b40e446a831a02104634ebff4c6ddf188f68dd24227bc8457bafd649740d56a8a78a347781af5ecb4e86a2e8db63402324bae83 + "@babel/types": ^7.16.0 + checksum: 9821d4a292b23976c5adce031cde82adf726515d6d6b6cdca7a9ed4aa00c6fc8ccd8b580a2db80a8dec96541ffd374f2f5bf8ca3c90e5cdb0a6d8338103c6efd languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.14.5, @babel/helper-function-name@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-function-name@npm:7.15.4" +"@babel/helper-function-name@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-function-name@npm:7.16.0" dependencies: - "@babel/helper-get-function-arity": ^7.15.4 - "@babel/template": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 1178ca22828a9b3c905ee28235a7ad9da2417e514cfce0bb87ebbcfb18c10fe39e63f08896bb409a4218ec887c7280749cb6a3eece9e8ef86335707682db70bc + "@babel/helper-get-function-arity": ^7.16.0 + "@babel/template": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: ffaade6be3840364d77f0ad4515c715b1787c47f4631e69de0c204a314a00862a6dc8e37d1baadbdeeb9d8bae9d943b235ae0303d3cd095bc740cf3aa8794e92 languageName: node linkType: hard -"@babel/helper-get-function-arity@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-get-function-arity@npm:7.15.4" +"@babel/helper-get-function-arity@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-get-function-arity@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 320ae961ce693993913553bc6645c98c12b3aa14fdd805ee8cc2f5f47ae19fde7c1ba0a889501e99196a20a930d3b3a8eb016222b148b2029dc9c5d15748a7c1 + "@babel/types": ^7.16.0 + checksum: a37fe88007b10fc2bc62b610ed1943cfd7bfb90b8321c87bd4d6dae583df04cbafc2ee58d237ebc2580cd0ffa05369f1063e3f9d51c494e821dea287a0a4911e languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-hoist-variables@npm:7.15.4" +"@babel/helper-hoist-variables@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-hoist-variables@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 933a923e4d7ed587b60793d7335c9ed3b531c2e978475c25ad9c44c3ccca382caa6820f1b6331af5c1bd0746edeed5fdd1b0df3144c7566ec0ca90506f89d03e + "@babel/types": ^7.16.0 + checksum: 0f4ada53a9901981825c73e305c04674c958b0ec367e0aef0221ec865b3620e8743f2cf3f5c29530181ee86f3b10d0e113a0e8c9e283ea7f2709134684383b1f languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-member-expression-to-functions@npm:7.15.4" +"@babel/helper-member-expression-to-functions@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 529f26af314fa20b0ae60006a803253ef2924b4320ebebf42d80fa1aa8bd958367526eb3d28b8c62875e46bef0bdae14bdc249c457283c53ce0e4193aa132317 + "@babel/types": ^7.16.0 + checksum: 0c0f623117fff2a747f52d518351c2a75dc0fa2c0864eec2735fda9cb8fd6fc1f0fa070fe3b7a448099c0dd955a1e16574077a820b33ee32a4e6ef8de302857e languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.14.5, @babel/helper-module-imports@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-module-imports@npm:7.15.4" +"@babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-module-imports@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: cb4721068f9e63c3031835927c93a7adf9b496391cef0a312f50ce2abb79934a45fe2da2196c541b0bb16ce47e5a9c5e5c535f042381b6852188caa442bfb3aa + "@babel/types": ^7.16.0 + checksum: 8d9e8c92e44f7c327e9cffd07825b488c49828ea7bd31bbfe1fb019233cab6600461a751af8b0d42340b4a3737108ba839d05fbd7ef0b716508c1c9133b93b89 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.14.5, @babel/helper-module-transforms@npm:^7.15.4, @babel/helper-module-transforms@npm:^7.15.8": - version: 7.15.8 - resolution: "@babel/helper-module-transforms@npm:7.15.8" +"@babel/helper-module-transforms@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-module-transforms@npm:7.16.0" dependencies: - "@babel/helper-module-imports": ^7.15.4 - "@babel/helper-replace-supers": ^7.15.4 - "@babel/helper-simple-access": ^7.15.4 - "@babel/helper-split-export-declaration": ^7.15.4 + "@babel/helper-module-imports": ^7.16.0 + "@babel/helper-replace-supers": ^7.16.0 + "@babel/helper-simple-access": ^7.16.0 + "@babel/helper-split-export-declaration": ^7.16.0 "@babel/helper-validator-identifier": ^7.15.7 - "@babel/template": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.6 - checksum: a2dd1894d155ef262961d1cf634248de66748a72e481655ee185b0a9f25e7680d2849cf1aaf7c9d54b284ae6717d4fd7c2b24fa9086fd1c2c29370f13c467636 + "@babel/template": ^7.16.0 + "@babel/traverse": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 6f88c1a6fd966676b2b306ade5acd877bad17d589c12e0945734c63a4462bd3a5babb999daea8463845e31abe92c9e297237a389c901e8d0fd7ad4a23821e70f languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-optimise-call-expression@npm:7.15.4" +"@babel/helper-optimise-call-expression@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-optimise-call-expression@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: fd89ea4b8280768740f4ba0ad6f163d2f05a037fc103707c0b370e69661bb329166905caa1150379472cd8515ebd5812aa04f307d7324a0319e289aae30ba55e + "@babel/types": ^7.16.0 + checksum: 29a76903e84462aba44e13cfc0321e9eeee68bc791f414d7aa7bb3f9f3844cfcff394788dd0a3c5235ba3cefb43b125cb972784ad28268b8365425de1350fe01 languageName: node linkType: hard @@ -284,57 +275,57 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.14.5, @babel/helper-remap-async-to-generator@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-remap-async-to-generator@npm:7.15.4" +"@babel/helper-remap-async-to-generator@npm:^7.16.0, @babel/helper-remap-async-to-generator@npm:^7.16.4": + version: 7.16.4 + resolution: "@babel/helper-remap-async-to-generator@npm:7.16.4" dependencies: - "@babel/helper-annotate-as-pure": ^7.15.4 - "@babel/helper-wrap-function": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 2d4c0b502f2171cc15011358b299c32adf51c7e7a8d9bdea5f4394046ce0200b2d7ce441d772e35e7c4eabffee5b9d4c5ff8df68dac2db204f88b6d1758e3e13 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-wrap-function": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 09e8cdd993de30af73666bb267c41ef5182a7310ffe6b6dd450e0ce2adf29e4b72ea865c8c4faa67804af1ee172901a43320814d93737e5525efc5f5b0217d9c languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.14.5, @babel/helper-replace-supers@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-replace-supers@npm:7.15.4" +"@babel/helper-replace-supers@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-replace-supers@npm:7.16.0" dependencies: - "@babel/helper-member-expression-to-functions": ^7.15.4 - "@babel/helper-optimise-call-expression": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: ad71403452c318d57d5d38bcc05fdf934c3f5925eb50c2cf60ea79e526142b4bd19f3577b317977d98b0fcefd38283f8ee537ca28f60264089285bc0a541ce88 + "@babel/helper-member-expression-to-functions": ^7.16.0 + "@babel/helper-optimise-call-expression": ^7.16.0 + "@babel/traverse": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 52717799120c5978578c3a809544c5ba4be81e75e799e0a3abcd2eb3bc7277a118e37ccf02a6849e36144547955a7c91f909c9e103251d1249b12256cc31ca3d languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-simple-access@npm:7.15.4" +"@babel/helper-simple-access@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-simple-access@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 02b9048a1bc0b844593d44e2bbed6ddecae64dbc80797336bc4ea8376a0b8222933bdead5bd7b8c03a535553f12a1c9e54c1531209db4c2ce7543006e19f841c + "@babel/types": ^7.16.0 + checksum: ff19387cd7df7a8c4fdf0fc459fa78beef621225ce572eed3a2188e771a5479f5d1ebccdc80e25246a41d18b7904b779207ff9a60f9d03c7c1d1b61906114738 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.14.5, @babel/helper-skip-transparent-expression-wrappers@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.15.4" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 099f28533371beb49850df690cfe00dfb828c283f2d2ab91fab29957a754980a5f8ebef66ca4f08b11b0930c429aaf241a9412361a032e5fd869314bbe34f4e3 + "@babel/types": ^7.16.0 + checksum: d3b8668a355e82a1c18137a1d5f3d8565ec88cff464f1c0a7c6e99c4cd0d92a77aeb51ca7fa71afa3bf8c50035bc5cf25504f46e01a94b9e6a297bdf3ac35f40 languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-split-export-declaration@npm:7.15.4" +"@babel/helper-split-export-declaration@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-split-export-declaration@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 95acba111c9e77a703b460ec03047bcbc86bfe88be3e2209f8fb19b48e6a05270e341aa344fac49a2b23a42701dc6d892313a8a7a98a6ae46f31d7d612938f33 + "@babel/types": ^7.16.0 + checksum: d4c18c8feb9f115e9b75741f7daa818050a3b4adb0a3cd991d8d58da9db627cd5043e5f24f5118933a3dc8e9891adfb9c1c63929741b74b6e0aec03ac30b2702 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.14.5, @babel/helper-validator-identifier@npm:^7.14.9, @babel/helper-validator-identifier@npm:^7.15.7": +"@babel/helper-validator-identifier@npm:^7.15.7": version: 7.15.7 resolution: "@babel/helper-validator-identifier@npm:7.15.7" checksum: 398bbf808232073504426d08fa6a5ee7b70a41eda3c7a02115d9f879fbd89c057bef27e8013df2084d59eed43587dac91c915074fa8385544fae0caf03791c2b @@ -348,47 +339,47 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-wrap-function@npm:7.15.4" +"@babel/helper-wrap-function@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-wrap-function@npm:7.16.0" dependencies: - "@babel/helper-function-name": ^7.15.4 - "@babel/template": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 57b73e4c040009e1fc8aa7f5bbc98e0d16578e29879da7af7cbcb7fa27f49bdc93aedb5002c1e5b86d8e8ac9928475e4b108b4e00e872535e5b7c12ca60a6034 + "@babel/helper-function-name": ^7.16.0 + "@babel/template": ^7.16.0 + "@babel/traverse": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 25cc560b124dd44445c607b874fba926a06544ef54906a45940bcb6895ab81f5b74759b819546e2251748582a02f07ed0360a3b4d25cd27b838fe54b24c99903 languageName: node linkType: hard -"@babel/helpers@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helpers@npm:7.15.4" +"@babel/helpers@npm:^7.16.0": + version: 7.16.3 + resolution: "@babel/helpers@npm:7.16.3" dependencies: - "@babel/template": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 92756ac9a0bee4700be560015d6e2ee17a373df99f212a87c5145c4af648fbca3ec7be7e8cfdff3707f7d7a4cfdefa62000c1a5e2accb44da81bfe7e1dd42ae7 + "@babel/template": ^7.16.0 + "@babel/traverse": ^7.16.3 + "@babel/types": ^7.16.0 + checksum: d31511816e4722535d45bec5331cfe3bbafb7ff681fa16234a743ba8eada24b27e89c0930f5457d6706d5c613b9f0f160804de8320c733238e5f9003c739df92 languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/highlight@npm:7.14.5" +"@babel/highlight@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/highlight@npm:7.16.0" dependencies: - "@babel/helper-validator-identifier": ^7.14.5 + "@babel/helper-validator-identifier": ^7.15.7 chalk: ^2.0.0 js-tokens: ^4.0.0 - checksum: b9d16895e4bf780d69504c7cc8a9871dc668bcd1851c4a7a7f039f34ba5bb1f04efc4ad6b79112496c7896d541a4d38efa02e7d8be8fb0a1f352097cff8ba79d + checksum: 47cf5ea9c18bc5cb3e469fcdc45a005d1b2d15614a55ac9fa36d38a5e02d0e402f0454080ffeee153aa164f61d2f06aa4dc98857dc2bd01e67d0c8a3be84929f languageName: node linkType: hard -"@babel/node@npm:7.15.8": - version: 7.15.8 - resolution: "@babel/node@npm:7.15.8" +"@babel/node@npm:7.16.0": + version: 7.16.0 + resolution: "@babel/node@npm:7.16.0" dependencies: - "@babel/register": ^7.15.3 + "@babel/register": ^7.16.0 commander: ^4.0.1 - core-js: ^3.16.0 + core-js: ^3.19.0 node-environment-flags: ^1.0.5 regenerator-runtime: ^0.13.4 v8flags: ^3.1.1 @@ -396,230 +387,241 @@ __metadata: "@babel/core": ^7.0.0-0 bin: babel-node: ./bin/babel-node.js - checksum: 4953714d6873c0137ea56e732661746e8dd5ba9fe502f0d3679514f82882b45b59307f6cd4bf98234016d6097c7307c6d5555cdf7ca103d9344c9ee1b8029da6 + checksum: c0d0427c2375ce368e84fefd5a511c9c1ca00399a169bd6b5c453b8da9194611cf8a0a0ab1fbd0de1fb6b4532e97fa7755a0d0da9efbc31836f77d792ac34eb6 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.15.4, @babel/parser@npm:^7.15.8, @babel/parser@npm:^7.7.2": - version: 7.15.8 - resolution: "@babel/parser@npm:7.15.8" +"@babel/parser@npm:7.16.4, @babel/parser@npm:^7.1.0, @babel/parser@npm:^7.1.6, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.16.0, @babel/parser@npm:^7.16.3, @babel/parser@npm:^7.3.2, @babel/parser@npm:^7.7.2": + version: 7.16.4 + resolution: "@babel/parser@npm:7.16.4" bin: parser: ./bin/babel-parser.js - checksum: 66f4ec0f7ec68fb1aa00a9e213cb545eea7d41f250273def4e0cb44fc7c8f80ad333d9addbbaf9d1ed9564e5a7fb563fb77856f737dee698894e2cd1163b9d30 + checksum: 15aede34e6129701d681deb860c5a05a955dde773ff1fa042c0a554706d4158d003389dab8f0e54a92b7b7ea20087367dcb0dfe3ba7c47600285de093beba9e5 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.15.4" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.16.2": + version: 7.16.2 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.16.2" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.15.4 - "@babel/plugin-proposal-optional-chaining": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 0f7c37f50483bcdfa9df806dca5cd25a1ac3aac9a65f45f0098310258c6336c73b2f0b6997fabe409e089e0d01cebd67b416c6f926c9319192c27793aeb704f7 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.16.0" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.16.0 + "@babel/plugin-proposal-optional-chaining": ^7.16.0 peerDependencies: "@babel/core": ^7.13.0 - checksum: 7542c2610b27630fc138ef39215460745a6db68c52311f5400c6b40a97377a6fe4dfcb477297dfc48d018970b463d22244f5533e9e925fb2460662052a78b68c + checksum: 7844afeb5b94b69de73e5cb331cbf9727e99dbc463072a68b3562b8785a498ee9823b3ffc2be2a9653ce47d6a91841b76c99b0c3479ef92446211852ad7d0fa8 languageName: node linkType: hard -"@babel/plugin-proposal-async-generator-functions@npm:^7.15.8": - version: 7.15.8 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.15.8" +"@babel/plugin-proposal-async-generator-functions@npm:^7.16.4": + version: 7.16.4 + resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.16.4" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-remap-async-to-generator": ^7.15.4 + "@babel/helper-remap-async-to-generator": ^7.16.4 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 197123f5f1db53e8ea202949e0f621aa619d405fff2a51c0a24633e03a7d2ea8256e25be21549cccbf8e4bd3c3fd46778d539d72430d9907581704b88dc02a98 + checksum: 0ac30cbfca61ce7f98ff2077ab8383aeebd8b9aa36971947050396fe2255aea18e1cb4048277ea122ca0b2fe22416df89198c9b4f5421f8c6fbfaccd750f781d languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:7.14.5, @babel/plugin-proposal-class-properties@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-class-properties@npm:7.14.5" +"@babel/plugin-proposal-class-properties@npm:7.16.0, @babel/plugin-proposal-class-properties@npm:^7.0.0, @babel/plugin-proposal-class-properties@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-class-properties@npm:7.16.0" dependencies: - "@babel/helper-create-class-features-plugin": ^7.14.5 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 11650465820d31d40445529f64ccf084b031f681970ce57774ac1fb6fbd28b3306a86b3546d520ca31d2dae06a6004f9bd1ffff0e44d5c3ce54519620ebc6e57 + checksum: 1a2d30722e0456700946d65b9d769359a33ea8b882f95b320ed3d104d84907d840f8d4e68f0c35a4b41a017b73a71dfcc24ea461fb9db10cd79b8868168e9a04 languageName: node linkType: hard -"@babel/plugin-proposal-class-static-block@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-proposal-class-static-block@npm:7.15.4" +"@babel/plugin-proposal-class-static-block@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-class-static-block@npm:7.16.0" dependencies: - "@babel/helper-create-class-features-plugin": ^7.15.4 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: "@babel/core": ^7.12.0 - checksum: d70314be609e736a8f6a13fb8e1c63127dff04c556451f1a9e66784c966750aa9e6fc08147e7ea333237d290c3f3a892ebe5fbd71ee891286a9259a862d0eca6 + checksum: dda182cb38dd2a33e364aaa4084dc80a96ca48f25feaca276f281b9b395871f6b2d350590ac7e7b5daa217acbfddab7ff5201b2fdc5f42051e41832ddfd0aac9 languageName: node linkType: hard -"@babel/plugin-proposal-decorators@npm:7.15.8": - version: 7.15.8 - resolution: "@babel/plugin-proposal-decorators@npm:7.15.8" +"@babel/plugin-proposal-decorators@npm:7.16.4": + version: 7.16.4 + resolution: "@babel/plugin-proposal-decorators@npm:7.16.4" dependencies: - "@babel/helper-create-class-features-plugin": ^7.15.4 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/plugin-syntax-decorators": ^7.14.5 + "@babel/plugin-syntax-decorators": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5ec37ab45a68d49a790e0bf163e7832d06390b077514533f645be900445075d30f6f1c7c759d8d2f681cfec1303d1ec2bd625b7329ce8b3ff1ab6c0cdd2e0b79 + checksum: a8a2de7eb4c42ea0afbfa99f4e709c3df5d7cc80e4bee26ce6d8e103b18416699f40030cc11597278c9105e92cf24231fc58fd1653da26b271d6598f200bab9d languageName: node linkType: hard -"@babel/plugin-proposal-dynamic-import@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-dynamic-import@npm:7.14.5" +"@babel/plugin-proposal-dynamic-import@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-dynamic-import@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ae31845d4b7178ce24f89357d511105ab3ff29711e09b62ccbb7226c458c25ce9c19e1c9002682e7c07e8589224b53b4afd0efaa6c1a00cbf49c77d68da226fc + checksum: 45ce919eb380c16be99736f2a448e72d7ea3f83b789def943efa1a26becc8b4de3f1f70bafabf27ffcf5ca07b0a28e2f9ccee44d359dc256212562cff0a8f8ea languageName: node linkType: hard -"@babel/plugin-proposal-export-namespace-from@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.14.5" +"@babel/plugin-proposal-export-namespace-from@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0f775df669110de212910ce7c6287079dd07d578afae9746cd2059afad2ea0d7d4bb5376de520c78fb5364a1f633ecc623998d39956919d922cffcfb3ed1653f + checksum: 98fc95f720335bacad7c03c190ed089897afdc74565c35f312d70905029a4c330db636ed3fee0280846b6a26d122bf43f32cc93db5e5935d6b73752b0db47c9d languageName: node linkType: hard -"@babel/plugin-proposal-json-strings@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-json-strings@npm:7.14.5" +"@babel/plugin-proposal-json-strings@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-json-strings@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 06f63ca10c6cb8c66a3446d4bcde780f304771effc586cfa57bf7bfd510d213a2886dd922bcf79944cc0788fc96da72bae116980ff04319d20395f66823608b1 + checksum: 8dbee87bc1c89554597b025319e9b89da2dad06799c08637b73f0ca05155e73e36384c71c7aedbf6706b08b549ec4b11ee95225f31ee8cb473dcbdaf356e38c4 languageName: node linkType: hard -"@babel/plugin-proposal-logical-assignment-operators@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.14.5" +"@babel/plugin-proposal-logical-assignment-operators@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3e30b19b4f3f8b85ccd3fccd1b0db5dd6ad10738fed88087c22d7464de952ce5eb94a60fa7a081c511b841248e5c9bb159f814220990a07fdaabe07b1468c6e0 + checksum: f56cda4b9d747f497556bc230d7ea096a86f4523b661dc63c2e75b67bf0bdedbefa1751be48ea983b9364fea108d378f335bc2025479defb7697b3d6719d72b8 languageName: node linkType: hard -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.14.5" +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 15b2b7fb3bea6aa0f5be7c807a63b636f9717ee4a6cd37d7100acecf8ff9c684cd01d8a2114cc8e597734d7fe49ff06d35d3d809ae49c2f0979843efc6ddfbef + checksum: 3982575ba6b90a7a980e9dcda91b6a3fac5d86aeded12331e44ecc996e99a4a0f742b7ed52f4cc86f3f4c39928a2fcebea8414ad63accde06101b5f9f152c845 languageName: node linkType: hard -"@babel/plugin-proposal-numeric-separator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.14.5" +"@babel/plugin-proposal-numeric-separator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-numeric-separator@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 97e5345f3ecc6de43273632815f74d2dd4548ed5e3d75724f67c703b064d1e6edce5f76e144e500825a9ceb94c510e1943fd5ee454ed83364e74370587a07f75 + checksum: b3bbb970b3882e64af48eceb3974f933e4c76af2a6526abebd457ac834f21d976dee7bafe54d3c1287d54b7c9c3564c62a900eaa35459466f7b7e45ecf787756 languageName: node linkType: hard -"@babel/plugin-proposal-object-rest-spread@npm:^7.15.6": - version: 7.15.6 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.15.6" +"@babel/plugin-proposal-object-rest-spread@npm:^7.0.0, @babel/plugin-proposal-object-rest-spread@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.16.0" dependencies: - "@babel/compat-data": ^7.15.0 - "@babel/helper-compilation-targets": ^7.15.4 + "@babel/compat-data": ^7.16.0 + "@babel/helper-compilation-targets": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.15.4 + "@babel/plugin-transform-parameters": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cb9958a089e980f592f6b046ebc8f1ef19e70a7c0e2934873327cf64d4947d3c28db55992a6bdf9ba2efe1a52f65609b758c36c80c4cbcc998a9b0f74901e58b + checksum: 6e13519887919e0e2ab76bb0d49aa5555139abd46f719c25daf96fde7ac8240cabbb931ffd90095ff778ec41e03f11bd887f99bc33246b343b539ecd266e4dff languageName: node linkType: hard -"@babel/plugin-proposal-optional-catch-binding@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.14.5" +"@babel/plugin-proposal-optional-catch-binding@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4eb3f503525eb9bfb96fd8598de2f7b64caa5cc0fc109f385f9bd27306c6ddaaa7a9f4b6d3057e4050f9b0d43fd8dc123f531954d42ef8a5537e848567ab7f1c + checksum: 97ecf57de7be78cac6ee9ea98c7af33957dd4a2db1808741af87eb7143d0066fd183468c526994abfdd64280c3b4aa38a12bcb3d3a4688f5c21b0dcfddeefdca languageName: node linkType: hard -"@babel/plugin-proposal-optional-chaining@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-optional-chaining@npm:7.14.5" +"@babel/plugin-proposal-optional-chaining@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-optional-chaining@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.14.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.16.0 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7037d4e3e3751a7d25ccb969f72541992c7eb960284904d2ca7fe7a8f6603f9ca5abc8ee592938b9701efed5f5a944b094c78f81225d13b27da68b68c6b17a51 + checksum: f59390575eaf3b49789e07f1a888fc8374f3eeb2f3dcf7f5624048b661e55f17d017c9a447f4c6371efb4de5499f8d89a66a634cc1e4bb6b850748d48c3b4cb9 languageName: node linkType: hard -"@babel/plugin-proposal-private-methods@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-private-methods@npm:7.14.5" +"@babel/plugin-proposal-private-methods@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-private-methods@npm:7.16.0" dependencies: - "@babel/helper-create-class-features-plugin": ^7.14.5 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: df596f2a1efa7efb578ebecac6b718e1e9c3d9b1ff943f34e26a997e0de9e9ac435ea4b49f7b11979cff65ed6a4dfe171400cf8af351c9874efa249bc7311908 + checksum: e0f3c77d03ba9c2f8a5d938b61919a8abbe85d9a4542439018f633c0e53656272dcdebce0933709f43d47bdc92a853a0a31c3d60eb012e065e30db88df2898d8 languageName: node linkType: hard -"@babel/plugin-proposal-private-property-in-object@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.15.4" +"@babel/plugin-proposal-private-property-in-object@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.15.4 - "@babel/helper-create-class-features-plugin": ^7.15.4 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e1016d45c84e18eec7f82ffb6de7a5dc1bde095746bf6e0288eb2e79a508bc6d1e5d618dd829d84a7bbf3605c6bee974a8f7e6fcf4c078f57cf56e3915d32297 + checksum: ebc3413180863769242ad61e5f19be58d9d41ac7ab7c6513d651d0a4f618e41412df355f137177906aac6d6c008abb0deee3597be67b517ba5ec9f127e549789 languageName: node linkType: hard -"@babel/plugin-proposal-unicode-property-regex@npm:^7.14.5, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": - version: 7.14.5 - resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.14.5" +"@babel/plugin-proposal-unicode-property-regex@npm:^7.16.0, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": + version: 7.16.0 + resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.16.0" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.14.5 + "@babel/helper-create-regexp-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4047f4085eed41feb8209875083b4300421f413b08be299ebaa98007b2e052859be23b6749be379e98287d0f3a35c43755c17f3fc741afdc445a3addc338983e + checksum: b01c002ba3fa00b71ae47d06e1186bd628a2842d5d742fb2019ef798d7e35721a526e26e4d8ae5b92ad93f863bad68c0cc7406a2634790f7a517aa60539ffc22 languageName: node linkType: hard @@ -645,7 +647,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": +"@babel/plugin-syntax-class-properties@npm:^7.0.0, @babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": version: 7.12.13 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" dependencies: @@ -667,14 +669,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-decorators@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-decorators@npm:7.14.5" +"@babel/plugin-syntax-decorators@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-syntax-decorators@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2cb610a216169f7ce21f021c4ef4fde94db080fc4e80304ace3b811f13308b2fd50a9bacf58ed606b4495eba69813606eb43f05b8e765897107b9b6c3c1e8add + checksum: bd64777e8cd3a96ce1d6d397133b71bd0927bb8444745033b6dda5eb1004a7b09aea4c11005b3d4af7262d52f2f2a55791e0ec46c35f6abfb504a2e1a520669a languageName: node linkType: hard @@ -700,6 +702,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-flow@npm:^7.0.0, @babel/plugin-syntax-flow@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-syntax-flow@npm:7.16.0" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e7f5230027a4a520adf5cf16419e8f0794a637cf4acebc0185a5b25f71f17a91b1d3ed67c48270dcf79dacc452532e9acf4961663548646847ba4ee69742fc06 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-meta@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" @@ -722,14 +735,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-jsx@npm:7.14.5" +"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-syntax-jsx@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b553ccd6cf1b560616c4cd347f851a9a1d853c084bac82d39fae9b5edcc283d03053a78d014fde79c07c5dc07cc15ec988065616e9efea3220b58913205fdf49 + checksum: 4d3a4e6216cc0a2471c34c06e9c3fc235045fb8777db531ccecc1bfdeb3fbd877bec43317b443f291950052307ab8b0b83faada329342aeb97825080d80c5109 languageName: node linkType: hard @@ -766,7 +779,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": +"@babel/plugin-syntax-object-rest-spread@npm:^7.0.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" dependencies: @@ -821,495 +834,508 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.14.5, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.14.5 - resolution: "@babel/plugin-syntax-typescript@npm:7.14.5" +"@babel/plugin-syntax-typescript@npm:^7.16.0, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.16.0 + resolution: "@babel/plugin-syntax-typescript@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8aab66fad457918bb35dcd5cc1bd9251b48ab1abb226c07fa05a8873f6973845d331e3f215341d03ca856c50b13511242af915d07b89f399d4424208bc7dfd68 + checksum: d3f6d730e1610ca33bf44eeec2ac54ada6ba13c74759feab12ba7876829401a6746aa28a0c2e1d6a1915e9f6c64fd5bdf01a1ace4565669fd8641597ba792511 languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.14.5" +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d1e9bf5a026161f4133b7142ae1abb88b835b5394d9f7dda03c3f53c57d28f1673414ed81a8679b6d06ce60eb3dc25931cf4659d60f6a6c16c39da988c0d8359 + checksum: 9882e4434c8a802ed69036204dc59da94ecc2ed37eb5480c92ee5ca1d381f6bba2a5dc6cf6ca44e716595096e1e6f31241cf4f0c0980cfc5725c16ca23e53d80 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.14.5" +"@babel/plugin-transform-async-to-generator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.16.0" dependencies: - "@babel/helper-module-imports": ^7.14.5 + "@babel/helper-module-imports": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-remap-async-to-generator": ^7.14.5 + "@babel/helper-remap-async-to-generator": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5d71c1fe91dc69db7a4b598edb6480d6658f2f57fbe4add1bbc9a6885c9ed708f73192957bb9caee19e5ae4d9d1f8e940253a337eddcb941b73678555d224596 + checksum: e4af6fb6f75cdc289ec74ffbd956a309f9bb79e2ff10481129d8269cafaf2f65c6e55e9810035e3fadb21c314ea5b733637f7c5e6e3d584cdfdecb102c5a56e8 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.14.5" +"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 864f35c311b6e56307f3a48a419a6bfd11687d4287590b3795318754006a97ad72b8eebf65a74b88c2fcb1624676aad420ca2a590713b267dc94c00bdeae0df7 + checksum: 65841005225b704c3190b691211249354e3afec7e4bf8a7b2bcbedd28f466191a592b6e0566bbc6da536b6c4c17cd7b18be232b2688f7ebbc5340bb89adebf5a languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.15.3": - version: 7.15.3 - resolution: "@babel/plugin-transform-block-scoping@npm:7.15.3" +"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e734e902e2b1e0a79a49af73cbe46659ce669e08dcf6d3f091a1850d0a11f4c1f51124fbaacf0e26a894e45bbe79b6baa7f5f3f53d352e927b8577c1737e5b0b + checksum: d0a7ba830ff32bf821866f02eabd1190d1bb0ce71e2cc6b709ea2e89ba406a4f532b1e1dc50911c19970793545f0b071c6aa21ea93946db60f03a3b37516664b languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-classes@npm:7.15.4" +"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-classes@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.15.4 - "@babel/helper-function-name": ^7.15.4 - "@babel/helper-optimise-call-expression": ^7.15.4 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-function-name": ^7.16.0 + "@babel/helper-optimise-call-expression": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-replace-supers": ^7.15.4 - "@babel/helper-split-export-declaration": ^7.15.4 + "@babel/helper-replace-supers": ^7.16.0 + "@babel/helper-split-export-declaration": ^7.16.0 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4fb50be6fc83499872756969b8174c9721ad74f257973414c140747408ca48aeb99b525cae5c0b4400de492592c29f3be1af68770faf31336d8ff3c371428dde + checksum: 4a25292506f656bc876a5d30e74baff854c5e187b880bdc5fdb0c01d88d9ff74fb7a08d15bb2cf28b66e3ca43756fd6440c8c4c9b523bbafca24cd8a2f0cf0f0 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-computed-properties@npm:7.14.5" +"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-computed-properties@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3eed440f30bae21f5b11d8dea0f12d3ac0e0c623409161c49aae264b77736e60f0385dfbcf3c6deb03cf7ba2505f2769e21b7c5cb07cfb92d90e9f5d46a91436 + checksum: 909e5f3ad80cefc236d0f4ae2fa6caa1fd4d050bd15ebf9479349ea53a759202cb8f0e24870b8b6531a5154742394d7a7a5588ff7462d3c78cbd89699bddbbce languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.14.7": - version: 7.14.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.14.7" +"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-destructuring@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fc62688948b23d59c8286602757999bd4f551e7171619fb0750f804d9725f3d79d87a51f7fe4f4e12064c4e86f24a4616d6c2a537ca8f2ecf1b54482a3fc0356 + checksum: fb68bfe9e43ef1506e63a6a804c4e9e6b2af9c4c9c69d483e40fbb3d88a8c205e58168572e2d585407226600704895d8343d377e2bc1c01c8a61abfa8af3d91f languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.14.5, @babel/plugin-transform-dotall-regex@npm:^7.4.4": - version: 7.14.5 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.14.5" +"@babel/plugin-transform-dotall-regex@npm:^7.16.0, @babel/plugin-transform-dotall-regex@npm:^7.4.4": + version: 7.16.0 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.16.0" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.14.5 + "@babel/helper-create-regexp-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7ce77cb4565e37b9ef3b9171953bf7243c80fbf62d4c1031234f46b1ebdaa84128018dc0a9e86aaa9f1a862408f9d8955c93f019b4b7e7198a96b8d147f2b0e9 + checksum: 50a24cbcc7ddce2a9d16c507de51e50d4ecb7f7b94f1726e10bf768ca556722db9b8d9525d7e44baf9f08380e3edfa89dff94cccb7eff1f6e854b3547d52e109 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.14.5" +"@babel/plugin-transform-duplicate-keys@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c7111a67bec29ba27fd01105a0b1b613ad0c76597934302ef1e56be1b8b32943df05c75a5be490e0ae55148d6ebd5bf2007249213b75e8d35c10160114a883ba + checksum: 47843841aaddd17e7f152bd97c04813fa4e1255495186989fbd75931ce0124764101a4ff17872a848123aee1654c415d553e7ef3edc3912273d081d8c4472cb2 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.14.5" +"@babel/plugin-transform-exponentiation-operator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.16.0" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.14.5 + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 876f072ab2fdbcd9e2cc786b7f7e40359dcf165c035bd1619e79bdcc27a250e2aca46e02c0b8c290ffbc354d12d32f43b589265d9ca0e53be6f7d0fd34da5ee2 + checksum: acbc8c595bc3b5d2cc43624d192150729ca0cc86b7b91cfc1c955076df14f5837e8163bbf4201f8f11e5ffdfa9d7145caf8034bb3f3cc832f009f2fb19167919 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-for-of@npm:7.15.4" +"@babel/plugin-transform-flow-strip-types@npm:^7.0.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 + "@babel/plugin-syntax-flow": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2ae1337f7452b255703e51040da057a533cb49744519e8e9ac00f37028a83137d34814ec18d04af9528e95dd54919dee53d1c485f67fa7711a119663407229c + checksum: c90807566e57cec4915c3424724f9e71ba5990e8247a23f869a7af455372de11f0ddef4b2fec5c5fd9b1fbd677aa7bd854b1233ad7de7955a788857e3fa2a349 languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-function-name@npm:7.14.5" +"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-for-of@npm:7.16.0" dependencies: - "@babel/helper-function-name": ^7.14.5 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 18d61764d911a96319ec6accaa281d0691084443b452478e1d9bf82fe011eb62c8c8a0bacecbfac6fcee83e4d53e777bccd6ff46718a1c1b2f52fdc7e8509ec5 + checksum: 0554da026dcacdb410b2287e274437219cc234bbf7106c0bbfc5aa05d75dcba2a4cdc2201c15b4e015302a1b7668e6cfa413fedf4658ddd4f98cf0c3ce437f5d languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-literals@npm:7.14.5" +"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-function-name@npm:7.16.0" dependencies: + "@babel/helper-function-name": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a9383db99026a44d2373ca2e3048c566d66f436aca326d1dc4e07ec90953a075ab4897c54c7adbd52fbd1ef538b4cee346cc0db96bfeae70969b89e995c2a86d + checksum: 777e03d788ad15da13cf4076a7e9060aedda139dd00f00ba542a7cb1a532fbc4e9b19e292123d7dd028b00d81c5689a87bf4b1c517bb9310f1f873e74327be80 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.14.5" +"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-literals@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b322fa6c7f2dedf2f9c8b5ed33d1dcb377ec04375f348aaf33f3bf98fe3e3a96c008e623c7de7da47f0ddb5c63c57e8b233986a53e58f951b010ff1078de62b1 + checksum: d835616f9aba23b057ad57e302dd0e1f5a70c8e104cefdaa891aad6eac459262f2375e14bd8270554feb9ab66ced614d6672ed10b471350ed40e0d4925e4038d languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-modules-amd@npm:7.14.5" +"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.16.0" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 34cc594ab9ebe71256dd4819b0b69f450f04d221752afcee34e608460528231467441b16f33eff6938b6feb6ecdbd56210e82f886fefe37b2f1871c6262c1c65 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-modules-amd@npm:7.16.0" dependencies: - "@babel/helper-module-transforms": ^7.14.5 + "@babel/helper-module-transforms": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e9e4be72bee9312e47d75b6e673d2986b6a0ddfd6d2638ce98b91014c3ffff4e2084d1b9b4f401bbbfc030b79770afe4f49cbe4a8b6d24df9ac910695c0ddea2 + checksum: e07569e2328351d53469ff1c58625e47c50060d71d4540b49070f74010ca85b7baad67575a3e23adafea35568943904d6763354de63b9c5febb3ca53dea1720a languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.15.4" +"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.16.0" dependencies: - "@babel/helper-module-transforms": ^7.15.4 + "@babel/helper-module-transforms": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-simple-access": ^7.15.4 + "@babel/helper-simple-access": ^7.16.0 babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2dfc75ea1ef980d392e06397ad309bf7ec5d65f6bb9c864b32af355246183f28075f19834a968968e81b20a89652312d4512d6420b5d9be838f0afc821d037d9 + checksum: 78889e6967c9db8b26dc4946c109f72ecd494556b4985cabf87bcd65eebb290a35f62081cdce148e6840f1f40308dd5b479de3d06816973252814d9ebf6849a9 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.15.4" +"@babel/plugin-transform-modules-systemjs@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.16.0" dependencies: - "@babel/helper-hoist-variables": ^7.15.4 - "@babel/helper-module-transforms": ^7.15.4 + "@babel/helper-hoist-variables": ^7.16.0 + "@babel/helper-module-transforms": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-validator-identifier": ^7.14.9 + "@babel/helper-validator-identifier": ^7.15.7 babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b68d0ace9087c5795f2d2ecb6fbb2f247a612da9fd5c9c26cc917fe0938fe51ef9701a5e829cbd4105d4076d97f8400185bdddfe7d037fd7099aeac94fe2d01 + checksum: ecb98c580ed127ddf307d30e99aba8208afd8c6387c7859b88d88ba2ac196c1ff57da585963167515077b511f1a599770e16bc9a0c18e42306b3a42eb76852c4 languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-modules-umd@npm:7.14.5" +"@babel/plugin-transform-modules-umd@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-modules-umd@npm:7.16.0" dependencies: - "@babel/helper-module-transforms": ^7.14.5 + "@babel/helper-module-transforms": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d622f8398673472b65345b58bb226523ad75118c34c591b23a369f53c75f3831e9bdb6a309aec6af631b6446bc6a6460cae920933ef2d7e6e0940b0f6684fa94 + checksum: a1dfe344f27c01b36b5be467a3f6879fe04651d13a07ca266a592502535a6c8a7f7a00e67bafd1cad0009d2d9f07521224ecd3864fc0bf346ea7a1de9c822052 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.14.9": - version: 7.14.9 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.14.9" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.16.0" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.14.5 + "@babel/helper-create-regexp-features-plugin": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 8e1709cd82f831b81ad8b9ec246fdf530e4c52e72d311c9825ae72674251f7b4890e4d8d1e09b8a71dc1660e3020fce4fe3234f07b05b7de9f9a419181b2b549 + checksum: eee57e6110ff11044a9be84b22bc2b1952f6d9ef8d2f9af109141de763b033fa985f495cfc1d5aaf1fa9ed4fecb8efb5b332eec5582389faebce2584444ab5c3 languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-new-target@npm:7.14.5" +"@babel/plugin-transform-new-target@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-new-target@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6efea7d9749fd7e6a78b02c561a4b42a231867469b2814b5962d168803a240ef6b947262799c407fbe0e055c6c3a342f03c43a677744469f2e703ef388444915 + checksum: bb58042d67a5c40b57e07d31d391f2ef4b66b432e71be4893cbb9604d9c12a1cd168f05f04ae2a0ea97cd976129bccc9bbeac0e440e2a02db5a63b5d0cd0cc16 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-object-super@npm:7.14.5" +"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-object-super@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-replace-supers": ^7.14.5 + "@babel/helper-replace-supers": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 259b6937a816ea533ba971a885127a66a0ea5a6707c0f677911f69d3b2ec530801542eb61e851518578a67d00fe26a87d9cd9151495474423e722d72c6192dc5 + checksum: 12e79bad4b7bf5ffba7afb70fb8f5384fe5e8cd0bc876378e807362f705ce4254fd2e9b96213d1669acf139ffd36e585d806883f10f3cca941861b3ef7800c9e languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-parameters@npm:7.15.4" +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.16.0, @babel/plugin-transform-parameters@npm:^7.16.3": + version: 7.16.3 + resolution: "@babel/plugin-transform-parameters@npm:7.16.3" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e199eb284db2bfabeae80709cc975c5061cb293e944663a6e92f55b442acdc2e3c609c478e139e9ffbbe5a0a940bd9c71952462fed57dd32bc0cd41331f44af5 + checksum: 1d1906e3b76972a54945f6c6189b6c36a27668db0c4cbca844228ddb087c4c652e029990145ed51c4fd582bab0f8947b8be8d477989642d264f7f383cbde952a languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-property-literals@npm:7.14.5" +"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-property-literals@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 68cc043bdd1b1b4e445bea81d6ea592b15c20c3de02d245fa32972086a8aab1adc02085bdcef60c5faab735d2d3253a692aebfdeceddf77f715b1e6403868d9b + checksum: df6c2b98d9a83101edb23ff679d639bafa86065e027caca9a8310b5b95ffb1747d11540fc82b9768924b3581c3305001c534fcaea17e28bc2437ba30dce82eff languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.14.5": - version: 7.15.1 - resolution: "@babel/plugin-transform-react-display-name@npm:7.15.1" +"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-react-display-name@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1fbd360db8028f7fda7a191de373bb63caec5efd30c05a89abb9de42924b6b1af2fb53a70d9da2fd23aa93a4854b79c5ae6a05de9428685230299f6acbaa4617 + checksum: 3d23881a6f210c5a38695429d10b7f2b7ba3eb5e07cec911d133f97b98686cbbd7a8df8709a016d7db44dc9030e9a417e89c03917d1f85367f1c7585c5dfa34c languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.14.5" +"@babel/plugin-transform-react-jsx-development@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.16.0" dependencies: - "@babel/plugin-transform-react-jsx": ^7.14.5 + "@babel/plugin-transform-react-jsx": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: da8479a25f07f674c052babb45f5b398ebb2027feb2f560936fec3275581ad08b7926aa429bc7e3a5e238c892e88cdebc97221be8f016606591a487ace4a796e + checksum: c4bef587d9a9da0f79aee7a851247c361a443ec0fa763cc78e9eecc2a697919d0656d44c93f178b39c7162e459c6f244eef4964e24197f12be569a5daad1ffc0 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.14.5": - version: 7.14.9 - resolution: "@babel/plugin-transform-react-jsx@npm:7.14.9" +"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-react-jsx@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.14.5 - "@babel/helper-module-imports": ^7.14.5 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-module-imports": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/plugin-syntax-jsx": ^7.14.5 - "@babel/types": ^7.14.9 + "@babel/plugin-syntax-jsx": ^7.16.0 + "@babel/types": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f5bf432dacab57d879a848b852269626df046b08aac2dee02f604be2bd92fdf5f62c58c57085e97df8980267ead38b21d6e090829a48779b2ecd3742eebb52c7 + checksum: 0141dac21b282a61c6e2488864421a64b67d8e2caeef4ad5d78522c8101723eb15e43f3aaeda6a4b0f69ecc0c99404171b6284ff2198f1fa1f3abbe30ec65aac languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.14.5" +"@babel/plugin-transform-react-pure-annotations@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.14.5 + "@babel/helper-annotate-as-pure": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9d831fdc85d10a6f41d5aa542343243c44d814aca7126a01d9c800a6bb6a37184f3748b59a21af2f4c5c82d60b0bc5d3f6379382803a149e8937291ea403d318 + checksum: 43cbe83f00999dc31fb75cbe7564d17629a6198c013edca927e792053d1a475d2fdaa84b81b333c5cb9f009975bb3ccc24fc2d2cc62439f2f346d9fb967fdef5 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-regenerator@npm:7.14.5" +"@babel/plugin-transform-regenerator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-regenerator@npm:7.16.0" dependencies: regenerator-transform: ^0.14.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6e47168c1a838b751315632fcc4f2cbd39a478dbdd884b8d0da22a63f8912a6bdafce8b581fe372abbf39d9df028383c69c16bd674afd484d28de3f74d2ee2df + checksum: 341322044e5a7e56f14ce325a5fea47765c317f7b9bb31931670c53345e6282e0951dd4eaf12e826b43f33f58c4153feb45ff81bedf01f17c6e341d8ea2bbff5 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-reserved-words@npm:7.14.5" +"@babel/plugin-transform-reserved-words@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-reserved-words@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a5b01e11babae05dec3203b3b96f757c266f3d8287620bd7ed020660066141c97cbfdd99e96aa81723b3fe6e02f947cfc5b1231d0b72e5c521ce564e5cca7cbe + checksum: ee982d9a6b255447cd797c0a5d716cb2324b6c562987fada4a5419fc6dfae64f0d80ba9cb52fba37a915015c44a6f82a2b23b1b30105de91dbb51a798f17773d languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.15.8": - version: 7.15.8 - resolution: "@babel/plugin-transform-runtime@npm:7.15.8" +"@babel/plugin-transform-runtime@npm:7.16.4": + version: 7.16.4 + resolution: "@babel/plugin-transform-runtime@npm:7.16.4" dependencies: - "@babel/helper-module-imports": ^7.15.4 + "@babel/helper-module-imports": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - babel-plugin-polyfill-corejs2: ^0.2.2 - babel-plugin-polyfill-corejs3: ^0.2.5 - babel-plugin-polyfill-regenerator: ^0.2.2 + babel-plugin-polyfill-corejs2: ^0.3.0 + babel-plugin-polyfill-corejs3: ^0.4.0 + babel-plugin-polyfill-regenerator: ^0.3.0 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1dabef6a37d6c024c794269fe06109c735ff6b19164077b1d8d14d9d7ea60f84b08babc8185d8265ac3491fc290b94ab2ad86a619017338b0a34dda17e74912e + checksum: 6932007f6c810be384d783c329b1431fb3e9110ac8b25a866a63d932bbaf23b23dd7108bd8a0196daf2ad42b2d6956b0400351d4a19133f7a8440e9e64920e55 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.14.5" +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0d6f6ed31d4dc45e6b1a495cf5164bbf0a7efa6be280df6f33ce640fc5aedfb780dc1bc56906d198afe1ddf9b3e23d251cee0b07f8c7e460483b3793574d9670 + checksum: 77237514c5293d94f0cb2d04cd8a1ede739d38262e831ca9ddaf12ed83ccb35661a23ced1a57b823f1a9daec79d6f79c34e856e01986ae5e80c3448f89e0a30f languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.15.8": - version: 7.15.8 - resolution: "@babel/plugin-transform-spread@npm:7.15.8" +"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-spread@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.15.4 + "@babel/helper-skip-transparent-expression-wrappers": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9c2c44d0032fb6afeefa3a82443f98dc3acf41824d98c83181fa1431be709f92a1be79a37c4873dbbcf63fda4e583cbc65742562bdfe68f453d3875ac3b6579b + checksum: 7b667202d67d5bf2aa36c66d4f7bc7cd80c77a1c522994e4ac3083155d526bedcf93e2013ac3f7d96c049a49e154f687b325bf7a54bbcb8d764ab236e2c78391 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.14.5" +"@babel/plugin-transform-sticky-regex@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2f8276fe352b180852d986a8d899db4da3522bb3fa811fee3fc84d5b84ae5a616f3cf771690cc6e34c840c3b09685fed0b2de04be48adfd749344b12640cef61 + checksum: 39d54f54d17cf944f527f56bf7ef8c93bfc0b39ab00fa70dd696d9158936317e30414cc4a9ed6166704113a5f35e0483d53a8e867e5d570bbe249ffb5fefaf7b languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-template-literals@npm:7.14.5" +"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-template-literals@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 58f5f70ae5343331b3840c423044cd788e0f9628deae73b4b1584a98f36c9d4184a49667e0f8640cb50f349e47fa7e78bb8f2344a4210ed84236324cbf758725 + checksum: d6e085cd2ba3f57c3e2dd2f427bd95e5df257ecdb5cf024c5067fb559945e1bcb758acde8e6f918f66c3f04faccb3a268be76b40cb2c5b784825d2d34c3fad33 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.14.5" +"@babel/plugin-transform-typeof-symbol@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 380d6b382e470cbdd2a89430415016cfac20f3b78a0742107fffa17f7bc211be78e6cfa207df6e19345298a7100b6fe8f2275714338b25785ab1d46b638a9f91 + checksum: 8eb6ee5cb2d33146ea9e1e221b99d0e2d55abaed1792b675d498a955a841eb26031ea7807935b2ed58f198acdfcf5dad90da1c8a13ba58dd4e7c89e438e77608 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.15.0": - version: 7.15.8 - resolution: "@babel/plugin-transform-typescript@npm:7.15.8" +"@babel/plugin-transform-typescript@npm:7.16.1, @babel/plugin-transform-typescript@npm:^7.16.0": + version: 7.16.1 + resolution: "@babel/plugin-transform-typescript@npm:7.16.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.15.4 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/plugin-syntax-typescript": ^7.14.5 + "@babel/plugin-syntax-typescript": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ed7264fc10b1a5e02f1954e89d8424217547d5459b076ae45f89fd9d055e4deaabb4805c4a8e65d45103bb6d702b7d1545e9bfdabbd1b1710f6f6bb4792110ba + checksum: a450a28ff4b493b154cad96ab7aa1ba0c5ad44cf4fec0b5d825ef2fa19381077948ba0600a92dbc21a71d09c8b0d204d0422061499eb851b1e6a3d934bd87285 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.14.5" +"@babel/plugin-transform-unicode-escapes@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bcc79f236c351740d3b1b9c262457d8f24ab80d9ce99291d1d259d84d379fbca60055b145bb625f1661ca76fdc886f10145d563aad823e17e278d8145a7b0319 + checksum: 9e0119156e26f6f1a48d85cd7549c50adb39e5721f000900c798884fd31b819a14e60b3359cb200a44e8ca11315dca80815971a93176acf841b167d5e823db58 languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.14.5" +"@babel/plugin-transform-unicode-regex@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.16.0" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.14.5 + "@babel/helper-create-regexp-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f02a91fcbf98707d6d00f8130a1c260e512c6fcf4cd97d110d9161156427118c91146bdc0455fd4098d15e4128030465a5abd828472d11b32090eff4a291afe5 + checksum: 10f58f7312e23fa662c9456980c162c0c6010198f52f8a74c34b2a2ce8fd674ea5fc42b7b4c9d944942dda363d90ccb027e944ab2512ca55e9a670ab34ba5993 languageName: node linkType: hard -"@babel/preset-env@npm:7.15.8": - version: 7.15.8 - resolution: "@babel/preset-env@npm:7.15.8" +"@babel/preset-env@npm:7.16.4": + version: 7.16.4 + resolution: "@babel/preset-env@npm:7.16.4" dependencies: - "@babel/compat-data": ^7.15.0 - "@babel/helper-compilation-targets": ^7.15.4 + "@babel/compat-data": ^7.16.4 + "@babel/helper-compilation-targets": ^7.16.3 "@babel/helper-plugin-utils": ^7.14.5 "@babel/helper-validator-option": ^7.14.5 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.15.4 - "@babel/plugin-proposal-async-generator-functions": ^7.15.8 - "@babel/plugin-proposal-class-properties": ^7.14.5 - "@babel/plugin-proposal-class-static-block": ^7.15.4 - "@babel/plugin-proposal-dynamic-import": ^7.14.5 - "@babel/plugin-proposal-export-namespace-from": ^7.14.5 - "@babel/plugin-proposal-json-strings": ^7.14.5 - "@babel/plugin-proposal-logical-assignment-operators": ^7.14.5 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.14.5 - "@babel/plugin-proposal-numeric-separator": ^7.14.5 - "@babel/plugin-proposal-object-rest-spread": ^7.15.6 - "@babel/plugin-proposal-optional-catch-binding": ^7.14.5 - "@babel/plugin-proposal-optional-chaining": ^7.14.5 - "@babel/plugin-proposal-private-methods": ^7.14.5 - "@babel/plugin-proposal-private-property-in-object": ^7.15.4 - "@babel/plugin-proposal-unicode-property-regex": ^7.14.5 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.16.2 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.16.0 + "@babel/plugin-proposal-async-generator-functions": ^7.16.4 + "@babel/plugin-proposal-class-properties": ^7.16.0 + "@babel/plugin-proposal-class-static-block": ^7.16.0 + "@babel/plugin-proposal-dynamic-import": ^7.16.0 + "@babel/plugin-proposal-export-namespace-from": ^7.16.0 + "@babel/plugin-proposal-json-strings": ^7.16.0 + "@babel/plugin-proposal-logical-assignment-operators": ^7.16.0 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.16.0 + "@babel/plugin-proposal-numeric-separator": ^7.16.0 + "@babel/plugin-proposal-object-rest-spread": ^7.16.0 + "@babel/plugin-proposal-optional-catch-binding": ^7.16.0 + "@babel/plugin-proposal-optional-chaining": ^7.16.0 + "@babel/plugin-proposal-private-methods": ^7.16.0 + "@babel/plugin-proposal-private-property-in-object": ^7.16.0 + "@babel/plugin-proposal-unicode-property-regex": ^7.16.0 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 "@babel/plugin-syntax-class-static-block": ^7.14.5 @@ -1324,54 +1350,54 @@ __metadata: "@babel/plugin-syntax-optional-chaining": ^7.8.3 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-transform-arrow-functions": ^7.14.5 - "@babel/plugin-transform-async-to-generator": ^7.14.5 - "@babel/plugin-transform-block-scoped-functions": ^7.14.5 - "@babel/plugin-transform-block-scoping": ^7.15.3 - "@babel/plugin-transform-classes": ^7.15.4 - "@babel/plugin-transform-computed-properties": ^7.14.5 - "@babel/plugin-transform-destructuring": ^7.14.7 - "@babel/plugin-transform-dotall-regex": ^7.14.5 - "@babel/plugin-transform-duplicate-keys": ^7.14.5 - "@babel/plugin-transform-exponentiation-operator": ^7.14.5 - "@babel/plugin-transform-for-of": ^7.15.4 - "@babel/plugin-transform-function-name": ^7.14.5 - "@babel/plugin-transform-literals": ^7.14.5 - "@babel/plugin-transform-member-expression-literals": ^7.14.5 - "@babel/plugin-transform-modules-amd": ^7.14.5 - "@babel/plugin-transform-modules-commonjs": ^7.15.4 - "@babel/plugin-transform-modules-systemjs": ^7.15.4 - "@babel/plugin-transform-modules-umd": ^7.14.5 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.14.9 - "@babel/plugin-transform-new-target": ^7.14.5 - "@babel/plugin-transform-object-super": ^7.14.5 - "@babel/plugin-transform-parameters": ^7.15.4 - "@babel/plugin-transform-property-literals": ^7.14.5 - "@babel/plugin-transform-regenerator": ^7.14.5 - "@babel/plugin-transform-reserved-words": ^7.14.5 - "@babel/plugin-transform-shorthand-properties": ^7.14.5 - "@babel/plugin-transform-spread": ^7.15.8 - "@babel/plugin-transform-sticky-regex": ^7.14.5 - "@babel/plugin-transform-template-literals": ^7.14.5 - "@babel/plugin-transform-typeof-symbol": ^7.14.5 - "@babel/plugin-transform-unicode-escapes": ^7.14.5 - "@babel/plugin-transform-unicode-regex": ^7.14.5 - "@babel/preset-modules": ^0.1.4 - "@babel/types": ^7.15.6 - babel-plugin-polyfill-corejs2: ^0.2.2 - babel-plugin-polyfill-corejs3: ^0.2.5 - babel-plugin-polyfill-regenerator: ^0.2.2 - core-js-compat: ^3.16.0 + "@babel/plugin-transform-arrow-functions": ^7.16.0 + "@babel/plugin-transform-async-to-generator": ^7.16.0 + "@babel/plugin-transform-block-scoped-functions": ^7.16.0 + "@babel/plugin-transform-block-scoping": ^7.16.0 + "@babel/plugin-transform-classes": ^7.16.0 + "@babel/plugin-transform-computed-properties": ^7.16.0 + "@babel/plugin-transform-destructuring": ^7.16.0 + "@babel/plugin-transform-dotall-regex": ^7.16.0 + "@babel/plugin-transform-duplicate-keys": ^7.16.0 + "@babel/plugin-transform-exponentiation-operator": ^7.16.0 + "@babel/plugin-transform-for-of": ^7.16.0 + "@babel/plugin-transform-function-name": ^7.16.0 + "@babel/plugin-transform-literals": ^7.16.0 + "@babel/plugin-transform-member-expression-literals": ^7.16.0 + "@babel/plugin-transform-modules-amd": ^7.16.0 + "@babel/plugin-transform-modules-commonjs": ^7.16.0 + "@babel/plugin-transform-modules-systemjs": ^7.16.0 + "@babel/plugin-transform-modules-umd": ^7.16.0 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.16.0 + "@babel/plugin-transform-new-target": ^7.16.0 + "@babel/plugin-transform-object-super": ^7.16.0 + "@babel/plugin-transform-parameters": ^7.16.3 + "@babel/plugin-transform-property-literals": ^7.16.0 + "@babel/plugin-transform-regenerator": ^7.16.0 + "@babel/plugin-transform-reserved-words": ^7.16.0 + "@babel/plugin-transform-shorthand-properties": ^7.16.0 + "@babel/plugin-transform-spread": ^7.16.0 + "@babel/plugin-transform-sticky-regex": ^7.16.0 + "@babel/plugin-transform-template-literals": ^7.16.0 + "@babel/plugin-transform-typeof-symbol": ^7.16.0 + "@babel/plugin-transform-unicode-escapes": ^7.16.0 + "@babel/plugin-transform-unicode-regex": ^7.16.0 + "@babel/preset-modules": ^0.1.5 + "@babel/types": ^7.16.0 + babel-plugin-polyfill-corejs2: ^0.3.0 + babel-plugin-polyfill-corejs3: ^0.4.0 + babel-plugin-polyfill-regenerator: ^0.3.0 + core-js-compat: ^3.19.1 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 81901f2125635e86dd0f8b9853bb106100b8754897dac2a8216ca87a82f1cf02b78c99040b17bfe90ccc6a6e8459ad35597286d69c3f6dcc254baba4ffcc15c1 + checksum: 6f6f3adbfc3b917dca344821b78e23a0f31beac1c519b8b3f3445002eaa48625bca720cb3a81b6f2391831ed8444234404cbb275e477539ecfc64b54b3b23c36 languageName: node linkType: hard -"@babel/preset-modules@npm:^0.1.4": - version: 0.1.4 - resolution: "@babel/preset-modules@npm:0.1.4" +"@babel/preset-modules@npm:^0.1.5": + version: 0.1.5 + resolution: "@babel/preset-modules@npm:0.1.5" dependencies: "@babel/helper-plugin-utils": ^7.0.0 "@babel/plugin-proposal-unicode-property-regex": ^7.4.4 @@ -1380,42 +1406,42 @@ __metadata: esutils: ^2.0.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3f2fed853d1c1c29dddf851b98228a8f755d099352d08c841ae5a86e71086138b10b2cc533bfe871bab5632ee3ea41c82690b1e62617d17ee3b3272be3ec3f8d + checksum: bd90081d96b746c1940dc1ce056dee06ed3a128d20936aee1d1795199f789f9a61293ef738343ae10c6d53970c17285d5e147a945dded35423aacb75083b8a89 languageName: node linkType: hard -"@babel/preset-react@npm:7.14.5": - version: 7.14.5 - resolution: "@babel/preset-react@npm:7.14.5" +"@babel/preset-react@npm:7.16.0": + version: 7.16.0 + resolution: "@babel/preset-react@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/helper-validator-option": ^7.14.5 - "@babel/plugin-transform-react-display-name": ^7.14.5 - "@babel/plugin-transform-react-jsx": ^7.14.5 - "@babel/plugin-transform-react-jsx-development": ^7.14.5 - "@babel/plugin-transform-react-pure-annotations": ^7.14.5 + "@babel/plugin-transform-react-display-name": ^7.16.0 + "@babel/plugin-transform-react-jsx": ^7.16.0 + "@babel/plugin-transform-react-jsx-development": ^7.16.0 + "@babel/plugin-transform-react-pure-annotations": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 24f37a191f151075b02f400b91fd0f73bba7698c29da89e1fca0577478817da17240821c69872801a15cfd2d2dd836e784a963e3d4d7064ba6b31d69afc61975 + checksum: 096b473d4c0144a48bf00306ffa462ab446925b9592d14d2b979380befd18310f2316dbe9854d3b181dfcdd6bc9687abca84bc0c1fc4c4a6463859307987e615 languageName: node linkType: hard -"@babel/preset-typescript@npm:7.15.0": - version: 7.15.0 - resolution: "@babel/preset-typescript@npm:7.15.0" +"@babel/preset-typescript@npm:7.16.0": + version: 7.16.0 + resolution: "@babel/preset-typescript@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/helper-validator-option": ^7.14.5 - "@babel/plugin-transform-typescript": ^7.15.0 + "@babel/plugin-transform-typescript": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 926b793d77d8237eac28ae102b43e0d9b3eb14e4206c54be93abc407d1d22c09e9a8b3ec5ed4e2f13a6942825b29d424799975bc7ccdd87efeef353692d22f64 + checksum: 06c44de7ba8785ac5f0f2f663cbdcc6b1913edbd4b537d6ee2b976ed4af80cbd8bea8f4aef1b9dae1e4fa7a02aa340f7e28ab7e2f0b17e58dc0488f45ff3f888 languageName: node linkType: hard -"@babel/register@npm:^7.15.3": - version: 7.15.3 - resolution: "@babel/register@npm:7.15.3" +"@babel/register@npm:7.16.0, @babel/register@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/register@npm:7.16.0" dependencies: clone-deep: ^4.0.1 find-cache-dir: ^2.0.0 @@ -1424,21 +1450,30 @@ __metadata: source-map-support: ^0.5.16 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d57ee912d6072e923806e3195142405b5540277fcd20c19851af2df755689c3d838931b6d3b69f0ba85d272c28b8888ad7216abf2f5c8016115965c4b7c54453 + checksum: fbe4fb51c119c1d0dad8d7e1711fd6a9204b9cab3aae364aaf6cde30f6dd10da9274395f0039d9c77b23c41608d7c6d2cad7f0ac02e648e6818c4002eb1fa76d languageName: node linkType: hard -"@babel/runtime-corejs3@npm:7.15.4, @babel/runtime-corejs3@npm:^7.10.2": - version: 7.15.4 - resolution: "@babel/runtime-corejs3@npm:7.15.4" +"@babel/runtime-corejs3@npm:7.16.3, @babel/runtime-corejs3@npm:^7.10.2": + version: 7.16.3 + resolution: "@babel/runtime-corejs3@npm:7.16.3" + dependencies: + core-js-pure: ^3.19.0 + regenerator-runtime: ^0.13.4 + checksum: 3f29d67138fca0062fc4ca77f896c032445ca0934ba53fc5d53151d6f662ca03d7b9da4753ca9c29c24fbdd12dd3b9bb93bb6ac94e4d302f3e8cf440fc1f8ed5 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.16.3": + version: 7.16.3 + resolution: "@babel/runtime@npm:7.16.3" dependencies: - core-js-pure: ^3.16.0 regenerator-runtime: ^0.13.4 - checksum: 3b86b5c3aaf3c4d0211caf5adbb630ab3be05523adf2ece75b13911524b102ebf87107f95e5d39c3ee69ce8e727c479b9f0b96c492c59c93ccf2283523126ffe + checksum: 37a7f334e8ad1383a78d39224ba9f95b94556189a0f1e93bc1b5729dc18d9eb5eb0ba3742073629cd4024fc101315fe8945931f80ba32518f651a4f0438ec4dc languageName: node linkType: hard -"@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2, @babel/runtime@npm:^7.9.6": +"@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2, @babel/runtime@npm:^7.9.6": version: 7.15.4 resolution: "@babel/runtime@npm:7.15.4" dependencies: @@ -1447,41 +1482,41 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.15.4, @babel/template@npm:^7.3.3": - version: 7.15.4 - resolution: "@babel/template@npm:7.15.4" +"@babel/template@npm:^7.16.0, @babel/template@npm:^7.3.3": + version: 7.16.0 + resolution: "@babel/template@npm:7.16.0" dependencies: - "@babel/code-frame": ^7.14.5 - "@babel/parser": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 4ce66d750f3075350a89d998433f1815230469e169398652d0964774ab9b568655afd592f14f9da2e430d173c59fdf9c6a5d26e385fc1dae7e69a88faeae56fe + "@babel/code-frame": ^7.16.0 + "@babel/parser": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 24f65ebd01839e5e501cd74e5466ef5dc5066bfd36ff03c44eb33a0485fd2eccbb22745c2ed6fc9ffb65e279cfc7c8c438ae72ec1892a8a103eba36f823a8dff languageName: node linkType: hard -"@babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.15.4, @babel/traverse@npm:^7.7.2": - version: 7.15.4 - resolution: "@babel/traverse@npm:7.15.4" - dependencies: - "@babel/code-frame": ^7.14.5 - "@babel/generator": ^7.15.4 - "@babel/helper-function-name": ^7.15.4 - "@babel/helper-hoist-variables": ^7.15.4 - "@babel/helper-split-export-declaration": ^7.15.4 - "@babel/parser": ^7.15.4 - "@babel/types": ^7.15.4 +"@babel/traverse@npm:7.16.3, @babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.16.3, @babel/traverse@npm:^7.7.2": + version: 7.16.3 + resolution: "@babel/traverse@npm:7.16.3" + dependencies: + "@babel/code-frame": ^7.16.0 + "@babel/generator": ^7.16.0 + "@babel/helper-function-name": ^7.16.0 + "@babel/helper-hoist-variables": ^7.16.0 + "@babel/helper-split-export-declaration": ^7.16.0 + "@babel/parser": ^7.16.3 + "@babel/types": ^7.16.0 debug: ^4.1.0 globals: ^11.1.0 - checksum: 7ce19ed6bef46743c7b8e8362c5d6f63729f15d624a7eb4c044eae24b1c0b1e4a50528240c86f07c53738cf694cc826c7e0f888737412638ce8506b06d724add + checksum: 484296dbe162446e3254a60ed2ca9efe9cf1b3960d3607b78ccaeac68b23a97166963da3df1d88fc1efb209185ef68835737794acc6504e307c512723331d099 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.14.9, @babel/types@npm:^7.15.4, @babel/types@npm:^7.15.6, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.15.6 - resolution: "@babel/types@npm:7.15.6" +"@babel/types@npm:7.16.0, @babel/types@npm:^7.0.0, @babel/types@npm:^7.1.6, @babel/types@npm:^7.16.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.16.0 + resolution: "@babel/types@npm:7.16.0" dependencies: - "@babel/helper-validator-identifier": ^7.14.9 + "@babel/helper-validator-identifier": ^7.15.7 to-fast-properties: ^2.0.0 - checksum: f927d6e1001b3a12c3fa983a22f874cae0ab299f5c9814ccc1875564ef1fd64cc782da2652ba3ca62bfee5c055f00d7ee7492f2b83ee0e0a908e95f4ebe7c927 + checksum: 85109116bb5f8a5779b1ce900eb076c9035607cf354173eb9af8cfdaacc4892161f795fd062561f680ab4fd09f792db9529b4515e99c9ace2c844b21c9f5d2b0 languageName: node linkType: hard @@ -1492,20 +1527,110 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^0.4.3": - version: 0.4.3 - resolution: "@eslint/eslintrc@npm:0.4.3" +"@endemolshinegroup/cosmiconfig-typescript-loader@npm:3.0.2": + version: 3.0.2 + resolution: "@endemolshinegroup/cosmiconfig-typescript-loader@npm:3.0.2" + dependencies: + lodash.get: ^4 + make-error: ^1 + ts-node: ^9 + tslib: ^2 + peerDependencies: + cosmiconfig: ">=6" + checksum: 3f0411ac0395baf1e08b3ba4c5b42b13810469260598655da7e45bf6579554a5167fed176b297a93c0889d97d028a24c68333510c4103993b08de7a0c6bc9482 + languageName: node + linkType: hard + +"@envelop/core@npm:1.6.2, @envelop/core@npm:^1.6.1": + version: 1.6.2 + resolution: "@envelop/core@npm:1.6.2" + dependencies: + "@envelop/types": 1.5.1 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 863d1415c91ccb030ff82318143a58850325f6000c0f29afa5f60afe27eb6c4497413319123be1824cfa7d1242ad7b628d55e9a8358632d74a737c4c86ad9c90 + languageName: node + linkType: hard + +"@envelop/depth-limit@npm:1.2.1": + version: 1.2.1 + resolution: "@envelop/depth-limit@npm:1.2.1" + dependencies: + "@envelop/core": ^1.6.1 + graphql-depth-limit: ^1.1.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 7fc0bb42f9873f060f44c686d24dac5e2c81891a93ae9a245483ff28f75d4de4e763c5a906b8f46257cc1d63f6f8dda06f8d85255b60a655911c7f37de5ff367 + languageName: node + linkType: hard + +"@envelop/disable-introspection@npm:1.2.1": + version: 1.2.1 + resolution: "@envelop/disable-introspection@npm:1.2.1" + peerDependencies: + "@envelop/core": ^1.6.1 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: b6021c8087e240d957c8b63fda040d53eac9d2754c79b67a3d4edc2528537d4ec2c0b034f8be88f7453d125b0ac60455f9439a03b2a1492c060c4cb02ad55547 + languageName: node + linkType: hard + +"@envelop/filter-operation-type@npm:1.2.1": + version: 1.2.1 + resolution: "@envelop/filter-operation-type@npm:1.2.1" + peerDependencies: + "@envelop/core": ^1.6.1 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 98800860fda9c48d5746c15fb421682e6660692eb7b583906981ae1463a46965522ac47309893cb2681ef1284a0bd8595ef8d48f8e68c4ec926ba015214ea00d + languageName: node + linkType: hard + +"@envelop/parser-cache@npm:2.2.1": + version: 2.2.1 + resolution: "@envelop/parser-cache@npm:2.2.1" + dependencies: + tiny-lru: 7.0.6 + peerDependencies: + "@envelop/core": ^1.6.1 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: acc67b41e269ea4ffc9e441596444a191eac090db15a64ac0a4c9e4e287077044bd05dfea6a0221092d41f98c1ca68421f7047f51d1b382b12f2c27aa84d6742 + languageName: node + linkType: hard + +"@envelop/types@npm:1.5.1": + version: 1.5.1 + resolution: "@envelop/types@npm:1.5.1" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 6693d2b1526ed5fbac4ee735cf62ca0fb50784635c99f806e097b774f93a6f64d6abe64b0835b0faef24d29148a97080d1559480f89261342f31cf257ae3a4c1 + languageName: node + linkType: hard + +"@envelop/validation-cache@npm:2.2.1": + version: 2.2.1 + resolution: "@envelop/validation-cache@npm:2.2.1" + dependencies: + tiny-lru: 7.0.6 + peerDependencies: + "@envelop/core": ^1.6.1 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 4e62932b14a209cad744c564e28dd4f54a2425ed0884bd7d7808c59a247847d928c518c4c97aa6107ee8c116642f77a362aa1f130a0e7b5506fc71db66d299d7 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^1.0.4": + version: 1.0.4 + resolution: "@eslint/eslintrc@npm:1.0.4" dependencies: ajv: ^6.12.4 - debug: ^4.1.1 - espree: ^7.3.0 + debug: ^4.3.2 + espree: ^9.0.0 globals: ^13.9.0 ignore: ^4.0.6 import-fresh: ^3.2.1 - js-yaml: ^3.13.1 + js-yaml: ^4.1.0 minimatch: ^3.0.4 strip-json-comments: ^3.1.1 - checksum: 0eed93369f72ef044686d07824742121f9b95153ff34f4614e4e69d64332ee68c84eb70da851a9005bb76b3d1d64ad76c2e6293a808edc0f7dfb883689ca136d + checksum: 3e1d5151dea296000bb5406ce10d341fb457fbc99fe717b0bb342298f7b5ae4151288964cac815ed06a507c947addd5aa7a13a034149ef0947672ff3b1812cda languageName: node linkType: hard @@ -1516,14 +1641,489 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.5.0": - version: 0.5.0 - resolution: "@humanwhocodes/config-array@npm:0.5.0" +"@graphql-codegen/cli@npm:2.3.0": + version: 2.3.0 + resolution: "@graphql-codegen/cli@npm:2.3.0" + dependencies: + "@graphql-codegen/core": 2.3.0 + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-tools/apollo-engine-loader": ^7.0.5 + "@graphql-tools/code-file-loader": ^7.0.6 + "@graphql-tools/git-loader": ^7.0.5 + "@graphql-tools/github-loader": ^7.0.5 + "@graphql-tools/graphql-file-loader": ^7.0.5 + "@graphql-tools/json-file-loader": ^7.1.2 + "@graphql-tools/load": ^7.3.0 + "@graphql-tools/prisma-loader": ^7.0.6 + "@graphql-tools/url-loader": ^7.0.11 + "@graphql-tools/utils": ^8.1.1 + ansi-escapes: ^4.3.1 + chalk: ^4.1.0 + change-case-all: 1.0.14 + chokidar: ^3.5.2 + common-tags: ^1.8.0 + cosmiconfig: ^7.0.0 + debounce: ^1.2.0 + dependency-graph: ^0.11.0 + detect-indent: ^6.0.0 + glob: ^7.1.6 + globby: ^11.0.4 + graphql-config: ^4.1.0 + inquirer: ^7.3.3 + is-glob: ^4.0.1 + json-to-pretty-yaml: ^1.2.2 + latest-version: 5.1.0 + listr: ^0.14.3 + listr-update-renderer: ^0.5.0 + log-symbols: ^4.0.0 + minimatch: ^3.0.4 + mkdirp: ^1.0.4 + string-env-interpolation: ^1.0.1 + ts-log: ^2.2.3 + tslib: ~2.3.0 + valid-url: ^1.0.9 + wrap-ansi: ^7.0.0 + yaml: ^1.10.0 + yargs: ^17.0.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + bin: + gql-gen: bin.js + graphql-code-generator: bin.js + graphql-codegen: bin.js + checksum: dc216ea0b203c2a8b342123f56650fffcacf19582b54d5533b164cd0e00e32f49d0af53d2ec5e4ec93d389746b438fea1e0607fceece8448512e74fee1634b33 + languageName: node + linkType: hard + +"@graphql-codegen/core@npm:2.3.0": + version: 2.3.0 + resolution: "@graphql-codegen/core@npm:2.3.0" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-tools/schema": ^8.1.2 + "@graphql-tools/utils": ^8.1.1 + tslib: ~2.3.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + checksum: 1c8202d19888365660b45a9f34c9fce680b33f4c8ee00d81d5876e4463238fd796f6263e317f60d0f8ffe7faf328950e089900e36b92e667b07f127fa49469bc + languageName: node + linkType: hard + +"@graphql-codegen/plugin-helpers@npm:^2.3.0": + version: 2.3.1 + resolution: "@graphql-codegen/plugin-helpers@npm:2.3.1" + dependencies: + "@graphql-tools/utils": ^8.5.2 + change-case-all: 1.0.14 + common-tags: 1.8.0 + import-from: 4.0.0 + lodash: ~4.17.0 + tslib: ~2.3.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 524bfccc57ab34096ef52379d470b55264700987ad963adf08f63fb17f54f7c496f928fd659f67cd8f8c883f524b43e26d6140dd9ea295bc3df0b2983148e263 + languageName: node + linkType: hard + +"@graphql-codegen/schema-ast@npm:2.4.0, @graphql-codegen/schema-ast@npm:^2.4.0": + version: 2.4.0 + resolution: "@graphql-codegen/schema-ast@npm:2.4.0" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-tools/utils": ^8.1.1 + tslib: ~2.3.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: f68af710c91d3e0c2c16c1afcbcb5f62860a1c7c3f8fa40547cfd8c7b3da8a412b886155497429c0946f503daa0740d03b67b52a2e9a17f38f2fca2e9d4c217b + languageName: node + linkType: hard + +"@graphql-codegen/typescript-operations@npm:2.2.1": + version: 2.2.1 + resolution: "@graphql-codegen/typescript-operations@npm:2.2.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-codegen/typescript": ^2.4.1 + "@graphql-codegen/visitor-plugin-common": 2.5.1 + auto-bind: ~4.0.0 + tslib: ~2.3.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 2c187ccf029fc142960499f9d727099f8b03a13ff8cb98562ee4c2bccef830dd464b48d3aa3f80bc8b6148e18c95de29ef6c8c46a4c05f669fd6410b682c0bf1 + languageName: node + linkType: hard + +"@graphql-codegen/typescript-react-apollo@npm:3.2.2": + version: 3.2.2 + resolution: "@graphql-codegen/typescript-react-apollo@npm:3.2.2" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-codegen/visitor-plugin-common": 2.5.1 + auto-bind: ~4.0.0 + change-case-all: 1.0.14 + tslib: ~2.3.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-tag: ^2.0.0 + checksum: c8a6b74a9d32fa386a1b8e199e4266b6ce2bd764b0cb043b004d50d82ee64eb5689269262a86db2cd612f1a4b79bd16dc057a418951a26003d56c5666e254b1a + languageName: node + linkType: hard + +"@graphql-codegen/typescript-resolvers@npm:2.4.2": + version: 2.4.2 + resolution: "@graphql-codegen/typescript-resolvers@npm:2.4.2" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-codegen/typescript": ^2.4.1 + "@graphql-codegen/visitor-plugin-common": 2.5.1 + "@graphql-tools/utils": ^8.1.1 + auto-bind: ~4.0.0 + tslib: ~2.3.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 7980e2a23811940b4e84b7305bfd3aa89309f5f3cb3b170346bf6a1b45f147996807e392a40d120902a3cfc447cd65ddf8ed0871bc9fee051983c987ca347b54 + languageName: node + linkType: hard + +"@graphql-codegen/typescript@npm:2.4.1, @graphql-codegen/typescript@npm:^2.4.1": + version: 2.4.1 + resolution: "@graphql-codegen/typescript@npm:2.4.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-codegen/schema-ast": ^2.4.0 + "@graphql-codegen/visitor-plugin-common": 2.5.1 + auto-bind: ~4.0.0 + tslib: ~2.3.0 + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 02292df9267ab48f62f5af4d06e75e9ddbf2c39bc3eb9c205d74a22ef38bedcbef46b233e67e733be87fc5d2f527e07d11398b1a3c2bf1b91d1b6c0170252d21 + languageName: node + linkType: hard + +"@graphql-codegen/visitor-plugin-common@npm:2.5.1": + version: 2.5.1 + resolution: "@graphql-codegen/visitor-plugin-common@npm:2.5.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-tools/optimize": ^1.0.1 + "@graphql-tools/relay-operation-optimizer": ^6.3.7 + "@graphql-tools/utils": ^8.3.0 + auto-bind: ~4.0.0 + change-case-all: 1.0.14 + dependency-graph: ^0.11.0 + graphql-tag: ^2.11.0 + parse-filepath: ^1.0.2 + tslib: ~2.3.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: dfd26c0c83a7aa17bf2112f69d693182acb6c6764902cb86d51412e6c87ff424eb9de42891e5112ff7b4cf47c97e033797da1c303df1a0d4aa5092f72fb6cde3 + languageName: node + linkType: hard + +"@graphql-tools/apollo-engine-loader@npm:^7.0.5": + version: 7.2.1 + resolution: "@graphql-tools/apollo-engine-loader@npm:7.2.1" + dependencies: + "@graphql-tools/utils": ^8.5.1 + cross-undici-fetch: ^0.0.20 + sync-fetch: 0.3.1 + tslib: ~2.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 94568714cf99ef9de7498ce68d9e357c4886cfda9593cfa61cd49c30df3261460e587f4aabe499db26db7161a0699b745037a87cb39d8ea16e023e04d48b09c4 + languageName: node + linkType: hard + +"@graphql-tools/batch-execute@npm:^8.3.1": + version: 8.3.1 + resolution: "@graphql-tools/batch-execute@npm:8.3.1" + dependencies: + "@graphql-tools/utils": ^8.5.1 + dataloader: 2.0.0 + tslib: ~2.3.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 02524b26467a27e937924987ab636c769d6c72bfcca3b9070d7190cdd591e6429c7502d7e411179e04a81af252f8143c6cf686b1570f881dd24895dfef1db840 + languageName: node + linkType: hard + +"@graphql-tools/code-file-loader@npm:^7.0.6": + version: 7.2.2 + resolution: "@graphql-tools/code-file-loader@npm:7.2.2" + dependencies: + "@graphql-tools/graphql-tag-pluck": ^7.1.3 + "@graphql-tools/utils": ^8.5.1 + globby: ^11.0.3 + tslib: ~2.3.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 7ef2371400ec9116c37fb4b7a2b23b87a74630daabb3471414a44e67f4fbb6d025fac9e8efd62aa268ec460e72b5881c4a781b4df5079179ac8c63e4ce0cab66 + languageName: node + linkType: hard + +"@graphql-tools/delegate@npm:^8.4.1, @graphql-tools/delegate@npm:^8.4.2": + version: 8.4.2 + resolution: "@graphql-tools/delegate@npm:8.4.2" + dependencies: + "@graphql-tools/batch-execute": ^8.3.1 + "@graphql-tools/schema": ^8.3.1 + "@graphql-tools/utils": ^8.5.3 + dataloader: 2.0.0 + tslib: ~2.3.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 6b26314ad6319d023af5a8867de7348261771cb1eb2d25b1dd650afcd2c803b69c1a8d632410bd909ef0e9aaf917bb7840579c54e899edb397ca02adca92fc60 + languageName: node + linkType: hard + +"@graphql-tools/git-loader@npm:^7.0.5": + version: 7.1.2 + resolution: "@graphql-tools/git-loader@npm:7.1.2" + dependencies: + "@graphql-tools/graphql-tag-pluck": ^7.1.3 + "@graphql-tools/utils": ^8.5.1 + is-glob: 4.0.3 + micromatch: ^4.0.4 + tslib: ~2.3.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: f1139e6d3cc52455a3c81fc6426113cf8cca903182e1146eaceaa3ff15cf0d5c734060572ef97c458fc76ab16705861050f7f9bda20ebe3b5f2a64c748bc7bcd + languageName: node + linkType: hard + +"@graphql-tools/github-loader@npm:^7.0.5": + version: 7.2.1 + resolution: "@graphql-tools/github-loader@npm:7.2.1" + dependencies: + "@graphql-tools/graphql-tag-pluck": ^7.1.3 + "@graphql-tools/utils": ^8.5.1 + cross-undici-fetch: ^0.0.20 + sync-fetch: 0.3.1 + tslib: ~2.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 9cb34f64f97b1bde80c35916721e86e3834bdb6136923c9c633abb127ca01cee7278cf7c900d42f150442806dbff86203db76695a6a0f99f71d8e43ae0b92e84 + languageName: node + linkType: hard + +"@graphql-tools/graphql-file-loader@npm:^7.0.5, @graphql-tools/graphql-file-loader@npm:^7.3.2": + version: 7.3.3 + resolution: "@graphql-tools/graphql-file-loader@npm:7.3.3" + dependencies: + "@graphql-tools/import": ^6.5.7 + "@graphql-tools/utils": ^8.5.1 + globby: ^11.0.3 + tslib: ~2.3.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: b7d8a318ccd8c6b156785d89726c1d74706476155f72bb1b260a927614593b978f0defbe9c7e2a83ff3660441d35a9acc0f96eb300aaabccd55b9d341ce89fa4 + languageName: node + linkType: hard + +"@graphql-tools/graphql-tag-pluck@npm:^7.1.3": + version: 7.1.4 + resolution: "@graphql-tools/graphql-tag-pluck@npm:7.1.4" + dependencies: + "@babel/parser": 7.16.4 + "@babel/traverse": 7.16.3 + "@babel/types": 7.16.0 + "@graphql-tools/utils": ^8.5.1 + tslib: ~2.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 9cc5d4aa5d2c6f70f5fb2b0657af02182e76560d79151fee8adec14c84740b29c8d149d656ad2f4a3e54921e86a10226eec3d3f1149e2011632f77c0aa87c32b + languageName: node + linkType: hard + +"@graphql-tools/import@npm:^6.5.7": + version: 6.6.1 + resolution: "@graphql-tools/import@npm:6.6.1" + dependencies: + "@graphql-tools/utils": 8.5.3 + resolve-from: 5.0.0 + tslib: ~2.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 03336eb3d9aa1882ff64334c21e2fcb99bec8f2f86ad704416644833159d5eac9f43745bdd229b35085c9692586b929fe7fa08ceb2e598c5d917dbff7ae8b53e + languageName: node + linkType: hard + +"@graphql-tools/json-file-loader@npm:^7.1.2, @graphql-tools/json-file-loader@npm:^7.3.2": + version: 7.3.3 + resolution: "@graphql-tools/json-file-loader@npm:7.3.3" + dependencies: + "@graphql-tools/utils": ^8.5.1 + globby: ^11.0.3 + tslib: ~2.3.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 5efcc97d8c41d92b73572be712ee344f2ae9f6aa59982750ed60f5898213deed906b4c9d538d913f2fa3be7384bb6e925629d31d280f470cf96dd531e0c537c6 + languageName: node + linkType: hard + +"@graphql-tools/load@npm:^7.3.0, @graphql-tools/load@npm:^7.4.1": + version: 7.4.1 + resolution: "@graphql-tools/load@npm:7.4.1" + dependencies: + "@graphql-tools/schema": 8.3.1 + "@graphql-tools/utils": ^8.5.1 + p-limit: 3.1.0 + tslib: ~2.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: ae3917e698daafe28861f0270a82d87eb05b786144d6b387ed7c1b0ffbe778e15a8ea9536f6fca7b02709a5137e5d5a612529ade519eae787873690fb98d9398 + languageName: node + linkType: hard + +"@graphql-tools/merge@npm:8.2.1, @graphql-tools/merge@npm:^8.2.1": + version: 8.2.1 + resolution: "@graphql-tools/merge@npm:8.2.1" + dependencies: + "@graphql-tools/utils": ^8.5.1 + tslib: ~2.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 369037651ea0b648f6c3b16366de1d89076a2b6ddbaf4b59e18daacb867558ee6da8bc83c5f42fd70ec77010d6e8cb7243743b44dae33138326e053109fc551d + languageName: node + linkType: hard + +"@graphql-tools/optimize@npm:^1.0.1": + version: 1.1.1 + resolution: "@graphql-tools/optimize@npm:1.1.1" + dependencies: + tslib: ~2.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: e7ed961f6c3b8379fe6fe3a3d867eede31e8ae3bdf560d4188558f5ddacedf0e50293e36889014ab523e7cb7ccce3b42c4c4f3092afaf36809b3d4234c0b228e + languageName: node + linkType: hard + +"@graphql-tools/prisma-loader@npm:^7.0.6": + version: 7.1.1 + resolution: "@graphql-tools/prisma-loader@npm:7.1.1" + dependencies: + "@graphql-tools/url-loader": ^7.4.2 + "@graphql-tools/utils": ^8.5.1 + "@types/js-yaml": ^4.0.0 + "@types/json-stable-stringify": ^1.0.32 + "@types/jsonwebtoken": ^8.5.0 + chalk: ^4.1.0 + debug: ^4.3.1 + dotenv: ^10.0.0 + graphql-request: ^3.3.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + isomorphic-fetch: ^3.0.0 + js-yaml: ^4.0.0 + json-stable-stringify: ^1.0.1 + jsonwebtoken: ^8.5.1 + lodash: ^4.17.20 + replaceall: ^0.1.6 + scuid: ^1.1.0 + tslib: ~2.3.0 + yaml-ast-parser: ^0.0.43 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: fc1b863f61ef29be482ddd2fca4f4607dba82c2ce5f691e68929278c78998962fb718a87f44d639e11a4a06b18b3806335affde741482af32f1f1ad5e1039c14 + languageName: node + linkType: hard + +"@graphql-tools/relay-operation-optimizer@npm:^6.3.7": + version: 6.4.1 + resolution: "@graphql-tools/relay-operation-optimizer@npm:6.4.1" + dependencies: + "@graphql-tools/utils": ^8.5.1 + relay-compiler: 12.0.0 + tslib: ~2.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 028617c4bb27ce1b2e7a377227fb97bb0de19e16429daf60ef510d36e027255224ea7224ea56098c89bdf6e66401d8070f69223f1f1e37e3321be6e459422164 + languageName: node + linkType: hard + +"@graphql-tools/schema@npm:8.3.1, @graphql-tools/schema@npm:^8.1.2, @graphql-tools/schema@npm:^8.3.1": + version: 8.3.1 + resolution: "@graphql-tools/schema@npm:8.3.1" + dependencies: + "@graphql-tools/merge": ^8.2.1 + "@graphql-tools/utils": ^8.5.1 + tslib: ~2.3.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: d2b8f96a371f174a97d4432beb10adfbbcac7b6ccb5f09f45cc7ecb8c4bc9cdadfe30443af26fa87c2c01ad258f97826e84224ff53d3f3a8cc43ef22928af33c + languageName: node + linkType: hard + +"@graphql-tools/url-loader@npm:^7.0.11, @graphql-tools/url-loader@npm:^7.4.2": + version: 7.5.3 + resolution: "@graphql-tools/url-loader@npm:7.5.3" + dependencies: + "@graphql-tools/delegate": ^8.4.1 + "@graphql-tools/utils": ^8.5.1 + "@graphql-tools/wrap": ^8.3.1 + "@n1ru4l/graphql-live-query": 0.9.0 + "@types/websocket": 1.0.4 + "@types/ws": ^8.0.0 + cross-undici-fetch: ^0.0.26 + dset: ^3.1.0 + extract-files: 11.0.0 + graphql-sse: ^1.0.1 + graphql-ws: ^5.4.1 + isomorphic-ws: 4.0.1 + meros: 1.1.4 + subscriptions-transport-ws: ^0.11.0 + sync-fetch: 0.3.1 + tslib: ~2.3.0 + valid-url: 1.0.9 + value-or-promise: 1.0.11 + ws: 8.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 57d664baacb70541343237045cd9dfe974a9b2ad966ddfc8322b68ffc904296829fd83ccdfddb7f11a67c6c82669805d3cb80e101e16b0385077666686bdfa5d + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:8.5.3, @graphql-tools/utils@npm:^8.1.1, @graphql-tools/utils@npm:^8.3.0, @graphql-tools/utils@npm:^8.5.1, @graphql-tools/utils@npm:^8.5.2, @graphql-tools/utils@npm:^8.5.3": + version: 8.5.3 + resolution: "@graphql-tools/utils@npm:8.5.3" + dependencies: + tslib: ~2.3.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 795967e72b8ead3182766392e37286864c450f47c2b28b43cb7005e8aff3c2ce68a30fb04fdaf0cb9c02b43cacb8a8008de614ab809020651705102fe017c754 + languageName: node + linkType: hard + +"@graphql-tools/wrap@npm:^8.3.1": + version: 8.3.2 + resolution: "@graphql-tools/wrap@npm:8.3.2" + dependencies: + "@graphql-tools/delegate": ^8.4.2 + "@graphql-tools/schema": ^8.3.1 + "@graphql-tools/utils": ^8.5.3 + tslib: ~2.3.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 494d370a411b9cf2e81ec2510a382d05157e5b944a28dbc598b52fcd9d757074d7174357088c44dd6c820cb866784b19e7f90e909d6639818a9c43494b65a516 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.6.0": + version: 0.6.0 + resolution: "@humanwhocodes/config-array@npm:0.6.0" dependencies: "@humanwhocodes/object-schema": ^1.2.0 debug: ^4.1.1 minimatch: ^3.0.4 - checksum: 217fac9e03492361825a2bf761d4bb7ec6d10002a10f7314142245eb13ac9d123523d24d5619c3c4159af215c7b3e583ed386108e227014bef4efbf9caca8ccc + checksum: 318607caa7c2c4fafb8d5c1126ae8d0a603164897199eb465efba28662212fbfb0af27b937e6fa196b095e35e0459e1ba7e4d7dfd585e6d5474d99204d4dffe8 languageName: node linkType: hard @@ -1541,6 +2141,13 @@ __metadata: languageName: node linkType: hard +"@iarna/toml@npm:^2.2.5": + version: 2.2.5 + resolution: "@iarna/toml@npm:2.2.5" + checksum: d095381ad4554aca233b7cf5a91f243ef619e5e15efd3157bc640feac320545450d14b394aebbf6f02a2047437ced778ae598d5879a995441ab7b6c0b2c2f201 + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -1762,19 +2369,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^27.2.4": - version: 27.2.4 - resolution: "@jest/types@npm:27.2.4" - dependencies: - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^16.0.0 - chalk: ^4.0.0 - checksum: 69de7a242e14fbcd8ae7264f29d951159b53652079c84906ab516677022c2479f3ceeb87b40cc950103b92926423704599a0872764fceef319a5f35d1be31eae - languageName: node - linkType: hard - "@jest/types@npm:^27.2.5": version: 27.2.5 resolution: "@jest/types@npm:27.2.5" @@ -2601,6 +3195,15 @@ __metadata: languageName: node linkType: hard +"@n1ru4l/graphql-live-query@npm:0.9.0": + version: 0.9.0 + resolution: "@n1ru4l/graphql-live-query@npm:0.9.0" + peerDependencies: + graphql: ^15.4.0 || ^16.0.0 + checksum: 680383b0234b57f0237d35a78c5716821b67e2f2e8d9942b9f9cbcbca21b5d8390cb7e1b5f0b70cbc7820fd15225f922e8dbd9eac9906d7851cba6838fee44b8 + languageName: node + linkType: hard + "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3": version: 2.1.8-no-fsevents.3 resolution: "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3" @@ -2863,27 +3466,157 @@ __metadata: languageName: node linkType: hard -"@redwoodjs/eslint-config@npm:0.38.1": - version: 0.38.1 - resolution: "@redwoodjs/eslint-config@npm:0.38.1" +"@panva/asn1.js@npm:^1.0.0": + version: 1.0.0 + resolution: "@panva/asn1.js@npm:1.0.0" + checksum: 5d6e7ec460b65b017043e2702e25f323936baad2aa248dbd9bf54c9508e351d236bffac96fa033c6e36cb0482a9dd73c3605948a36a59bd6bec49353ba8d7b62 + languageName: node + linkType: hard + +"@prisma/client@npm:3.5.0": + version: 3.5.0 + resolution: "@prisma/client@npm:3.5.0" dependencies: - "@babel/core": 7.15.8 - "@babel/eslint-parser": 7.15.8 + "@prisma/engines-version": 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e + peerDependencies: + prisma: "*" + peerDependenciesMeta: + prisma: + optional: true + checksum: ee109139952f5615ed038d32c65694d850b9d3efaeed5179d01db8a76592fa705e9abdb0a0bf41d1b64508ab656ee38adb67f34177e8220ba3dfe5a592ac5b45 + languageName: node + linkType: hard + +"@prisma/engines-version@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e": + version: 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e + resolution: "@prisma/engines-version@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e" + checksum: e1dc8757c27f73967d2ef395da226f33ab1e6cf7d08563690918f03dcad1edbac7b4c24e5e6de2a9fcfa1c58abfc73cdc1d146f7e691d40d692de757f2a1cb02 + languageName: node + linkType: hard + +"@redwoodjs/api@npm:0.39.2": + version: 0.39.2 + resolution: "@redwoodjs/api@npm:0.39.2" + dependencies: + "@babel/runtime-corejs3": 7.16.3 + "@prisma/client": 3.5.0 + crypto-js: 4.1.1 + jsonwebtoken: 8.5.1 + jwks-rsa: 2.0.5 + md5: 2.3.0 + pascalcase: 1.0.0 + pino: 7.3.0 + pino-pretty: 7.2.0 + uuid: 8.3.2 + checksum: cd30716d642c3f95af397c6e203ed0aa02723f46f95b2036642f89627c66487511c49410628520f4bc2133a550d3500cc0d1f156ef94e636f70b8fd130edf167 + languageName: node + linkType: hard + +"@redwoodjs/eslint-config@npm:0.39.2": + version: 0.39.2 + resolution: "@redwoodjs/eslint-config@npm:0.39.2" + dependencies: + "@babel/core": 7.16.0 + "@babel/eslint-parser": 7.16.3 "@babel/eslint-plugin": 7.14.5 - "@typescript-eslint/eslint-plugin": 5.1.0 - "@typescript-eslint/parser": 5.1.0 - eslint: 7.32.0 + "@redwoodjs/internal": 0.39.2 + "@typescript-eslint/eslint-plugin": 5.4.0 + "@typescript-eslint/parser": 5.4.0 + eslint: 8.2.0 eslint-config-prettier: 8.3.0 eslint-import-resolver-babel-module: 5.3.1 eslint-plugin-babel: 5.3.1 - eslint-plugin-import: 2.25.2 + eslint-plugin-import: 2.25.3 eslint-plugin-jest-dom: 3.9.2 - eslint-plugin-jsx-a11y: 6.4.1 + eslint-plugin-jsx-a11y: 6.5.1 eslint-plugin-prettier: 4.0.0 - eslint-plugin-react: 7.26.1 - eslint-plugin-react-hooks: 4.2.0 + eslint-plugin-react: 7.27.1 + eslint-plugin-react-hooks: 4.3.0 + prettier: 2.4.1 + checksum: cdaad629d099031d10e3e9044d973f767c59cb5191f04c1b3d6faa9656b0d3d49f7e54a51158888ce0073c52101be526103ea3a57260db0925421396afe4b4be + languageName: node + linkType: hard + +"@redwoodjs/graphql-server@npm:0.39.2": + version: 0.39.2 + resolution: "@redwoodjs/graphql-server@npm:0.39.2" + dependencies: + "@envelop/core": 1.6.2 + "@envelop/depth-limit": 1.2.1 + "@envelop/disable-introspection": 1.2.1 + "@envelop/filter-operation-type": 1.2.1 + "@envelop/parser-cache": 2.2.1 + "@envelop/validation-cache": 2.2.1 + "@graphql-tools/merge": 8.2.1 + "@graphql-tools/schema": 8.3.1 + "@graphql-tools/utils": 8.5.3 + "@prisma/client": 3.5.0 + "@redwoodjs/api": 0.39.2 + core-js: 3.19.1 + graphql: 16.0.1 + graphql-helix: 1.10.2 + graphql-playground-html: 1.6.30 + graphql-scalars: 1.13.6 + graphql-tag: 2.12.6 + lodash.merge: 4.6.2 + lodash.omitby: 4.6.0 + node-fetch: 2.6.1 + uuid: 8.3.2 + checksum: dd5b04589c75bdf7de85420c9baebaac7b31ecff278f0ba6ee05cea6da1e6427eb56dee59b36879d02ec9cfedad7409144235ecd7c56609607ec601e399114e4 + languageName: node + linkType: hard + +"@redwoodjs/internal@npm:0.39.2": + version: 0.39.2 + resolution: "@redwoodjs/internal@npm:0.39.2" + dependencies: + "@babel/parser": 7.16.4 + "@babel/plugin-transform-typescript": 7.16.1 + "@babel/register": 7.16.0 + "@babel/runtime-corejs3": 7.16.3 + "@babel/traverse": 7.16.3 + "@graphql-codegen/cli": 2.3.0 + "@graphql-codegen/core": 2.3.0 + "@graphql-codegen/schema-ast": 2.4.0 + "@graphql-codegen/typescript": 2.4.1 + "@graphql-codegen/typescript-operations": 2.2.1 + "@graphql-codegen/typescript-react-apollo": 3.2.2 + "@graphql-codegen/typescript-resolvers": 2.4.2 + "@redwoodjs/graphql-server": 0.39.2 + babel-plugin-graphql-tag: 3.3.0 + babel-plugin-polyfill-corejs3: 0.4.0 + chalk: 4.1.2 + core-js: 3.19.1 + deepmerge: 4.2.2 + esbuild: 0.13.14 + fast-glob: 3.2.7 + findup-sync: 5.0.0 + fs-extra: 10.0.0 + glob: 7.2.0 + graphql: 16.0.1 + kill-port: 1.6.1 prettier: 2.4.1 - checksum: 3f86af3296fb814c73035a9023bd42f9e0449a8e42ba5b2cc6fbcd6e1d2320a0355d6172409a4d2bd23192ac9b662b6dc0225f8fc4b85f05213f424e02750375 + rimraf: 3.0.2 + string-env-interpolation: 1.0.1 + toml: 3.0.0 + bin: + rw-gen: dist/generate/generate.js + rw-gen-watch: dist/generate/watch.js + checksum: bf4d900ef8a19aebefefe5701465977371a8a56dfb305f3cc0e1d1b08e7e95a8ecf98f5c695466d4358dbca4ba4cde44a637ddcc5701cb441320525a4adbf731 + languageName: node + linkType: hard + +"@samverschueren/stream-to-observable@npm:^0.3.0": + version: 0.3.1 + resolution: "@samverschueren/stream-to-observable@npm:0.3.1" + dependencies: + any-observable: ^0.3.0 + peerDependenciesMeta: + rxjs: + optional: true + zen-observable: + optional: true + checksum: 0d874453f6bc2460d71783292291f52feb36c2a75314b1072a6ffe6206562f33e9d664a554348d565a6b54da9041d75070371052545bc329caaa52f64216987f languageName: node linkType: hard @@ -2953,9 +3686,9 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:5.14.1": - version: 5.14.1 - resolution: "@testing-library/jest-dom@npm:5.14.1" +"@testing-library/jest-dom@npm:5.15.1": + version: 5.15.1 + resolution: "@testing-library/jest-dom@npm:5.15.1" dependencies: "@babel/runtime": ^7.9.2 "@types/testing-library__jest-dom": ^5.9.1 @@ -2966,7 +3699,7 @@ __metadata: dom-accessibility-api: ^0.5.6 lodash: ^4.17.15 redent: ^3.0.0 - checksum: f373bcbc1daa872fa56d316ede8dfa4728d47414fe15ada6f91fd69ce4ab7eae776d3536186e211ff631c85ed56600133b90fe9c0429256df5609bb27c516d46 + checksum: 39b8ddcbb98d0e22418b879c75ee6b2ec89a302e720c0007cf630c6f345985010b8ca2f8f2f1326c84fac7800d5364961c5412da9ac5058e78538918f856badb languageName: node linkType: hard @@ -3001,6 +3734,13 @@ __metadata: languageName: node linkType: hard +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: 073bfa548026b1ebaf1659eb8961e526be22fa77139b10d60e712f46d2f0f05f4e6c8bec62a087d41088ee9e29faa7f54838568e475ab2f776171003c3920858 + languageName: node + linkType: hard + "@types/aria-query@npm:^4.2.0": version: 4.2.2 resolution: "@types/aria-query@npm:4.2.2" @@ -3049,6 +3789,25 @@ __metadata: languageName: node linkType: hard +"@types/body-parser@npm:*": + version: 1.19.2 + resolution: "@types/body-parser@npm:1.19.2" + dependencies: + "@types/connect": "*" + "@types/node": "*" + checksum: c2dd533e1d4af958d656bdba7f376df68437d8dfb7e4522c88b6f3e6f827549e4be5bf0be68a5f1878accf5752ea37fba7e8a4b6dda53d0d122d77e27b69c750 + languageName: node + linkType: hard + +"@types/connect@npm:*": + version: 3.4.35 + resolution: "@types/connect@npm:3.4.35" + dependencies: + "@types/node": "*" + checksum: f11a1ccfed540723dddd7cb496543ad40a2f663f22ff825e9b220f0bae86db8b1ced2184ee41d3fb358b019ad6519e39481b06386db91ebb859003ad1d54fe6a + languageName: node + linkType: hard + "@types/cookie@npm:^0.4.1": version: 0.4.1 resolution: "@types/cookie@npm:0.4.1" @@ -3056,6 +3815,48 @@ __metadata: languageName: node linkType: hard +"@types/express-jwt@npm:0.0.42": + version: 0.0.42 + resolution: "@types/express-jwt@npm:0.0.42" + dependencies: + "@types/express": "*" + "@types/express-unless": "*" + checksum: fa0c3219ab0a9ccd1c3c1a7057626148d3f81ab53846d247e2729d006fa913bf202d8c0716a91d10fa94ebc8ab8861acbfca3118d3b671a6dc411f00f5553d68 + languageName: node + linkType: hard + +"@types/express-serve-static-core@npm:^4.17.18": + version: 4.17.26 + resolution: "@types/express-serve-static-core@npm:4.17.26" + dependencies: + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + checksum: 7092334366a21d1b7844ca7b18c04bc54832dc6898477b2338d3da2736209fd8d9bfa11af8ee7b6eb3de1114b6175ba58fc846d99e4e0a6cf2bfe80e6cccd649 + languageName: node + linkType: hard + +"@types/express-unless@npm:*": + version: 0.5.2 + resolution: "@types/express-unless@npm:0.5.2" + dependencies: + "@types/express": "*" + checksum: cc0a7011218a163400f35b13843015394c9707114adb844c62fa7684448a18e382379c398c99ff087af648354563376ca75dfba79dad151d8ae777cd0c3e6e18 + languageName: node + linkType: hard + +"@types/express@npm:*": + version: 4.17.13 + resolution: "@types/express@npm:4.17.13" + dependencies: + "@types/body-parser": "*" + "@types/express-serve-static-core": ^4.17.18 + "@types/qs": "*" + "@types/serve-static": "*" + checksum: 2387977093ac8b8e5f837b3ff27e8e28bb389058e6a2d8f66ce6818a0c486a07491aae5def3926d730c30b623d10d758b5bb3909816442e9a5bd1b058cfc3bd5 + languageName: node + linkType: hard + "@types/graceful-fs@npm:^4.1.2": version: 4.1.5 resolution: "@types/graceful-fs@npm:4.1.5" @@ -3100,13 +3901,13 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:*, @types/jest@npm:27.0.2": - version: 27.0.2 - resolution: "@types/jest@npm:27.0.2" +"@types/jest@npm:*, @types/jest@npm:27.0.3": + version: 27.0.3 + resolution: "@types/jest@npm:27.0.3" dependencies: jest-diff: ^27.0.0 pretty-format: ^27.0.0 - checksum: 5fa123f05bf003fd5fea92878168ea720fbc6dab5ae9648fa883d0b2d427a1dd70a288c1a10e431df83ab4ff8b03e08e2aa4e77b0238c506d044567c994ad72b + checksum: 14a28483206cf57a6f2880ec8f4be7e37795cfa57c01e725edf52c551506705d970e3dce1787a9f5cf31e9f4a68eecb33cd684dbfcad69be525b2b603dd0bfe7 languageName: node linkType: hard @@ -3117,6 +3918,13 @@ __metadata: languageName: node linkType: hard +"@types/js-yaml@npm:^4.0.0": + version: 4.0.5 + resolution: "@types/js-yaml@npm:4.0.5" + checksum: 37eb783b16f1704d26bbf83b35cf5d12f6018c18f2c9232515468ac60a4c5b71b6344a7b872545eeca3dfd66bb17e2bb1e611646cc727d7c6a001165a4ec0a32 + languageName: node + linkType: hard + "@types/json-schema@npm:^7.0.9": version: 7.0.9 resolution: "@types/json-schema@npm:7.0.9" @@ -3124,6 +3932,13 @@ __metadata: languageName: node linkType: hard +"@types/json-stable-stringify@npm:^1.0.32": + version: 1.0.33 + resolution: "@types/json-stable-stringify@npm:1.0.33" + checksum: e4a9a8f31694ce5a0e1599e2c8bf73a0b98d6016e27889ede828baa661b89a3fd4620a3821f697329beb3f3b71c3c3f943fd762d311abe56f0a167b5f66002e6 + languageName: node + linkType: hard + "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" @@ -3131,6 +3946,15 @@ __metadata: languageName: node linkType: hard +"@types/jsonwebtoken@npm:^8.5.0": + version: 8.5.6 + resolution: "@types/jsonwebtoken@npm:8.5.6" + dependencies: + "@types/node": "*" + checksum: 8ae0932c1ec2c6b2566fbaa0116777175c5b97c25b8d0c5adc0fe4c383aa62c77c01dfc55c2f88c7b34978ede9bc5116a4ba1703e038f6555b1e3d1f59fe6bb4 + languageName: node + linkType: hard + "@types/keyv@npm:^3.1.1": version: 3.1.3 resolution: "@types/keyv@npm:3.1.3" @@ -3140,6 +3964,13 @@ __metadata: languageName: node linkType: hard +"@types/mime@npm:^1": + version: 1.3.2 + resolution: "@types/mime@npm:1.3.2" + checksum: 61d144e5170c6cdf6de334ec0ee4bb499b1a0fb0233834a9e8cec6d289b0e3042bedf35cbc1c995d71a247635770dae3f13a9ddae69098bb54b933429bc08d35 + languageName: node + linkType: hard + "@types/minimatch@npm:^3.0.3": version: 3.0.5 resolution: "@types/minimatch@npm:3.0.5" @@ -3182,6 +4013,20 @@ __metadata: languageName: node linkType: hard +"@types/qs@npm:*": + version: 6.9.7 + resolution: "@types/qs@npm:6.9.7" + checksum: 157eb05f4c75790b0ebdcf7b0547ff117feabc8cda03c3cac3d3ea82bb19a1912e76a411df3eb0bdd01026a9770f07bc0e7e3fbe39ebb31c1be4564c16be35f1 + languageName: node + linkType: hard + +"@types/range-parser@npm:*": + version: 1.2.4 + resolution: "@types/range-parser@npm:1.2.4" + checksum: 8e3c3cda88675efd9145241bcb454449715b7d015a7fb80d018dcb3d441fa1938b302242cc0dfa6b02c5d014dd8bc082ae90091e62b1e816cae3ec36c2a7dbcb + languageName: node + linkType: hard + "@types/responselike@npm:^1.0.0": version: 1.0.0 resolution: "@types/responselike@npm:1.0.0" @@ -3191,6 +4036,16 @@ __metadata: languageName: node linkType: hard +"@types/serve-static@npm:*": + version: 1.13.10 + resolution: "@types/serve-static@npm:1.13.10" + dependencies: + "@types/mime": ^1 + "@types/node": "*" + checksum: 7f3de245cbb11f3a9d7977b6e763585c6022ebfc079fa746f8d824411bb6b343521c1cff5407edc0d5196f4b7d6fea431fb36455843f4a6717d295c235065cf2 + languageName: node + linkType: hard + "@types/set-cookie-parser@npm:^2.4.0": version: 2.4.1 resolution: "@types/set-cookie-parser@npm:2.4.1" @@ -3225,6 +4080,24 @@ __metadata: languageName: node linkType: hard +"@types/websocket@npm:1.0.4": + version: 1.0.4 + resolution: "@types/websocket@npm:1.0.4" + dependencies: + "@types/node": "*" + checksum: 007983ad4a2602eec1b8ef5c5152592a7c6b74598f2fca035e5e561c8d1dbc5df39cb462794dfa73ee957074d58d326eb7d5206f20e9fd40e65c58fd6e06d08b + languageName: node + linkType: hard + +"@types/ws@npm:^8.0.0": + version: 8.2.1 + resolution: "@types/ws@npm:8.2.1" + dependencies: + "@types/node": "*" + checksum: ae595b0ca57cdee498055eb568677bb90b84e2d5b396657762d6f161b7063c5a0de4790ed1230d4960f675da292cc7537876a8776a55360251d8be3935a0d0fe + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 20.2.1 resolution: "@types/yargs-parser@npm:20.2.1" @@ -3250,12 +4123,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.1.0" +"@typescript-eslint/eslint-plugin@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.4.0" dependencies: - "@typescript-eslint/experimental-utils": 5.1.0 - "@typescript-eslint/scope-manager": 5.1.0 + "@typescript-eslint/experimental-utils": 5.4.0 + "@typescript-eslint/scope-manager": 5.4.0 debug: ^4.3.2 functional-red-black-tree: ^1.0.1 ignore: ^5.1.8 @@ -3268,66 +4141,66 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 406cea9d45c2e5397c71ec4701a1ae5cadb088748ceca76b4f7d6befe4c607da05ca790b376f34dddc782c9b9319c20a341688c852e9e326eaa217380ef6c93d + checksum: 3bd03dfeb72f89d26aeabe5ff7b816d126d899f6829c96b7366b7715daf170887aec58dd53e275e9bac3c5de1d5ace569ad4a16455c1d59a562e0d7d855f2afc languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/experimental-utils@npm:5.1.0" +"@typescript-eslint/experimental-utils@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/experimental-utils@npm:5.4.0" dependencies: "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.1.0 - "@typescript-eslint/types": 5.1.0 - "@typescript-eslint/typescript-estree": 5.1.0 + "@typescript-eslint/scope-manager": 5.4.0 + "@typescript-eslint/types": 5.4.0 + "@typescript-eslint/typescript-estree": 5.4.0 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 peerDependencies: eslint: "*" - checksum: 115a43e4f5c19dc1f538eb51833af70dfb32fe6302e6b69c154c675398b358d0fc1023e15503448ea6b98a67c4612c4789a9a257093be3ad8633987646cd3784 + checksum: 125ee4008942d1ee7194442998a239930dae8bb8d191463cc8b9516360f24f51af168873c4da46ce5e49b4a64ee3b47af2c635747bf8267656a096174848318d languageName: node linkType: hard -"@typescript-eslint/parser@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/parser@npm:5.1.0" +"@typescript-eslint/parser@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/parser@npm:5.4.0" dependencies: - "@typescript-eslint/scope-manager": 5.1.0 - "@typescript-eslint/types": 5.1.0 - "@typescript-eslint/typescript-estree": 5.1.0 + "@typescript-eslint/scope-manager": 5.4.0 + "@typescript-eslint/types": 5.4.0 + "@typescript-eslint/typescript-estree": 5.4.0 debug: ^4.3.2 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 23829fd519c3cbb767e6f093d395d14884866d91e09061454c42fcdd2ef43c0e0f514f9a5b780622edfef6911064e3c5614e354efc367be81cc2db998cd2411e + checksum: 7729fe589f376235f4883ffdc79c2998a598ed2bd857b4c371e32eb6c902340a570f61ad85f29deec408b9ae1519135b9ed07d8c39a1f97b93cf32dff9b7896f languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/scope-manager@npm:5.1.0" +"@typescript-eslint/scope-manager@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/scope-manager@npm:5.4.0" dependencies: - "@typescript-eslint/types": 5.1.0 - "@typescript-eslint/visitor-keys": 5.1.0 - checksum: 62bbaf152d251362153fb83ce4b81d238cd612e0aaa43369e3293e587bd711f7c9be05a2237221fa65297fda40c636ef9eb38111b1f4c227291d261d5e5a200d + "@typescript-eslint/types": 5.4.0 + "@typescript-eslint/visitor-keys": 5.4.0 + checksum: 2971fc96fb078a276c88fe4fee95e55d5cb2cdd764489f3ef0b999c07d9fbc600e934f871b5690c332cc56a437529a46a5414589a8c72392b13db99af30ad596 languageName: node linkType: hard -"@typescript-eslint/types@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/types@npm:5.1.0" - checksum: a320e9b33261a8469d45cfc37f48b74feb56309122205e7497b7b5fb1e2e4dc0d8a1f4aad79334721d798ce0e0cde410bb498a83e153537212ae5a2fcda77312 +"@typescript-eslint/types@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/types@npm:5.4.0" + checksum: 46f4a71b9495652ac176b60b340d18de9c62f2856d5c5785ebaaab9dbe4d04378c16f65da26b3cc389634def8e004329d28c3cdbd7e952c3ada1def545a94f1d languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.1.0" +"@typescript-eslint/typescript-estree@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.4.0" dependencies: - "@typescript-eslint/types": 5.1.0 - "@typescript-eslint/visitor-keys": 5.1.0 + "@typescript-eslint/types": 5.4.0 + "@typescript-eslint/visitor-keys": 5.4.0 debug: ^4.3.2 globby: ^11.0.4 is-glob: ^4.0.3 @@ -3336,17 +4209,17 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: e6b02953febe134fd7b720fde653651f20fc52501be534d1380f3de9abb11c2e450c5437e4fa533555fdf6793f7bacfcf88ff98fee3cab61c48bdb1b2bd43c1c + checksum: 350459149cab5fe1fe8b537a62a0356ca7a81bb5f07a1a6db49b6e1cd06c51708acde7d49879008f8fef6f2bad6044e2b00440dd5ef7356ddb62226745f95f3d languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.1.0" +"@typescript-eslint/visitor-keys@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.4.0" dependencies: - "@typescript-eslint/types": 5.1.0 + "@typescript-eslint/types": 5.4.0 eslint-visitor-keys: ^3.0.0 - checksum: ead1d4708acef688a7842a35b7e0fb8833b21a5d5bb14172f5d0142f5cab0e97c25bd95fe2a0a81ea0c4ad3b7ff9c6eceed818dec6820c65d10daf8a0abb218f + checksum: 050185bb86126966dc10260694127fe0e0be54ae70905872d7828b0977eddfebada3ba4fde5cd1f94329b92950e755e1ab214b6c2803787f813d97a4340c40dd languageName: node linkType: hard @@ -3383,6 +4256,15 @@ __metadata: languageName: node linkType: hard +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: ^5.0.0 + checksum: 90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 + languageName: node + linkType: hard + "acorn-globals@npm:^6.0.0": version: 6.0.0 resolution: "acorn-globals@npm:6.0.0" @@ -3409,7 +4291,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^7.1.1, acorn@npm:^7.4.0": +"acorn@npm:^7.1.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" bin: @@ -3427,6 +4309,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.6.0": + version: 8.6.0 + resolution: "acorn@npm:8.6.0" + bin: + acorn: bin/acorn + checksum: 88c40e80571d6d2e1680e69313cbc8bf275c9558f25d441ea5a00c2693e88f63d8cc3c536127abdc892e9b87f387aad16c1a1902b7935b5a523455e68dde6249 + languageName: node + linkType: hard + "add-stream@npm:^1.0.0": version: 1.0.0 resolution: "add-stream@npm:1.0.0" @@ -3476,18 +4367,6 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.1": - version: 8.6.3 - resolution: "ajv@npm:8.6.3" - dependencies: - fast-deep-equal: ^3.1.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 94f8e39f3ab971e17d81b1335fbd67bb4b628b6bad8e96b0699af49dca991d7b1c89e53f7bf0823953c01ad36de915400ad4aad4728523a188914726f5805619 - languageName: node - linkType: hard - "ansi-align@npm:^3.0.0": version: 3.0.1 resolution: "ansi-align@npm:3.0.1" @@ -3504,7 +4383,14 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^4.2.1": +"ansi-escapes@npm:^3.0.0": + version: 3.2.0 + resolution: "ansi-escapes@npm:3.2.0" + checksum: 084e1ce38139ad2406f18a8e7efe2b850ddd06ce3c00f633392d1ce67756dab44fe290e573d09ef3c9a0cb13c12881e0e35a8f77a017d39a0a4ab85ae2fae04f + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: @@ -3534,6 +4420,13 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^2.2.1": + version: 2.2.1 + resolution: "ansi-styles@npm:2.2.1" + checksum: 7c68aed4f1857389e7a12f85537ea5b40d832656babbf511cc7ecd9efc52889b9c3e5653a71a6aade783c3c5e0aa223ad4ff8e83c27ac8a666514e6c79068cab + languageName: node + linkType: hard + "ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" @@ -3559,6 +4452,13 @@ __metadata: languageName: node linkType: hard +"any-observable@npm:^0.3.0": + version: 0.3.0 + resolution: "any-observable@npm:0.3.0" + checksum: 104c2b79c2ac7e6c75b35f8fd62babf73015668f22bd25336c6f848350d91f9e7daf2fddbf1c1b76fe795e89fbc91b49f70a2aec5c69f1acf0562c344f36042b + languageName: node + linkType: hard + "anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.2 resolution: "anymatch@npm:3.1.2" @@ -3593,6 +4493,13 @@ __metadata: languageName: node linkType: hard +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a + languageName: node + linkType: hard + "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -3602,6 +4509,25 @@ __metadata: languageName: node linkType: hard +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e + languageName: node + linkType: hard + +"args@npm:^5.0.1": + version: 5.0.1 + resolution: "args@npm:5.0.1" + dependencies: + camelcase: 5.0.0 + chalk: 2.4.2 + leven: 2.1.0 + mri: 1.1.4 + checksum: b9160233bcaec31678be5b0cd731bcc1e5ff790e68c67888710824964a9fc3066245cdbbaed36475ba49ecac9263d514d8117a2e479d878a8a9a6cbec48c33a6 + languageName: node + linkType: hard + "aria-query@npm:^4.2.2": version: 4.2.2 resolution: "aria-query@npm:4.2.2" @@ -3626,7 +4552,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.1, array-includes@npm:^3.1.3, array-includes@npm:^3.1.4": +"array-includes@npm:^3.1.3, array-includes@npm:^3.1.4": version: 3.1.4 resolution: "array-includes@npm:3.1.4" dependencies: @@ -3657,7 +4583,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.2.4": +"array.prototype.flatmap@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.flatmap@npm:1.2.5" dependencies: @@ -3682,7 +4608,7 @@ __metadata: languageName: node linkType: hard -"asap@npm:^2.0.0": +"asap@npm:^2.0.0, asap@npm:~2.0.3": version: 2.0.6 resolution: "asap@npm:2.0.6" checksum: c6d5e39fe1f15e4b87677460bd66b66050cd14c772269cee6688824c1410a08ab20254bb6784f9afb75af9144a9f9a7692d49547f4d19d715aeb7c0318f3136d @@ -3712,13 +4638,6 @@ __metadata: languageName: node linkType: hard -"astral-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "astral-regex@npm:2.0.0" - checksum: f63d439cc383db1b9c5c6080d1e240bd14dae745f15d11ec5da863e182bbeca70df6c8191cffef5deba0b566ef98834610a68be79ac6379c95eeb26e1b310e25 - languageName: node - linkType: hard - "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" @@ -3742,6 +4661,20 @@ __metadata: languageName: node linkType: hard +"atomic-sleep@npm:^1.0.0": + version: 1.0.0 + resolution: "atomic-sleep@npm:1.0.0" + checksum: e329a6665512736a9bbb073e1761b4ec102f7926cce35037753146a9db9c8104f5044c1662e4a863576ce544fb8be27cd2be6bc8c1a40147d03f31eb1cfb6e8a + languageName: node + linkType: hard + +"auto-bind@npm:~4.0.0": + version: 4.0.0 + resolution: "auto-bind@npm:4.0.0" + checksum: 12f70745d081ba990dca028ecfa70de25d4baa9a8b74a5bef3ab293da56cba32ff8276c3ff8e5fe6d9f370547bf3fa71486befbfefe272af7e722c21d0c25530 + languageName: node + linkType: hard + "aws-sign2@npm:~0.7.0": version: 0.7.0 resolution: "aws-sign2@npm:0.7.0" @@ -3756,10 +4689,10 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.0.2": - version: 4.3.3 - resolution: "axe-core@npm:4.3.3" - checksum: 567c752b5fa6462931bab54826412a20642e80559570c9708f9654ccc4c531cff324bd9bd1de0e35903e9f1b8d63ce39bff3d7415b2382a379fbdd2739ce857a +"axe-core@npm:^4.3.5": + version: 4.3.5 + resolution: "axe-core@npm:4.3.5" + checksum: 48c08748271964b9a09e523cd5739cc3b8be8982ffffda30269b7e4f75af35b56ba951467a0e37eb213380f7b3544b7503e1a213660aadc00b990d6427e11b1e languageName: node linkType: hard @@ -3788,6 +4721,19 @@ __metadata: languageName: node linkType: hard +"babel-literal-to-ast@npm:^2.1.0": + version: 2.1.0 + resolution: "babel-literal-to-ast@npm:2.1.0" + dependencies: + "@babel/parser": ^7.1.6 + "@babel/traverse": ^7.1.6 + "@babel/types": ^7.1.6 + peerDependencies: + "@babel/core": ^7.1.2 + checksum: 58e41540f9727b981d5adb684f3927a423054f77740045e9c5e136de7cc8909afa56110445070bde7b00b8cb75e2c81e7925710f59aacb6549aee9ff89c7afe1 + languageName: node + linkType: hard + "babel-plugin-auto-import@npm:1.1.0": version: 1.1.0 resolution: "babel-plugin-auto-import@npm:1.1.0" @@ -3807,6 +4753,21 @@ __metadata: languageName: node linkType: hard +"babel-plugin-graphql-tag@npm:3.3.0": + version: 3.3.0 + resolution: "babel-plugin-graphql-tag@npm:3.3.0" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/parser": ^7.3.2 + babel-literal-to-ast: ^2.1.0 + debug: ^4.1.1 + peerDependencies: + "@babel/core": ^7.0.0 + graphql-tag: ^2.10.1 + checksum: 6616bf9d03f5e905413ea024e0609bf70a2b18b875c19da1e00fe787a16e71ce36244bd097f65c7faa269d4e97e683ab53ca532d15827298c0381a05b8341add + languageName: node + linkType: hard + "babel-plugin-istanbul@npm:^6.0.0": version: 6.0.0 resolution: "babel-plugin-istanbul@npm:6.0.0" @@ -3832,39 +4793,39 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.2.2": - version: 0.2.2 - resolution: "babel-plugin-polyfill-corejs2@npm:0.2.2" +"babel-plugin-polyfill-corejs2@npm:^0.3.0": + version: 0.3.0 + resolution: "babel-plugin-polyfill-corejs2@npm:0.3.0" dependencies: "@babel/compat-data": ^7.13.11 - "@babel/helper-define-polyfill-provider": ^0.2.2 + "@babel/helper-define-polyfill-provider": ^0.3.0 semver: ^6.1.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7fb5129204c31d46474b78f7ceaa117b6e740edc8dfc7a32aeb82d766f8815b06bcee09b95d0ddcfd71dbf9b237887b16adf06d18e1ef0e4689213bb2b2bf9ee + checksum: e3d86452139d3fd5e385644b429e8de6f9f70673294dba070c2dcd09a2075372e2f0e8837edbfae4e862c4ff891c5a1aebbc9e92adf6ee10798a42bc6ee9e505 languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.2.5": - version: 0.2.5 - resolution: "babel-plugin-polyfill-corejs3@npm:0.2.5" +"babel-plugin-polyfill-corejs3@npm:0.4.0, babel-plugin-polyfill-corejs3@npm:^0.4.0": + version: 0.4.0 + resolution: "babel-plugin-polyfill-corejs3@npm:0.4.0" dependencies: - "@babel/helper-define-polyfill-provider": ^0.2.2 - core-js-compat: ^3.16.2 + "@babel/helper-define-polyfill-provider": ^0.3.0 + core-js-compat: ^3.18.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 370d9039235d63b72d1c2addd5674c44c6e28d876ccc4600d4c4d83877b73b58aced87f43a150cc76685cba4c05544b1969c079afb9faf5ee75d1bcc9f2510b1 + checksum: 1b18ba8925b42a70f14f64be825664ddd11cd5f53b50c2cb859d2f8eb00d62b292c5cac78cbeeb0bc7ba621826aa8674e6d9cdf7a32cece4b0d76c8263f92966 languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.2.2": - version: 0.2.2 - resolution: "babel-plugin-polyfill-regenerator@npm:0.2.2" +"babel-plugin-polyfill-regenerator@npm:^0.3.0": + version: 0.3.0 + resolution: "babel-plugin-polyfill-regenerator@npm:0.3.0" dependencies: - "@babel/helper-define-polyfill-provider": ^0.2.2 + "@babel/helper-define-polyfill-provider": ^0.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 87ca62b1bcb67cd4d9b0076683203bca985a7e5a9702533a60363d2fef8a5471aa0e2411555fb9623d3a1a0987315199a99221bcf07fa2c89cf444a7aac5fd32 + checksum: 2d4b83c7ae734cf1b1a41170dfa6d044e41f2c5262c0b9d41ee1195caa61f56cd85bad2d80cfe49f4d729be45f0d03276fa33b7433379fc4f39f82eb4fad865d languageName: node linkType: hard @@ -3875,6 +4836,13 @@ __metadata: languageName: node linkType: hard +"babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0": + version: 7.0.0-beta.0 + resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0" + checksum: 67e3d6a706637097526b2d3046d3124d3efd3aac28b47af940c2f8df01b8d7ffeb4cdf5648f3b5eac3f098f5b61c4845e306f34301c869e5e14db6ae8b77f699 + languageName: node + linkType: hard + "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.0.1 resolution: "babel-preset-current-node-syntax@npm:1.0.1" @@ -3897,6 +4865,43 @@ __metadata: languageName: node linkType: hard +"babel-preset-fbjs@npm:^3.4.0": + version: 3.4.0 + resolution: "babel-preset-fbjs@npm:3.4.0" + dependencies: + "@babel/plugin-proposal-class-properties": ^7.0.0 + "@babel/plugin-proposal-object-rest-spread": ^7.0.0 + "@babel/plugin-syntax-class-properties": ^7.0.0 + "@babel/plugin-syntax-flow": ^7.0.0 + "@babel/plugin-syntax-jsx": ^7.0.0 + "@babel/plugin-syntax-object-rest-spread": ^7.0.0 + "@babel/plugin-transform-arrow-functions": ^7.0.0 + "@babel/plugin-transform-block-scoped-functions": ^7.0.0 + "@babel/plugin-transform-block-scoping": ^7.0.0 + "@babel/plugin-transform-classes": ^7.0.0 + "@babel/plugin-transform-computed-properties": ^7.0.0 + "@babel/plugin-transform-destructuring": ^7.0.0 + "@babel/plugin-transform-flow-strip-types": ^7.0.0 + "@babel/plugin-transform-for-of": ^7.0.0 + "@babel/plugin-transform-function-name": ^7.0.0 + "@babel/plugin-transform-literals": ^7.0.0 + "@babel/plugin-transform-member-expression-literals": ^7.0.0 + "@babel/plugin-transform-modules-commonjs": ^7.0.0 + "@babel/plugin-transform-object-super": ^7.0.0 + "@babel/plugin-transform-parameters": ^7.0.0 + "@babel/plugin-transform-property-literals": ^7.0.0 + "@babel/plugin-transform-react-display-name": ^7.0.0 + "@babel/plugin-transform-react-jsx": ^7.0.0 + "@babel/plugin-transform-shorthand-properties": ^7.0.0 + "@babel/plugin-transform-spread": ^7.0.0 + "@babel/plugin-transform-template-literals": ^7.0.0 + babel-plugin-syntax-trailing-function-commas: ^7.0.0-beta.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 2be440c0fd7d1df247417be35644cb89f40a300e7fcdc44878b737ec49b04380eff422e4ebdc7bb5efd5ecfef45b634fc5fe11c3a409a50c9084e81083037902 + languageName: node + linkType: hard + "babel-preset-jest@npm:^27.2.0": version: 27.2.0 resolution: "babel-preset-jest@npm:27.2.0" @@ -3909,6 +4914,13 @@ __metadata: languageName: node linkType: hard +"backo2@npm:^1.0.2": + version: 1.0.2 + resolution: "backo2@npm:1.0.2" + checksum: a9e825a6a38a6d1c4a94476eabc13d6127dfaafb0967baf104affbb67806ae26abbb58dab8d572d2cd21ef06634ff57c3ad48dff14b904e18de1474cc2f22bf3 + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -3999,18 +5011,18 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.16.6, browserslist@npm:^4.17.3": - version: 4.17.3 - resolution: "browserslist@npm:4.17.3" +"browserslist@npm:^4.17.5, browserslist@npm:^4.17.6": + version: 4.18.1 + resolution: "browserslist@npm:4.18.1" dependencies: - caniuse-lite: ^1.0.30001264 - electron-to-chromium: ^1.3.857 + caniuse-lite: ^1.0.30001280 + electron-to-chromium: ^1.3.896 escalade: ^3.1.1 - node-releases: ^1.1.77 - picocolors: ^0.2.1 + node-releases: ^2.0.1 + picocolors: ^1.0.0 bin: browserslist: cli.js - checksum: 936863a2e8539d697d3c45297de82df4cd896be5bec53a24b0969d9c788e8eee0c6e6421a9a2f46e5cb5804c49762cd532f781e1c117c07727be6dda613cea07 + checksum: e92013f0ff6034e7660ac16d6fbad8313882d139abfd05168406e5d950fc98a8c604d580212b044cc503e111aacc189113497f104a8855429db8654895e773d9 languageName: node linkType: hard @@ -4023,6 +5035,13 @@ __metadata: languageName: node linkType: hard +"buffer-equal-constant-time@npm:1.0.1": + version: 1.0.1 + resolution: "buffer-equal-constant-time@npm:1.0.1" + checksum: fb2294e64d23c573d0dd1f1e7a466c3e978fe94a4e0f8183937912ca374619773bef8e2aceb854129d2efecbbc515bbd0cc78d2734a3e3031edb0888531bbc8e + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -4030,7 +5049,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.5.0": +"buffer@npm:^5.5.0, buffer@npm:^5.7.0": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -4119,6 +5138,16 @@ __metadata: languageName: node linkType: hard +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: ^3.1.2 + tslib: ^2.0.3 + checksum: bf9eefaee1f20edbed2e9a442a226793bc72336e2b99e5e48c6b7252b6f70b080fc46d8246ab91939e2af91c36cdd422e0af35161e58dd089590f302f8f64c8a + languageName: node + linkType: hard + "camelcase-keys@npm:^6.2.2": version: 6.2.2 resolution: "camelcase-keys@npm:6.2.2" @@ -4130,6 +5159,13 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:5.0.0": + version: 5.0.0 + resolution: "camelcase@npm:5.0.0" + checksum: 515f1ce911d65949708d9e179f1a40af71eb7de668230a0c85961a35590f7da39af79cfb48d834883dbcc7995bdb7dd6bae8027b101e37a10d95337ec8732800 + languageName: node + linkType: hard + "camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -4144,10 +5180,21 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001264": - version: 1.0.30001265 - resolution: "caniuse-lite@npm:1.0.30001265" - checksum: fffea0c67e5aecf14a48ada1f7d00e88bb749717943d2b8b73e8ab5ab24bd4df20fd57e5a3014e4be7e8b5ce12ce718196fc8f2bb4eeeb13d3dc16c9346c687b +"caniuse-lite@npm:^1.0.30001280": + version: 1.0.30001282 + resolution: "caniuse-lite@npm:1.0.30001282" + checksum: fdfcf4fbedc66e26f7dd8a856f5bfc60c2c303a99cf14a6f9519943710dfad98cc85357bcec13adea81ce0a5c08a9c4c5f1f50346e72f910b24c02078dbe633b + languageName: node + linkType: hard + +"capital-case@npm:^1.0.4": + version: 1.0.4 + resolution: "capital-case@npm:1.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 6a034af73401f6e55d91ea35c190bbf8bda21714d4ea8bb8f1799311d123410a80f0875db4e3236dc3f97d74231ff4bf1c8783f2be13d7733c7d990c57387281 languageName: node linkType: hard @@ -4158,7 +5205,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0": +"chalk@npm:2.4.2, chalk@npm:^2.0.0, chalk@npm:^2.4.1": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -4169,6 +5216,29 @@ __metadata: languageName: node linkType: hard +"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: 4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"chalk@npm:^1.0.0, chalk@npm:^1.1.3": + version: 1.1.3 + resolution: "chalk@npm:1.1.3" + dependencies: + ansi-styles: ^2.2.1 + escape-string-regexp: ^1.0.2 + has-ansi: ^2.0.0 + strip-ansi: ^3.0.0 + supports-color: ^2.0.0 + checksum: 28c3e399ec286bb3a7111fd4225ebedb0d7b813aef38a37bca7c498d032459c265ef43404201d5fbb8d888d29090899c95335b4c0cda13e8b126ff15c541cef8 + languageName: node + linkType: hard + "chalk@npm:^3.0.0": version: 3.0.0 resolution: "chalk@npm:3.0.0" @@ -4179,13 +5249,41 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1": +"change-case-all@npm:1.0.14": + version: 1.0.14 + resolution: "change-case-all@npm:1.0.14" + dependencies: + change-case: ^4.1.2 + is-lower-case: ^2.0.2 + is-upper-case: ^2.0.2 + lower-case: ^2.0.2 + lower-case-first: ^2.0.2 + sponge-case: ^1.0.1 + swap-case: ^2.0.2 + title-case: ^3.0.3 + upper-case: ^2.0.2 + upper-case-first: ^2.0.2 + checksum: c2d5fda011b2430f9e503afdca5d8ed48b0e8ee96e38f5530193f8a503317c4a82e6b721c5ea8ef852a2534bdd3d1af25d76e0604b820cd3bc136cf9c179803e + languageName: node + linkType: hard + +"change-case@npm:^4.1.2": version: 4.1.2 - resolution: "chalk@npm:4.1.2" + resolution: "change-case@npm:4.1.2" dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: 4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + camel-case: ^4.1.2 + capital-case: ^1.0.4 + constant-case: ^3.0.4 + dot-case: ^3.0.4 + header-case: ^2.0.4 + no-case: ^3.0.4 + param-case: ^3.0.4 + pascal-case: ^3.1.2 + path-case: ^3.0.4 + sentence-case: ^3.0.4 + snake-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 95a6e48563cd393241ce18470c7310a8a050304a64b63addac487560ab039ce42b099673d1d293cc10652324d92060de11b5d918179fe3b5af2ee521fb03ca58 languageName: node linkType: hard @@ -4203,7 +5301,14 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.2.2, chokidar@npm:^3.4.0, chokidar@npm:^3.4.2": +"charenc@npm:0.0.2": + version: 0.0.2 + resolution: "charenc@npm:0.0.2" + checksum: a45ec39363a16799d0f9365c8dd0c78e711415113c6f14787a22462ef451f5013efae8a28f1c058f81fc01f2a6a16955f7a5fd0cd56247ce94a45349c89877d8 + languageName: node + linkType: hard + +"chokidar@npm:^3.4.0, chokidar@npm:^3.4.2, chokidar@npm:^3.5.2": version: 3.5.2 resolution: "chokidar@npm:3.5.2" dependencies: @@ -4271,6 +5376,15 @@ __metadata: languageName: node linkType: hard +"cli-cursor@npm:^2.0.0, cli-cursor@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-cursor@npm:2.1.0" + dependencies: + restore-cursor: ^2.0.0 + checksum: 09ee6d8b5b818d840bf80ec9561eaf696672197d3a02a7daee2def96d5f52ce6e0bbe7afca754ccf14f04830b5a1b4556273e983507d5029f95bba3016618eda + languageName: node + linkType: hard + "cli-cursor@npm:^3.1.0": version: 3.1.0 resolution: "cli-cursor@npm:3.1.0" @@ -4287,6 +5401,16 @@ __metadata: languageName: node linkType: hard +"cli-truncate@npm:^0.2.1": + version: 0.2.1 + resolution: "cli-truncate@npm:0.2.1" + dependencies: + slice-ansi: 0.0.4 + string-width: ^1.0.1 + checksum: c6caa5e2b70d841c42f4a2270d6fc7129df915f8911e4afa90c79231ccc857cd819a2c90e0707fde04e51ce56b4d71646b843f6cbaff4f7cdcb3b91ed51f6e89 + languageName: node + linkType: hard + "cli-width@npm:^3.0.0": version: 3.0.0 resolution: "cli-width@npm:3.0.0" @@ -4305,6 +5429,17 @@ __metadata: languageName: node linkType: hard +"cliui@npm:^6.0.0": + version: 6.0.0 + resolution: "cliui@npm:6.0.0" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.0 + wrap-ansi: ^6.2.0 + checksum: 35229b1bb48647e882104cac374c9a18e34bbf0bace0e2cf03000326b6ca3050d6b59545d91e17bfe3705f4a0e2988787aa5cde6331bf5cbbf0164732cef6492 + languageName: node + linkType: hard + "cliui@npm:^7.0.2": version: 7.0.4 resolution: "cliui@npm:7.0.4" @@ -4405,6 +5540,13 @@ __metadata: languageName: node linkType: hard +"colorette@npm:^2.0.7": + version: 2.0.16 + resolution: "colorette@npm:2.0.16" + checksum: 7430bd996545347f262ae9716bfc8ca3776606e9db854279082004f3141b15a64ad2ee0e4f10cacba5a07cc92ca3edc2d01cbe73fd2843ccd80e98d0e3a8e79b + languageName: node + linkType: hard + "columnify@npm:^1.5.4": version: 1.5.4 resolution: "columnify@npm:1.5.4" @@ -4424,6 +5566,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^2.20.3": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: 74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 + languageName: node + linkType: hard + "commander@npm:^4.0.1": version: 4.1.1 resolution: "commander@npm:4.1.1" @@ -4431,6 +5580,20 @@ __metadata: languageName: node linkType: hard +"common-tags@npm:1.8.0": + version: 1.8.0 + resolution: "common-tags@npm:1.8.0" + checksum: 851f2430c653e76602c23f4a851837c507d1e7d11679474856346a265307872c9a62da7cfc001a36871aa73587dac14e60f5397c012b6ff5d0669e4f81af037e + languageName: node + linkType: hard + +"common-tags@npm:^1.8.0": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 23efe47ff0a1a7c91489271b3a1e1d2a171c12ec7f9b35b29b2fce51270124aff0ec890087e2bc2182c1cb746e232ab7561aaafe05f1e7452aea733d2bfe3f63 + languageName: node + linkType: hard + "commondir@npm:^1.0.1": version: 1.0.1 resolution: "commondir@npm:1.0.1" @@ -4498,6 +5661,17 @@ __metadata: languageName: node linkType: hard +"constant-case@npm:^3.0.4": + version: 3.0.4 + resolution: "constant-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case: ^2.0.2 + checksum: 91d54f18341fcc491ae66d1086642b0cc564be3e08984d7b7042f8b0a721c8115922f7f11d6a09f13ed96ff326eabae11f9d1eb0335fa9d8b6e39e4df096010e + languageName: node + linkType: hard + "conventional-changelog-angular@npm:^5.0.12": version: 5.0.13 resolution: "conventional-changelog-angular@npm:5.0.13" @@ -4616,34 +5790,27 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.16.0, core-js-compat@npm:^3.16.2": - version: 3.18.2 - resolution: "core-js-compat@npm:3.18.2" +"core-js-compat@npm:^3.18.0, core-js-compat@npm:^3.19.1": + version: 3.19.1 + resolution: "core-js-compat@npm:3.19.1" dependencies: - browserslist: ^4.17.3 + browserslist: ^4.17.6 semver: 7.0.0 - checksum: 067f55eb460d874709365f560355fe532007ee1ff7aeb7b23604fbf476a59c77b1b1a910e516a4cf25482d17d61d823ba2cce9dd379e1f6a8c07847fedd08feb - languageName: node - linkType: hard - -"core-js-pure@npm:^3.16.0": - version: 3.18.2 - resolution: "core-js-pure@npm:3.18.2" - checksum: aca98127e870f442753c29ac63813ec1d3c8cd7de6f23b008961a7989d95695d0d319dfdeb23c71ef0c2bb06ab328f2ac4c2b853a5581c5c4c7b970479c410e1 + checksum: 114a4f38a6270bf1a066ac301045502feb0835b36e342e0b09bb3ff505ddbd29e0c55cf4cc7205d7fdd2a2f28ad9fb6ed950ea7f7a2a98486bbfa83df1d759f8 languageName: node linkType: hard -"core-js@npm:3.18.3": - version: 3.18.3 - resolution: "core-js@npm:3.18.3" - checksum: 22e9b24bc7518bc4514fe5daef4e7f277d4e4b4949f1c228dd3e1dcf087b5e2b562fd075c2506494922d0e99f0392e2f3b759a872b7cd5508b70aafa3d0914fa +"core-js-pure@npm:^3.19.0": + version: 3.19.1 + resolution: "core-js-pure@npm:3.19.1" + checksum: acc7f9c56f501e7d0223410327e11e3b70357261641e1258f8e022e2f04040d058fab9a793f387a353008e1ece644d7293b03ec7f018418313e2fdf3fb646a30 languageName: node linkType: hard -"core-js@npm:^3.16.0": - version: 3.18.2 - resolution: "core-js@npm:3.18.2" - checksum: d1ebbbfe9c72cd93f668a24ed6a5d68fd80d52a5be7e901a5619ba297f38cc908a691694657fd25fdcd11621a5f955492f44901497130056f8e33438e2dd850d +"core-js@npm:3.19.1, core-js@npm:^3.19.0": + version: 3.19.1 + resolution: "core-js@npm:3.19.1" + checksum: 9f24df1cecb2f605d445e858a2bd67ccb433c001b0d50511e4e092d762a6df215094da928c424e4a63656a53fa8c50eba36eeff1df1e29d91a2ec2e9d9feb75a languageName: node linkType: hard @@ -4661,7 +5828,16 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^7.0.0": +"cosmiconfig-toml-loader@npm:1.0.0": + version: 1.0.0 + resolution: "cosmiconfig-toml-loader@npm:1.0.0" + dependencies: + "@iarna/toml": ^2.2.5 + checksum: 7ce90666174306a463cd8de8cf49b058d1492e7b1428d34aa9d5701465957d85f09724cfde2cce04424f442d3df6fe04eac54e9317b3f161e74d72bf3ee6f017 + languageName: node + linkType: hard + +"cosmiconfig@npm:7.0.1, cosmiconfig@npm:^7.0.0": version: 7.0.1 resolution: "cosmiconfig@npm:7.0.1" dependencies: @@ -4686,6 +5862,22 @@ __metadata: languageName: node linkType: hard +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: 157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 + languageName: node + linkType: hard + +"cross-fetch@npm:^3.0.4, cross-fetch@npm:^3.0.6": + version: 3.1.4 + resolution: "cross-fetch@npm:3.1.4" + dependencies: + node-fetch: 2.6.1 + checksum: 4e0fd841f4e80cd3c2d3c3f527029c6c7ec6564c1fc633bcde996bcc234cd476fe5daf2bf9d1900865d4900a2f1a8af4c977757ab6007f3ebcedd063557ff5fe + languageName: node + linkType: hard + "cross-spawn@npm:^6.0.0": version: 6.0.5 resolution: "cross-spawn@npm:6.0.5" @@ -4710,6 +5902,44 @@ __metadata: languageName: node linkType: hard +"cross-undici-fetch@npm:^0.0.20": + version: 0.0.20 + resolution: "cross-undici-fetch@npm:0.0.20" + dependencies: + abort-controller: ^3.0.0 + form-data: ^4.0.0 + node-fetch: ^2.6.5 + undici: ^4.9.3 + checksum: f04a2a74ad8cea21d27802b05a8a2bf7c7a87374420aa903af5bb77fc33ffc53e5463771e2fab6f17e5e5f8d5d9d7555fcc1b7a4120a014a063f6b6fb43bae3f + languageName: node + linkType: hard + +"cross-undici-fetch@npm:^0.0.26": + version: 0.0.26 + resolution: "cross-undici-fetch@npm:0.0.26" + dependencies: + abort-controller: ^3.0.0 + form-data: ^4.0.0 + node-fetch: ^2.6.5 + undici: ^4.9.3 + checksum: aa00370a6b85a504e5cbb8e1a6871a320b5347beb14cf292c3f8dd88b233a9c55e02c41f8d2d398b935cfd0be0f7d92484a9c0b67bb0ab8923be1d66d7d942b4 + languageName: node + linkType: hard + +"crypt@npm:0.0.2": + version: 0.0.2 + resolution: "crypt@npm:0.0.2" + checksum: adbf263441dd801665d5425f044647533f39f4612544071b1471962209d235042fb703c27eea2795c7c53e1dfc242405173003f83cf4f4761a633d11f9653f18 + languageName: node + linkType: hard + +"crypto-js@npm:4.1.1": + version: 4.1.1 + resolution: "crypto-js@npm:4.1.1" + checksum: 50cc66a35f2738171d9a6d80c85ba7d00cb6440b756db035ba9ccd03032c0a803029a62969ecd4c844106c980af87687c64b204dd967989379c4f354fb482d37 + languageName: node + linkType: hard + "crypto-random-string@npm:^2.0.0": version: 2.0.0 resolution: "crypto-random-string@npm:2.0.0" @@ -4735,6 +5965,13 @@ __metadata: languageName: node linkType: hard +"cssfilter@npm:0.0.10": + version: 0.0.10 + resolution: "cssfilter@npm:0.0.10" + checksum: 478a227a616fb6e9bb338eb95f690df141b86231ec737cbea574484f31a09a51db894b4921afc4987459dae08d584355fd689ff2a7a7c7a74de4bb4c072ce553 + languageName: node + linkType: hard + "cssom@npm:^0.4.4": version: 0.4.4 resolution: "cssom@npm:0.4.4" @@ -4758,7 +5995,7 @@ __metadata: languageName: node linkType: hard -"damerau-levenshtein@npm:^1.0.6": +"damerau-levenshtein@npm:^1.0.7": version: 1.0.7 resolution: "damerau-levenshtein@npm:1.0.7" checksum: 05083ca068c3d126191a7bd9392e313117010166540bb3018b40e63cd24c376fe323161c46b1a1dd73e482f323416eaee4430352c69207d6a968b33f4af66217 @@ -4792,6 +6029,20 @@ __metadata: languageName: node linkType: hard +"dataloader@npm:2.0.0": + version: 2.0.0 + resolution: "dataloader@npm:2.0.0" + checksum: af2c080fc29dd8286d87df63bbe69e09b1ddf4e88b2959f603e82969d3a58d04ba8a98286f9e5767a22a859009d024f002757a9f82adbc931d8a58e63f8dc8ce + languageName: node + linkType: hard + +"date-fns@npm:^1.27.2": + version: 1.30.1 + resolution: "date-fns@npm:1.30.1" + checksum: bad6ad7c15180121e15d61ad62a4a214c108d66f35b35f5eeb6ade837a3c29aa4444b9528a93a5374b95ba11231c142276351bf52f4d168676f9a1e17ce3726a + languageName: node + linkType: hard + "dateformat@npm:^3.0.0": version: 3.0.3 resolution: "dateformat@npm:3.0.3" @@ -4799,7 +6050,21 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2": +"dateformat@npm:^4.6.3": + version: 4.6.3 + resolution: "dateformat@npm:4.6.3" + checksum: e2023b905e8cfe2eb8444fb558562b524807a51cdfe712570f360f873271600b5c94aebffaf11efb285e2c072264a7cf243eadb68f3eba0f8cc85fb86cd25df6 + languageName: node + linkType: hard + +"debounce@npm:^1.2.0": + version: 1.2.1 + resolution: "debounce@npm:1.2.1" + checksum: 6c9320aa0973fc42050814621a7a8a78146c1975799b5b3cc1becf1f77ba9a5aa583987884230da0842a03f385def452fad5d60db97c3d1c8b824e38a8edf500 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2": version: 4.3.2 resolution: "debug@npm:4.3.2" dependencies: @@ -4811,7 +6076,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^2.2.0, debug@npm:^2.6.9": +"debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" dependencies: @@ -4820,7 +6085,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.2.6, debug@npm:^3.2.7": +"debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -4897,7 +6162,7 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:^4.2.2": +"deepmerge@npm:4.2.2, deepmerge@npm:^4.2.2": version: 4.2.2 resolution: "deepmerge@npm:4.2.2" checksum: d6136eee869057fea7a829aa2d10073ed49db5216e42a77cc737dd385334aab9b68dae22020a00c24c073d5f79cbbdd3f11b8d4fc87700d112ddaa0e1f968ef2 @@ -4950,6 +6215,13 @@ __metadata: languageName: node linkType: hard +"dependency-graph@npm:^0.11.0": + version: 0.11.0 + resolution: "dependency-graph@npm:0.11.0" + checksum: 9e6968d1534fdb502f7f3a25a3819b499f9d60f8389193950ed0b4d1618f1341b36b5d039f2cee256cfe10c9e8198ace16b271e370df06a93fac206e81602e7c + languageName: node + linkType: hard + "deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": version: 2.3.1 resolution: "deprecation@npm:2.3.1" @@ -4957,6 +6229,13 @@ __metadata: languageName: node linkType: hard +"detect-file@npm:^1.0.0": + version: 1.0.0 + resolution: "detect-file@npm:1.0.0" + checksum: c782a5f992047944c39d337c82f5d1d21d65d1378986d46c354df9d9ec6d5f356bca0182969c11b08b9b8a7af8727b3c2d5a9fad0b022be4a3bf4c216f63ed07 + languageName: node + linkType: hard + "detect-indent@npm:^5.0.0": version: 5.0.0 resolution: "detect-indent@npm:5.0.0" @@ -4995,6 +6274,13 @@ __metadata: languageName: node linkType: hard +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: 81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1 + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -5038,6 +6324,16 @@ __metadata: languageName: node linkType: hard +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 5b859ea65097a7ea870e2c91b5768b72ddf7fa947223fd29e167bcdff58fe731d941c48e47a38ec8aa8e43044c8fbd15cd8fa21689a526bc34b6548197cd5b05 + languageName: node + linkType: hard + "dot-prop@npm:^5.1.0, dot-prop@npm:^5.2.0": version: 5.3.0 resolution: "dot-prop@npm:5.3.0" @@ -5056,6 +6352,20 @@ __metadata: languageName: node linkType: hard +"dotenv@npm:^10.0.0": + version: 10.0.0 + resolution: "dotenv@npm:10.0.0" + checksum: 2d8d4ba64bfaff7931402aa5e8cbb8eba0acbc99fe9ae442300199af021079eafa7171ce90e150821a5cb3d74f0057721fbe7ec201a6044b68c8a7615f8c123f + languageName: node + linkType: hard + +"dset@npm:^3.1.0": + version: 3.1.1 + resolution: "dset@npm:3.1.1" + checksum: b26e14f364b2b849f4a4f779fe0f14d9e3e6224ed0c4139f5592c4f253ba44768ecd689b1cf04b920f0a6f88c64d959ef332745d1564c2d18e8496a1e7262a43 + languageName: node + linkType: hard + "duplexer3@npm:^0.1.4": version: 0.1.4 resolution: "duplexer3@npm:0.1.4" @@ -5070,6 +6380,18 @@ __metadata: languageName: node linkType: hard +"duplexify@npm:^4.1.2": + version: 4.1.2 + resolution: "duplexify@npm:4.1.2" + dependencies: + end-of-stream: ^1.4.1 + inherits: ^2.0.3 + readable-stream: ^3.1.1 + stream-shift: ^1.0.0 + checksum: cacd09d8f1c58f92f83e17dffc14ece50415b32753446ed92046236a27a9e73cb914cda495d955ea12e0e615381082a511f20e219f48a06e84675c9d6950675b + languageName: node + linkType: hard + "ecc-jsbn@npm:~0.1.1": version: 0.1.2 resolution: "ecc-jsbn@npm:0.1.2" @@ -5080,10 +6402,26 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.3.857": - version: 1.3.862 - resolution: "electron-to-chromium@npm:1.3.862" - checksum: 07720f97f3d134935141cf2f5a023feaa44c52040ae2b8f5f1c04571011c3911abc4463ba62418b15b1331724f2a3c06f82af54f67d0d9e329ad165e4cd497e6 +"ecdsa-sig-formatter@npm:1.0.11": + version: 1.0.11 + resolution: "ecdsa-sig-formatter@npm:1.0.11" + dependencies: + safe-buffer: ^5.0.1 + checksum: ebfbf19d4b8be938f4dd4a83b8788385da353d63307ede301a9252f9f7f88672e76f2191618fd8edfc2f24679236064176fab0b78131b161ee73daa37125408c + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.3.896": + version: 1.3.903 + resolution: "electron-to-chromium@npm:1.3.903" + checksum: 9f7409def8f36ecb5df6ad0d3fb9b79a77541a6619fcc8a6f8fe2b961d1ba1efc2bd51026fe708349ff4b4e2b0203ff8dd5a5a718ae7018eec2b92b39db40d78 + languageName: node + linkType: hard + +"elegant-spinner@npm:^1.0.1": + version: 1.0.1 + resolution: "elegant-spinner@npm:1.0.1" + checksum: df607c83c20fc3ce56c514175dd5d1ee7f667da00cee13d04d32c70d55e76555091fa236689e691cf7dedba17b0020fec635e499cdde84dbea2ef8639314e5f8 languageName: node linkType: hard @@ -5101,7 +6439,7 @@ __metadata: languageName: node linkType: hard -"emoji-regex@npm:^9.0.0": +"emoji-regex@npm:^9.2.2": version: 9.2.2 resolution: "emoji-regex@npm:9.2.2" checksum: af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 @@ -5117,7 +6455,7 @@ __metadata: languageName: node linkType: hard -"end-of-stream@npm:^1.1.0": +"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": version: 1.4.4 resolution: "end-of-stream@npm:1.4.4" dependencies: @@ -5206,6 +6544,187 @@ __metadata: languageName: node linkType: hard +"esbuild-android-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-android-arm64@npm:0.13.14" + checksum: a2a880c598e6ecb8b82f6cee97897e1bc9b4244f4202af68b2d870fd00706a61176493da4b925bfca0acb55a4db4a9826907df12ba81d1d1fcb1c5db9a6e043a + languageName: node + linkType: hard + +"esbuild-darwin-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-darwin-64@npm:0.13.14" + checksum: 4e979632a782aec8611e5ae56151c4792b2909d17868b12092dd9853436e414bff7f753715480fffbdcb78403f0be01f88876b6c6f8ccc612be8bfd7ff9e0bb6 + languageName: node + linkType: hard + +"esbuild-darwin-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-darwin-arm64@npm:0.13.14" + checksum: ede7ec0217d39d8c84e568362d3957db40e7efbfc426e35ac53ed4cb901bed8f715e9af7eac788ce4ba11f45fef0c127e8cf878d809138c4027036bbddc4ae66 + languageName: node + linkType: hard + +"esbuild-freebsd-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-freebsd-64@npm:0.13.14" + checksum: f2ecef6f13daf049e33310dff1edf97e1de28570b8e1e6bb75c63ee6a979e905135ac28b3084eb9a9430981867d7f50764138a4ef9a5ea754bdb9e37153b74e1 + languageName: node + linkType: hard + +"esbuild-freebsd-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-freebsd-arm64@npm:0.13.14" + checksum: 14e4c5871ca3c85d0a8e4f32c7444249d13091a3dd66d6ad6efa460bef6410cd4a318ea673d5de461b956656b90324593e988c882f1662765dcef48b58cf2883 + languageName: node + linkType: hard + +"esbuild-linux-32@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-32@npm:0.13.14" + checksum: 2bd768e434c203880f6b812aeb7e4c7926a10db55b638f9f2e6660534fc2e3feb2ee6b39196db72783c7798ca3435215fe1b3d4e3b3aaeaff23722e77891b73a + languageName: node + linkType: hard + +"esbuild-linux-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-64@npm:0.13.14" + checksum: ca48f8308960a39da6054f94e227ec7cab9583dab5b0312762fb724d4d7823e914dace67e6ab0b02f39e17319ddce51cf6ed14f08757af6a4419ec9e1b6c21ee + languageName: node + linkType: hard + +"esbuild-linux-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-arm64@npm:0.13.14" + checksum: dfcccdbf1d9011016e4e1aa566b1be372b34279b5713c411b133b98188eb693fa983b79a582aaef0142eebcb77b9d0c46d5b342ed8264469a4953c0cb8abb347 + languageName: node + linkType: hard + +"esbuild-linux-arm@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-arm@npm:0.13.14" + checksum: d3aa936bda80bd88785123691ce017a77208df7cc365f669a5c35c1e9034a5d5bcdd2c86ef2e216d5a101d6980c3f2e9c0070f4fdcd602e38fb81e35f2deb493 + languageName: node + linkType: hard + +"esbuild-linux-mips64le@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-mips64le@npm:0.13.14" + checksum: 23236ef3f7824cd039247bf62e1ac8339d260c8228aadcf0afadd4c4cc34e1741530c74e4ef85b113500426eb6d1b5ea3ef7bea1c820025e12a6dbe02f87f58c + languageName: node + linkType: hard + +"esbuild-linux-ppc64le@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-ppc64le@npm:0.13.14" + checksum: 2d0c1aaa934ecc1b95fbbf1f09c600f0cc2f9da286905c2e996d3480d0fed24bf320a7508b9697a20414bce998efab5084f717aa3fbd56ead2765b0082e249ef + languageName: node + linkType: hard + +"esbuild-netbsd-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-netbsd-64@npm:0.13.14" + checksum: 5e91b2765c502ef31e44122e6cd165635e6b13b8b0dacdf335d4dacc68bfe09d5da3d8b3996871918981517b2726d4fec920e8011911c449b1a051290b1afe58 + languageName: node + linkType: hard + +"esbuild-openbsd-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-openbsd-64@npm:0.13.14" + checksum: a05dc78972d6dbbcfb918c782e5154f950c6ef7d0991cbd0d0624f81363d9a4a5cd96f9217257df92c7570ee8e048a852decda1c3390399aff45860d2e165e0c + languageName: node + linkType: hard + +"esbuild-sunos-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-sunos-64@npm:0.13.14" + checksum: 521b6140c0c3d168f9da3ab26dc5da7004394b48530ad5984230b8cff1975becd5a277dee9e0d4a60b102b64ff36546c4aea8c4cb1188a1cfd468f3117f67a60 + languageName: node + linkType: hard + +"esbuild-windows-32@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-windows-32@npm:0.13.14" + checksum: 3e70be78ac7eed20d21d1f24712ed853134826494a16701acec345807cad7dfaecc6c7c1c31b6841ca11e28a4f5b8d4cf5ac73a932549d9c738f27f17ab0a5da + languageName: node + linkType: hard + +"esbuild-windows-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-windows-64@npm:0.13.14" + checksum: f854ab89f94b148635d24eaef9e87893e4db8d3924be10e286cc7a61663a66497a04225c7cc67b433b0489bdb27af61593f71559f5b850ea151572964d510bf4 + languageName: node + linkType: hard + +"esbuild-windows-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-windows-arm64@npm:0.13.14" + checksum: 7441499c6e1ea4fb2e8168300084d063891dff570eb1e178057fd19bee9ffbaa40f7acdca7250ec0b2efa8bc5cf79304a097e24e1490d79afeaccdf6ff587af4 + languageName: node + linkType: hard + +"esbuild@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild@npm:0.13.14" + dependencies: + esbuild-android-arm64: 0.13.14 + esbuild-darwin-64: 0.13.14 + esbuild-darwin-arm64: 0.13.14 + esbuild-freebsd-64: 0.13.14 + esbuild-freebsd-arm64: 0.13.14 + esbuild-linux-32: 0.13.14 + esbuild-linux-64: 0.13.14 + esbuild-linux-arm: 0.13.14 + esbuild-linux-arm64: 0.13.14 + esbuild-linux-mips64le: 0.13.14 + esbuild-linux-ppc64le: 0.13.14 + esbuild-netbsd-64: 0.13.14 + esbuild-openbsd-64: 0.13.14 + esbuild-sunos-64: 0.13.14 + esbuild-windows-32: 0.13.14 + esbuild-windows-64: 0.13.14 + esbuild-windows-arm64: 0.13.14 + dependenciesMeta: + esbuild-android-arm64: + optional: true + esbuild-darwin-64: + optional: true + esbuild-darwin-arm64: + optional: true + esbuild-freebsd-64: + optional: true + esbuild-freebsd-arm64: + optional: true + esbuild-linux-32: + optional: true + esbuild-linux-64: + optional: true + esbuild-linux-arm: + optional: true + esbuild-linux-arm64: + optional: true + esbuild-linux-mips64le: + optional: true + esbuild-linux-ppc64le: + optional: true + esbuild-netbsd-64: + optional: true + esbuild-openbsd-64: + optional: true + esbuild-sunos-64: + optional: true + esbuild-windows-32: + optional: true + esbuild-windows-64: + optional: true + esbuild-windows-arm64: + optional: true + bin: + esbuild: bin/esbuild + checksum: fefe9819cdd49d6553b1b99861c0734892ef4bf59391b1fc3640283a80d34a3565c538403d081b28681f751ccdca244b9ef716096d76dea957a594c1911715fb + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -5220,7 +6739,7 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.5": +"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" checksum: a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 @@ -5294,7 +6813,7 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.0": +"eslint-module-utils@npm:^2.7.1": version: 2.7.1 resolution: "eslint-module-utils@npm:2.7.1" dependencies: @@ -5316,18 +6835,18 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:2.25.2": - version: 2.25.2 - resolution: "eslint-plugin-import@npm:2.25.2" +"eslint-plugin-import@npm:2.25.3": + version: 2.25.3 + resolution: "eslint-plugin-import@npm:2.25.3" dependencies: array-includes: ^3.1.4 array.prototype.flat: ^1.2.5 debug: ^2.6.9 doctrine: ^2.1.0 eslint-import-resolver-node: ^0.3.6 - eslint-module-utils: ^2.7.0 + eslint-module-utils: ^2.7.1 has: ^1.0.3 - is-core-module: ^2.7.0 + is-core-module: ^2.8.0 is-glob: ^4.0.3 minimatch: ^3.0.4 object.values: ^1.1.5 @@ -5335,7 +6854,7 @@ __metadata: tsconfig-paths: ^3.11.0 peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 617fc9be96f58ef2f71deb7c8095557eea1474d938b53cf9ad26689034f75cc92264070e97be76eb705617b51c848a5a9d8e2719c79e05c294365822100eef63 + checksum: cf163c289238032975a0d17c3382a7e7b96b1be13730f0f55a983d4c26891e17c6cebc917e0fcfec2e5b7fa0dcf5b0693aa36f65305e3f975803017f54071474 languageName: node linkType: hard @@ -5352,24 +6871,25 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:6.4.1": - version: 6.4.1 - resolution: "eslint-plugin-jsx-a11y@npm:6.4.1" +"eslint-plugin-jsx-a11y@npm:6.5.1": + version: 6.5.1 + resolution: "eslint-plugin-jsx-a11y@npm:6.5.1" dependencies: - "@babel/runtime": ^7.11.2 + "@babel/runtime": ^7.16.3 aria-query: ^4.2.2 - array-includes: ^3.1.1 + array-includes: ^3.1.4 ast-types-flow: ^0.0.7 - axe-core: ^4.0.2 + axe-core: ^4.3.5 axobject-query: ^2.2.0 - damerau-levenshtein: ^1.0.6 - emoji-regex: ^9.0.0 + damerau-levenshtein: ^1.0.7 + emoji-regex: ^9.2.2 has: ^1.0.3 - jsx-ast-utils: ^3.1.0 + jsx-ast-utils: ^3.2.1 language-tags: ^1.0.5 + minimatch: ^3.0.4 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 - checksum: 04aa10e995bb37fffba1b28d83202f520df21f895dfcd3a01cf156bd1a47cdf06bb5d19b32bb8f5b610ec162f2bff10c694e8082b80b565783feea49591b446b + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: 320bafc9d27279b72b8c25db4d188690d9b334f69cfa3bd33ff17f7c7dfe89dc31b463c57e79a932a218dba771137c541f88af93cdb36ae7552bc051cef8a591 languageName: node linkType: hard @@ -5388,36 +6908,36 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:4.2.0": - version: 4.2.0 - resolution: "eslint-plugin-react-hooks@npm:4.2.0" +"eslint-plugin-react-hooks@npm:4.3.0": + version: 4.3.0 + resolution: "eslint-plugin-react-hooks@npm:4.3.0" peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - checksum: 981f6fc09a2cad298574eeab265e9c7de672dc975f7c249ef8079bdcf491241ecce02a45897c0e561a277d63762c80c7319a182492a544a9c61e9c25569e9f51 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: fdf491b182fd0815c95af6b5a9ef9de0640cbf0e446b2886899769470276c9a69be35a2aac42b2ada3e26b73cefee23b1eb4a93f27ee984b5763ee4718509629 languageName: node linkType: hard -"eslint-plugin-react@npm:7.26.1": - version: 7.26.1 - resolution: "eslint-plugin-react@npm:7.26.1" +"eslint-plugin-react@npm:7.27.1": + version: 7.27.1 + resolution: "eslint-plugin-react@npm:7.27.1" dependencies: - array-includes: ^3.1.3 - array.prototype.flatmap: ^1.2.4 + array-includes: ^3.1.4 + array.prototype.flatmap: ^1.2.5 doctrine: ^2.1.0 - estraverse: ^5.2.0 + estraverse: ^5.3.0 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.0.4 - object.entries: ^1.1.4 - object.fromentries: ^2.0.4 - object.hasown: ^1.0.0 - object.values: ^1.1.4 + object.entries: ^1.1.5 + object.fromentries: ^2.0.5 + object.hasown: ^1.1.0 + object.values: ^1.1.5 prop-types: ^15.7.2 resolve: ^2.0.0-next.3 semver: ^6.3.0 - string.prototype.matchall: ^4.0.5 + string.prototype.matchall: ^4.0.6 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 - checksum: a14a98135d4f7926787c30461f396dc6a7912f2551142be7b675229c7abe032b183d1d4bbdcbb92ed2c0f7cf5595c9ab87d2fe64b4c5e4aa5d7a6fe3d85c0886 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: 7ee0cf33034fb5927f169ec45057dbc8b2c528682fe6c33716bf4b790e10fe2a0cc50bb91c4b78e7abf6e04536e44ff2e67c70b3bacc936defdbb05fb74e3a06 languageName: node linkType: hard @@ -5438,12 +6958,13 @@ __metadata: languageName: node linkType: hard -"eslint-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "eslint-utils@npm:2.1.0" +"eslint-scope@npm:^6.0.0": + version: 6.0.0 + resolution: "eslint-scope@npm:6.0.0" dependencies: - eslint-visitor-keys: ^1.1.0 - checksum: 69521c5d6569384b24093125d037ba238d3d6e54367f7143af9928f5286369e912c26cad5016d730c0ffb9797ac9e83831059d7f1d863f7dc84330eb02414611 + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: 50edb78549c710fffbb168f8a84baa14a0418b1343d6e3e22dde39ff38afee9138a044b39778ab72ae6f00b7bfd02ce6dbe6eadab7004139e3403e58c4751ad2 languageName: node linkType: hard @@ -5458,13 +6979,6 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 10c91fdbbe36810dd4308e57f9a8bc7177188b2a70247e54e3af1fa05ebc66414ae6fd4ce3c6c6821591f43a556e9037bc6b071122e099b5f8b7d2f76df553e3 - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^2.0.0, eslint-visitor-keys@npm:^2.1.0": version: 2.1.0 resolution: "eslint-visitor-keys@npm:2.1.0" @@ -5472,43 +6986,42 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.0.0": +"eslint-visitor-keys@npm:^3.0.0, eslint-visitor-keys@npm:^3.1.0": version: 3.1.0 resolution: "eslint-visitor-keys@npm:3.1.0" checksum: ba23efd2a273cb5a0794ea76669cbe95892bed5d2e165e7744db6a81ede74f4239cf73d142016421d8297b72000486e4b41bba3078eccb9ef82ae0b7e06e9282 languageName: node linkType: hard -"eslint@npm:7.32.0": - version: 7.32.0 - resolution: "eslint@npm:7.32.0" +"eslint@npm:8.2.0": + version: 8.2.0 + resolution: "eslint@npm:8.2.0" dependencies: - "@babel/code-frame": 7.12.11 - "@eslint/eslintrc": ^0.4.3 - "@humanwhocodes/config-array": ^0.5.0 + "@eslint/eslintrc": ^1.0.4 + "@humanwhocodes/config-array": ^0.6.0 ajv: ^6.10.0 chalk: ^4.0.0 cross-spawn: ^7.0.2 - debug: ^4.0.1 + debug: ^4.3.2 doctrine: ^3.0.0 enquirer: ^2.3.5 escape-string-regexp: ^4.0.0 - eslint-scope: ^5.1.1 - eslint-utils: ^2.1.0 - eslint-visitor-keys: ^2.0.0 - espree: ^7.3.1 + eslint-scope: ^6.0.0 + eslint-utils: ^3.0.0 + eslint-visitor-keys: ^3.0.0 + espree: ^9.0.0 esquery: ^1.4.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 file-entry-cache: ^6.0.1 functional-red-black-tree: ^1.0.1 - glob-parent: ^5.1.2 + glob-parent: ^6.0.1 globals: ^13.6.0 ignore: ^4.0.6 import-fresh: ^3.0.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 - js-yaml: ^3.13.1 + js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 levn: ^0.4.1 lodash.merge: ^4.6.2 @@ -5516,27 +7029,26 @@ __metadata: natural-compare: ^1.4.0 optionator: ^0.9.1 progress: ^2.0.0 - regexpp: ^3.1.0 + regexpp: ^3.2.0 semver: ^7.2.1 - strip-ansi: ^6.0.0 + strip-ansi: ^6.0.1 strip-json-comments: ^3.1.0 - table: ^6.0.9 text-table: ^0.2.0 v8-compile-cache: ^2.0.3 bin: eslint: bin/eslint.js - checksum: 84409f7767556179cb11529f1215f335c7dfccf90419df6147f949f14c347a960c7b569e80ed84011a0b6d10da1ef5046edbbb9b11c3e59aa6696d5217092e93 + checksum: 88e8f375bd49264fca9c868f1c4c09d8ab94351e2606bef8ae56380b10c4f91b8f494f34bea6bed98a35dde4992b663c0355a72c655053ad26d0422c800ac2f9 languageName: node linkType: hard -"espree@npm:^7.3.0, espree@npm:^7.3.1": - version: 7.3.1 - resolution: "espree@npm:7.3.1" +"espree@npm:^9.0.0": + version: 9.1.0 + resolution: "espree@npm:9.1.0" dependencies: - acorn: ^7.4.0 + acorn: ^8.6.0 acorn-jsx: ^5.3.1 - eslint-visitor-keys: ^1.3.0 - checksum: f4e81b903f03eaf0e6925cea20571632da427deb6e14ca37e481f72c11f36d7bb4945fe8a2ff15ab22d078d3cd93ee65355fa94de9c27485c356481775f25d85 + eslint-visitor-keys: ^3.1.0 + checksum: db15127bec9bcc9a592d654f92163ab818189362b7868176f212e063092dccd0105614dce2e9a8af3e0dd3f4fcee5ab930a61da17b735c1304f411f73dd5736c languageName: node linkType: hard @@ -5582,6 +7094,13 @@ __metadata: languageName: node linkType: hard +"estraverse@npm:^5.3.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -5589,6 +7108,20 @@ __metadata: languageName: node linkType: hard +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b + languageName: node + linkType: hard + +"eventemitter3@npm:^3.1.0": + version: 3.1.2 + resolution: "eventemitter3@npm:3.1.2" + checksum: c67262eccbf85848b7cc6d4abb6c6e34155e15686db2a01c57669fd0d44441a574a19d44d25948b442929e065774cbe5003d8e77eed47674fbf876ac77887793 + languageName: node + linkType: hard + "eventemitter3@npm:^4.0.4": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" @@ -5642,6 +7175,15 @@ __metadata: languageName: node linkType: hard +"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": + version: 2.0.2 + resolution: "expand-tilde@npm:2.0.2" + dependencies: + homedir-polyfill: ^1.0.1 + checksum: 205a60497422746d1c3acbc1d65bd609b945066f239a2b785e69a7a651ac4cbeb4e08555b1ea0023abbe855e6fcb5bbf27d0b371367fdccd303d4fb2b4d66845 + languageName: node + linkType: hard + "expect@npm:^27.3.1": version: 27.3.1 resolution: "expect@npm:27.3.1" @@ -5674,6 +7216,20 @@ __metadata: languageName: node linkType: hard +"extract-files@npm:11.0.0": + version: 11.0.0 + resolution: "extract-files@npm:11.0.0" + checksum: 7ac1cd693d081099d7c29f2b36aad199f92c5ea234c2016eb37ba213dddaefe74d54566f0675de5917d35cf98670183c2c9a0d96094727eb2c6dae02be7fc308 + languageName: node + linkType: hard + +"extract-files@npm:^9.0.0": + version: 9.0.0 + resolution: "extract-files@npm:9.0.0" + checksum: 60259624c5e7a927d6bccdbedd685462ceee3dcaa28e509ecfff5e2c1032a652bb96ac645837ef1ac4c4fd4461b7896b008f106f7718245befdb0e1c98024640 + languageName: node + linkType: hard + "extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" @@ -5729,6 +7285,27 @@ __metadata: languageName: node linkType: hard +"fast-redact@npm:^3.0.0": + version: 3.0.2 + resolution: "fast-redact@npm:3.0.2" + checksum: 5e91a774a0b82b4d379c62891054ccdc72f704d6497bee9ab20353c9c14691d15956e2febb685a304ac5c73881e2f59a1420637f483bdc1c69553ab272dc1453 + languageName: node + linkType: hard + +"fast-safe-stringify@npm:^2.0.7": + version: 2.1.1 + resolution: "fast-safe-stringify@npm:2.1.1" + checksum: d90ec1c963394919828872f21edaa3ad6f1dddd288d2bd4e977027afff09f5db40f94e39536d4646f7e01761d704d72d51dce5af1b93717f3489ef808f5f4e4d + languageName: node + linkType: hard + +"fastify-warning@npm:^0.2.0": + version: 0.2.0 + resolution: "fastify-warning@npm:0.2.0" + checksum: e2c909a25e507e5c5f5bb2b3ff20e2a1e786e4175eff9b5548215a742553b3d04a81cc585fa8f0361f663cc23eb18ecdca1049cc09903acda54d8886b09c3da5 + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.13.0 resolution: "fastq@npm:1.13.0" @@ -5747,6 +7324,47 @@ __metadata: languageName: node linkType: hard +"fbjs-css-vars@npm:^1.0.0": + version: 1.0.2 + resolution: "fbjs-css-vars@npm:1.0.2" + checksum: dfb64116b125a64abecca9e31477b5edb9a2332c5ffe74326fe36e0a72eef7fc8a49b86adf36c2c293078d79f4524f35e80f5e62546395f53fb7c9e69821f54f + languageName: node + linkType: hard + +"fbjs@npm:^3.0.0": + version: 3.0.1 + resolution: "fbjs@npm:3.0.1" + dependencies: + cross-fetch: ^3.0.4 + fbjs-css-vars: ^1.0.0 + loose-envify: ^1.0.0 + object-assign: ^4.1.0 + promise: ^7.1.1 + setimmediate: ^1.0.5 + ua-parser-js: ^0.7.30 + checksum: 970bba4fca9257290259c948b41cf6571e615cbd431eab0ba343f1d42d17f6995a2dc65c03bd382e38f224ab08dafdab6c382c7522368e320fcc8e0978161967 + languageName: node + linkType: hard + +"figures@npm:^1.7.0": + version: 1.7.0 + resolution: "figures@npm:1.7.0" + dependencies: + escape-string-regexp: ^1.0.5 + object-assign: ^4.1.0 + checksum: a10942b0eec3372bf61822ab130d2bbecdf527d551b0b013fbe7175b7a0238ead644ee8930a1a3cb872fb9ab2ec27df30e303765a3b70b97852e2e9ee43bdff3 + languageName: node + linkType: hard + +"figures@npm:^2.0.0": + version: 2.0.0 + resolution: "figures@npm:2.0.0" + dependencies: + escape-string-regexp: ^1.0.5 + checksum: 5dc5a75fec3e7e04ae65d6ce51d28b3e70d4656c51b06996b6fdb2cb5b542df512e3b3c04482f5193a964edddafa5521479ff948fa84e12ff556e53e094ab4ce + languageName: node + linkType: hard + "figures@npm:^3.0.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -5820,6 +7438,18 @@ __metadata: languageName: node linkType: hard +"findup-sync@npm:5.0.0": + version: 5.0.0 + resolution: "findup-sync@npm:5.0.0" + dependencies: + detect-file: ^1.0.0 + is-glob: ^4.0.3 + micromatch: ^4.0.4 + resolve-dir: ^1.0.1 + checksum: bbdb8af8c86a0bde4445e2f738003b92e4cd2a4539a5b45199d0252f2f504aeaf19aeca1fac776c3632c60657b2659151e72c8ead29a79617459a57419a0920b + languageName: node + linkType: hard + "flat-cache@npm:^3.0.4": version: 3.0.4 resolution: "flat-cache@npm:3.0.4" @@ -5855,6 +7485,17 @@ __metadata: languageName: node linkType: hard +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e + languageName: node + linkType: hard + "form-data@npm:~2.3.2": version: 2.3.3 resolution: "form-data@npm:2.3.3" @@ -5870,42 +7511,53 @@ __metadata: version: 0.0.0-use.local resolution: "framework@workspace:." dependencies: - "@babel/cli": 7.15.7 - "@babel/core": 7.15.8 - "@babel/node": 7.15.8 - "@babel/plugin-proposal-class-properties": 7.14.5 - "@babel/plugin-proposal-decorators": 7.15.8 - "@babel/plugin-transform-runtime": 7.15.8 - "@babel/preset-env": 7.15.8 - "@babel/preset-react": 7.14.5 - "@babel/preset-typescript": 7.15.0 - "@babel/runtime-corejs3": 7.15.4 - "@redwoodjs/eslint-config": 0.38.1 - "@testing-library/jest-dom": 5.14.1 + "@babel/cli": 7.16.0 + "@babel/core": 7.16.0 + "@babel/node": 7.16.0 + "@babel/plugin-proposal-class-properties": 7.16.0 + "@babel/plugin-proposal-decorators": 7.16.4 + "@babel/plugin-transform-runtime": 7.16.4 + "@babel/preset-env": 7.16.4 + "@babel/preset-react": 7.16.0 + "@babel/preset-typescript": 7.16.0 + "@babel/runtime-corejs3": 7.16.3 + "@redwoodjs/eslint-config": 0.39.2 + "@testing-library/jest-dom": 5.15.1 "@testing-library/react": 12.1.2 "@testing-library/user-event": 13.5.0 - "@types/jest": 27.0.2 + "@types/jest": 27.0.3 ansi-colors: 4.1.1 babel-jest: 27.3.1 babel-plugin-auto-import: 1.1.0 babel-plugin-remove-code: 0.0.6 - core-js: 3.18.3 + core-js: 3.19.1 cp-cli: 2.0.0 fast-glob: 3.2.7 jest: 27.3.1 lerna: 4.0.0 msw: 0.35.0 - nodemon: 2.0.14 + nodemon: 2.0.15 npm-packlist: 3.0.0 ora: 5.4.1 rimraf: 3.0.2 terminal-link: 2.1.1 - typescript: 4.4.4 + typescript: 4.5.2 typescript-transform-paths: 3.3.1 whatwg-fetch: 3.6.2 languageName: unknown linkType: soft +"fs-extra@npm:10.0.0": + version: 10.0.0 + resolution: "fs-extra@npm:10.0.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: 85802f3d9e49d197744a8372f0d78d5a1faa3df73f4c5375d6366a4b9f745197d3da1f095841443d50f29a9f81cdc01363eb6d17bef2ba70c268559368211040 + languageName: node + linkType: hard + "fs-extra@npm:7.0.1": version: 7.0.1 resolution: "fs-extra@npm:7.0.1" @@ -6023,7 +7675,7 @@ __metadata: languageName: node linkType: hard -"get-caller-file@npm:^2.0.5": +"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" checksum: c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde @@ -6104,6 +7756,13 @@ __metadata: languageName: node linkType: hard +"get-them-args@npm:1.3.2": + version: 1.3.2 + resolution: "get-them-args@npm:1.3.2" + checksum: a75e26d7369a00f596dc9c3c7b4259a219d4486a0beef51d991867103cc8c07d22814a24210d9c9f56cefb35f9848e16fe120b57b3ec1ea333054e715059d586 + languageName: node + linkType: hard + "getpass@npm:^0.1.1": version: 0.1.7 resolution: "getpass@npm:0.1.7" @@ -6187,7 +7846,16 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": +"glob-parent@npm:^6.0.1": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: ^4.0.3 + checksum: 317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 + languageName: node + linkType: hard + +"glob@npm:7.2.0, glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.2.0 resolution: "glob@npm:7.2.0" dependencies: @@ -6201,12 +7869,36 @@ __metadata: languageName: node linkType: hard -"global-dirs@npm:^3.0.0": - version: 3.0.0 - resolution: "global-dirs@npm:3.0.0" +"global-dirs@npm:^3.0.0": + version: 3.0.0 + resolution: "global-dirs@npm:3.0.0" + dependencies: + ini: 2.0.0 + checksum: 2b3c05967873662204dfe7159cfef20019e898b5ebe2ac70fc155e4cbe2207732f4b72d4ea1e72f10e91cee139d237ab4d39f1e282751093e7fe83c53abba46f + languageName: node + linkType: hard + +"global-modules@npm:^1.0.0": + version: 1.0.0 + resolution: "global-modules@npm:1.0.0" + dependencies: + global-prefix: ^1.0.1 + is-windows: ^1.0.1 + resolve-dir: ^1.0.0 + checksum: 7d91ecf78d4fcbc966b2d89c1400df273afea795bc8cadf39857ee1684e442065621fd79413ff5fcd9e90c6f1b2dc0123e644fa0b7811f987fd54c6b9afad858 + languageName: node + linkType: hard + +"global-prefix@npm:^1.0.1": + version: 1.0.2 + resolution: "global-prefix@npm:1.0.2" dependencies: - ini: 2.0.0 - checksum: 2b3c05967873662204dfe7159cfef20019e898b5ebe2ac70fc155e4cbe2207732f4b72d4ea1e72f10e91cee139d237ab4d39f1e282751093e7fe83c53abba46f + expand-tilde: ^2.0.2 + homedir-polyfill: ^1.0.1 + ini: ^1.3.4 + is-windows: ^1.0.1 + which: ^1.2.14 + checksum: d8037e300f1dc04d5d410d16afa662e71bfad22dcceba6c9727bb55cc273b8988ca940b3402f62e5392fd261dd9924a9a73a865ef2000219461f31f3fc86be06 languageName: node linkType: hard @@ -6226,7 +7918,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.2, globby@npm:^11.0.4": +"globby@npm:^11.0.2, globby@npm:^11.0.3, globby@npm:^11.0.4": version: 11.0.4 resolution: "globby@npm:11.0.4" dependencies: @@ -6266,6 +7958,116 @@ __metadata: languageName: node linkType: hard +"graphql-config@npm:^4.1.0": + version: 4.1.0 + resolution: "graphql-config@npm:4.1.0" + dependencies: + "@endemolshinegroup/cosmiconfig-typescript-loader": 3.0.2 + "@graphql-tools/graphql-file-loader": ^7.3.2 + "@graphql-tools/json-file-loader": ^7.3.2 + "@graphql-tools/load": ^7.4.1 + "@graphql-tools/merge": ^8.2.1 + "@graphql-tools/url-loader": ^7.4.2 + "@graphql-tools/utils": ^8.5.1 + cosmiconfig: 7.0.1 + cosmiconfig-toml-loader: 1.0.0 + minimatch: 3.0.4 + string-env-interpolation: 1.0.1 + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: fe9f4e3aa2985cd181ce8b7065ac46a69ca2cb1c83f31549c9fd8144bd5bb187366304a9439940175eb1f18a98802bba13ba4eb0b8edfb4311fba64ac7bae71b + languageName: node + linkType: hard + +"graphql-depth-limit@npm:^1.1.0": + version: 1.1.0 + resolution: "graphql-depth-limit@npm:1.1.0" + dependencies: + arrify: ^1.0.1 + peerDependencies: + graphql: "*" + checksum: 8f50268ab3e2553cfe64fad532a3bd60068865217f113ac7388bfea1484d36a7e711a1c26f6a03e67969923967f2a84b62618c07732ca2ca603c295f8a19dbf9 + languageName: node + linkType: hard + +"graphql-helix@npm:1.10.2": + version: 1.10.2 + resolution: "graphql-helix@npm:1.10.2" + peerDependencies: + graphql: ^15.3.0 || ^16.0.0 + checksum: 7ef41a2b365e3bedfa19cc7036aee8161deebb76907a78f974e50e00584e5c451244cb549e9f68ce1b5d74c842517ff4d42c38b1f8d2b6094e3a258831d16f80 + languageName: node + linkType: hard + +"graphql-playground-html@npm:1.6.30": + version: 1.6.30 + resolution: "graphql-playground-html@npm:1.6.30" + dependencies: + xss: ^1.0.6 + checksum: 32c87615b221610e57db41b68788bccf1e548ae66f38489521d4cfd2abf35666c76acf8250ce178f86b2bd825c2a9b083d496684abede1085847ca2dc7e71fb6 + languageName: node + linkType: hard + +"graphql-request@npm:^3.3.0": + version: 3.6.1 + resolution: "graphql-request@npm:3.6.1" + dependencies: + cross-fetch: ^3.0.6 + extract-files: ^9.0.0 + form-data: ^3.0.0 + peerDependencies: + graphql: 14.x || 15.x + checksum: ad9cb127830918b46c9db0f5d637e17f73456a60f23ad0796ed0c86f277711b84217d0dd6912530091ca172a85dbc6a6fe74d058392b629dc398efb5a33d6d8d + languageName: node + linkType: hard + +"graphql-scalars@npm:1.13.6": + version: 1.13.6 + resolution: "graphql-scalars@npm:1.13.6" + dependencies: + tslib: ~2.3.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: e3ffc97b0d99d2f0f520eac3ea04a82829d69fd40886182aac6e104c83cacd2dd87beed96f13e793dee3c07cf108277baeb0d68cdfeca5f0673f79786169cf90 + languageName: node + linkType: hard + +"graphql-sse@npm:^1.0.1": + version: 1.0.6 + resolution: "graphql-sse@npm:1.0.6" + peerDependencies: + graphql: ">=0.11 <=16" + checksum: fb034bfbbdc4f5ab607792c1542eb4a8152a17d79b68041a2e95974a90590d690eeaab7084c4d9169c9848d15d40c43ab7bd107d8d367b30e27b64ee0b114ef8 + languageName: node + linkType: hard + +"graphql-tag@npm:2.12.6, graphql-tag@npm:^2.11.0": + version: 2.12.6 + resolution: "graphql-tag@npm:2.12.6" + dependencies: + tslib: ^2.1.0 + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 7763a72011bda454ed8ff1a0d82325f43ca6478e4ce4ab8b7910c4c651dd00db553132171c04d80af5d5aebf1ef6a8a9fd53ccfa33b90ddc00aa3d4be6114419 + languageName: node + linkType: hard + +"graphql-ws@npm:^5.4.1": + version: 5.5.5 + resolution: "graphql-ws@npm:5.5.5" + peerDependencies: + graphql: ">=0.11 <=16" + checksum: ac6244a23a362a8c2fef49885d07cfbc4d7c5166f32afa4fc8a60c3ec94c78983c42bfeb52a164ee30dd1137078316c29070e8568c2a2a9a9578190ec339c8ac + languageName: node + linkType: hard + +"graphql@npm:16.0.1": + version: 16.0.1 + resolution: "graphql@npm:16.0.1" + checksum: b8599a98c78ac5fe3371540d58f415df460420d69998fe8c94a6c29365b518847df76acb64a241033eea97a3163a0a848d5795209caffbeef7156bc91c2c76c4 + languageName: node + linkType: hard + "graphql@npm:^15.5.1": version: 15.6.1 resolution: "graphql@npm:15.6.1" @@ -6315,6 +8117,15 @@ __metadata: languageName: node linkType: hard +"has-ansi@npm:^2.0.0": + version: 2.0.0 + resolution: "has-ansi@npm:2.0.0" + dependencies: + ansi-regex: ^2.0.0 + checksum: f54e4887b9f8f3c4bfefd649c48825b3c093987c92c27880ee9898539e6f01aed261e82e73153c3f920fde0db5bf6ebd58deb498ed1debabcb4bc40113ccdf05 + languageName: node + linkType: hard + "has-bigints@npm:^1.0.1": version: 1.0.1 resolution: "has-bigints@npm:1.0.1" @@ -6375,6 +8186,16 @@ __metadata: languageName: node linkType: hard +"header-case@npm:^2.0.4": + version: 2.0.4 + resolution: "header-case@npm:2.0.4" + dependencies: + capital-case: ^1.0.4 + tslib: ^2.0.3 + checksum: c9f295d9d8e38fa50679281fd70d80726962256e888a76c8e72e526453da7a1832dcb427caa716c1ad5d79841d4537301b90156fa30298fefd3d68f4ea2181bb + languageName: node + linkType: hard + "headers-utils@npm:^3.0.2": version: 3.0.2 resolution: "headers-utils@npm:3.0.2" @@ -6441,6 +8262,17 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: 32a05e413430b2c1e542e5c74b38a9f14865301dd69dff2e53ddb684989440e3d2ce0c4b64d25eb63cf6283e6265ff979a61cf93e3ca3d23047ddfdc8df34a32 + languageName: node + linkType: hard + "http-signature@npm:~1.2.0": version: 1.2.0 resolution: "http-signature@npm:1.2.0" @@ -6535,20 +8367,20 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.4": - version: 5.1.8 - resolution: "ignore@npm:5.1.8" - checksum: 3d09e733049c7bad1c0982be8fe3e767bd7b756dd0bfeceff11acda0b7b57634b5516acc3554d2d536e64b2701b3d08d0e5fa4dbf46389847dd3f8fa49d437bb - languageName: node - linkType: hard - -"ignore@npm:^5.1.8": +"ignore@npm:^5.1.4, ignore@npm:^5.1.8": version: 5.1.9 resolution: "ignore@npm:5.1.9" checksum: eef6b5ab690eafc56e79c9cf209c3c8ff816e6c3b9859bf598843dcb95df7a15de8bc17c037099bcbd91a65863df61413dac8c672f67eaaaa84a0ecf35899f33 languageName: node linkType: hard +"immutable@npm:~3.7.6": + version: 3.7.6 + resolution: "immutable@npm:3.7.6" + checksum: efe2bbb2620aa897afbb79545b9eda4dd3dc072e05ae7004895a7efb43187e4265612a88f8723f391eb1c87c46c52fd11e2d1968e42404450c63e49558d7ca4e + languageName: node + linkType: hard + "import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" @@ -6559,6 +8391,13 @@ __metadata: languageName: node linkType: hard +"import-from@npm:4.0.0": + version: 4.0.0 + resolution: "import-from@npm:4.0.0" + checksum: 7fd98650d555e418c18341fef49ae11afc833f5ae70b7043e99684187cba6ac6b52e4118a491bd9f856045495bef5bdda7321095e65bcb2ef70ce2adf9f0d8d1 + languageName: node + linkType: hard + "import-lazy@npm:^2.1.0": version: 2.1.0 resolution: "import-lazy@npm:2.1.0" @@ -6585,6 +8424,13 @@ __metadata: languageName: node linkType: hard +"indent-string@npm:^3.0.0": + version: 3.2.0 + resolution: "indent-string@npm:3.2.0" + checksum: 91b6d61621d24944c5c4d365d6f1ff4a490264ccaf1162a602faa0d323e69231db2180ad4ccc092c2f49cf8888cdb3da7b73e904cc0fdeec40d0bfb41ceb9478 + languageName: node + linkType: hard + "indent-string@npm:^4.0.0": version: 4.0.0 resolution: "indent-string@npm:4.0.0" @@ -6699,6 +8545,15 @@ __metadata: languageName: node linkType: hard +"invariant@npm:^2.2.4": + version: 2.2.4 + resolution: "invariant@npm:2.2.4" + dependencies: + loose-envify: ^1.0.0 + checksum: 5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc + languageName: node + linkType: hard + "invert-kv@npm:^2.0.0": version: 2.0.0 resolution: "invert-kv@npm:2.0.0" @@ -6713,6 +8568,16 @@ __metadata: languageName: node linkType: hard +"is-absolute@npm:^1.0.0": + version: 1.0.0 + resolution: "is-absolute@npm:1.0.0" + dependencies: + is-relative: ^1.0.0 + is-windows: ^1.0.1 + checksum: 422302ce879d4f3ca6848499b6f3ddcc8fd2dc9f3e9cad3f6bcedff58cdfbbbd7f4c28600fffa7c59a858f1b15c27fb6cfe1d5275e58a36d2bf098a44ef5abc4 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -6748,6 +8613,13 @@ __metadata: languageName: node linkType: hard +"is-buffer@npm:~1.1.6": + version: 1.1.6 + resolution: "is-buffer@npm:1.1.6" + checksum: ae18aa0b6e113d6c490ad1db5e8df9bdb57758382b313f5a22c9c61084875c6396d50bbf49315f5b1926d142d74dfb8d31b40d993a383e0a158b15fea7a82234 + languageName: node + linkType: hard + "is-callable@npm:^1.1.4, is-callable@npm:^1.2.4": version: 1.2.4 resolution: "is-callable@npm:1.2.4" @@ -6766,16 +8638,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.2.0, is-core-module@npm:^2.5.0": - version: 2.7.0 - resolution: "is-core-module@npm:2.7.0" - dependencies: - has: ^1.0.3 - checksum: 525bbb1580637a7f85e0d1e5537fed8008242f90782cb962ec5385cb76b63a8e8cd27cde43c854adc1dd3a62e1a7788cc952be4a99a865b92bdaa377bf913fa5 - languageName: node - linkType: hard - -"is-core-module@npm:^2.7.0": +"is-core-module@npm:^2.2.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.0": version: 2.8.0 resolution: "is-core-module@npm:2.8.0" dependencies: @@ -6830,7 +8693,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": +"is-glob@npm:4.0.3, is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -6863,6 +8726,15 @@ __metadata: languageName: node linkType: hard +"is-lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "is-lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: c045e6a52dcc7c3857e2f8c850ded604cdc5269ff94625b03881cefc73bfc02f5099a1bc9bafa67793656711a40d4ab3e26e285a848e728506df20ead0ce8e2f + languageName: node + linkType: hard + "is-negative-zero@npm:^2.0.1": version: 2.0.1 resolution: "is-negative-zero@npm:2.0.1" @@ -6907,6 +8779,15 @@ __metadata: languageName: node linkType: hard +"is-observable@npm:^1.1.0": + version: 1.1.0 + resolution: "is-observable@npm:1.1.0" + dependencies: + symbol-observable: ^1.1.0 + checksum: cf3166b0822f70ad06e7851e09430166ce658349d54aaa64c93a03320420b9285735821b23164bdce741ff83a86730ac3e53035ce4e2511ed843dbff4105bfa2 + languageName: node + linkType: hard + "is-path-inside@npm:^3.0.2": version: 3.0.3 resolution: "is-path-inside@npm:3.0.3" @@ -6951,6 +8832,13 @@ __metadata: languageName: node linkType: hard +"is-promise@npm:^2.1.0": + version: 2.2.2 + resolution: "is-promise@npm:2.2.2" + checksum: 2dba959812380e45b3df0fb12e7cb4d4528c989c7abb03ececb1d1fd6ab1cbfee956ca9daa587b9db1d8ac3c1e5738cf217bdb3dfd99df8c691be4c00ae09069 + languageName: node + linkType: hard + "is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" @@ -6961,6 +8849,15 @@ __metadata: languageName: node linkType: hard +"is-relative@npm:^1.0.0": + version: 1.0.0 + resolution: "is-relative@npm:1.0.0" + dependencies: + is-unc-path: ^1.0.0 + checksum: 61157c4be8594dd25ac6f0ef29b1218c36667259ea26698367a4d9f39ff9018368bc365c490b3c79be92dfb1e389e43c4b865c95709e7b3bc72c5932f751fb60 + languageName: node + linkType: hard + "is-shared-array-buffer@npm:^1.0.1": version: 1.0.1 resolution: "is-shared-array-buffer@npm:1.0.1" @@ -7025,6 +8922,15 @@ __metadata: languageName: node linkType: hard +"is-unc-path@npm:^1.0.0": + version: 1.0.0 + resolution: "is-unc-path@npm:1.0.0" + dependencies: + unc-path-regex: ^0.1.2 + checksum: ac1b78f9b748196e3be3d0e722cd4b0f98639247a130a8f2473a58b29baf63fdb1b1c5a12c830660c5ee6ef0279c5418ca8e346f98cbe1a29e433d7ae531d42e + languageName: node + linkType: hard + "is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0" @@ -7032,6 +8938,15 @@ __metadata: languageName: node linkType: hard +"is-upper-case@npm:^2.0.2": + version: 2.0.2 + resolution: "is-upper-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 2236f416484a2643d55a07cc95443cecf96cbc5fb0de7f24c506a8bc5cc4c4de885ab56c5ec946eadd95b3b7960bff7ed51cc88511fa8e8a9d92f2f8969622d9 + languageName: node + linkType: hard + "is-weakref@npm:^1.0.1": version: 1.0.1 resolution: "is-weakref@npm:1.0.1" @@ -7041,6 +8956,13 @@ __metadata: languageName: node linkType: hard +"is-windows@npm:^1.0.1": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: b32f418ab3385604a66f1b7a3ce39d25e8881dee0bd30816dc8344ef6ff9df473a732bcc1ec4e84fe99b2f229ae474f7133e8e93f9241686cfcf7eebe53ba7a5 + languageName: node + linkType: hard + "is-yarn-global@npm:^0.3.0": version: 0.3.0 resolution: "is-yarn-global@npm:0.3.0" @@ -7069,6 +8991,25 @@ __metadata: languageName: node linkType: hard +"isomorphic-fetch@npm:^3.0.0": + version: 3.0.0 + resolution: "isomorphic-fetch@npm:3.0.0" + dependencies: + node-fetch: ^2.6.1 + whatwg-fetch: ^3.4.1 + checksum: 511b1135c6d18125a07de661091f5e7403b7640060355d2d704ce081e019bc1862da849482d079ce5e2559b8976d3de7709566063aec1b908369c0b98a2b075b + languageName: node + linkType: hard + +"isomorphic-ws@npm:4.0.1": + version: 4.0.1 + resolution: "isomorphic-ws@npm:4.0.1" + peerDependencies: + ws: "*" + checksum: 7cb90dc2f0eb409825558982fb15d7c1d757a88595efbab879592f9d2b63820d6bbfb5571ab8abe36c715946e165a413a99f6aafd9f40ab1f514d73487bc9996 + languageName: node + linkType: hard + "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -7127,6 +9068,13 @@ __metadata: languageName: node linkType: hard +"iterall@npm:^1.2.1": + version: 1.3.0 + resolution: "iterall@npm:1.3.0" + checksum: 40de624e5fe937c4c0e511981b91caea9ff2142bfc0316cccc8506eaa03aa253820cc17c5bc5f0a98706c7268a373e5ebee9af9a0c8a359730cf7c05938b57b5 + languageName: node + linkType: hard + "jest-changed-files@npm:^27.3.0": version: 27.3.0 resolution: "jest-changed-files@npm:27.3.0" @@ -7226,19 +9174,7 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:^27.0.0": - version: 27.2.4 - resolution: "jest-diff@npm:27.2.4" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^27.0.6 - jest-get-type: ^27.0.6 - pretty-format: ^27.2.4 - checksum: 98d0d1d14f8873e85c586e57a5d23acbfd04061dfcf8df7aeb387f1fd459b680322a00688a982d92001eeb83c1a6591f4e086fbe5348a7d9475c2566d0c841e2 - languageName: node - linkType: hard - -"jest-diff@npm:^27.3.1": +"jest-diff@npm:^27.0.0, jest-diff@npm:^27.3.1": version: 27.3.1 resolution: "jest-diff@npm:27.3.1" dependencies: @@ -7301,13 +9237,6 @@ __metadata: languageName: node linkType: hard -"jest-get-type@npm:^27.0.6": - version: 27.0.6 - resolution: "jest-get-type@npm:27.0.6" - checksum: 41cf3d3a1f684a7034e11c876b4a2b1a2f63fcba6e277a4fe111b4e2c9ec02b73d1917aa1edcb6a8681124e726590db97d053626025584005571f63df0173d5c - languageName: node - linkType: hard - "jest-get-type@npm:^27.3.1": version: 27.3.1 resolution: "jest-get-type@npm:27.3.1" @@ -7640,6 +9569,22 @@ __metadata: languageName: node linkType: hard +"jose@npm:^2.0.5": + version: 2.0.5 + resolution: "jose@npm:2.0.5" + dependencies: + "@panva/asn1.js": ^1.0.0 + checksum: f6d1090ead9ddbf04b9717abcae6eb3d8d35f51c5c069e87780873e177b309ec594f4aa0ec7fdf456502bfee8d57c7dae1d24a531d7be2bbfd37eb1d402ffdf1 + languageName: node + linkType: hard + +"joycon@npm:^3.0.0": + version: 3.1.0 + resolution: "joycon@npm:3.1.0" + checksum: e98aedcb94a9089758ded4f8fd092fde3c01e651df59770d18d4a0e23258315bbd056663f2b5d5e70bf7986e864bae8b02e37d95acc077d2dd63a6c43399e4eb + languageName: node + linkType: hard + "js-levenshtein@npm:^1.1.6": version: 1.1.6 resolution: "js-levenshtein@npm:1.1.6" @@ -7666,6 +9611,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^4.0.0, js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: 184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + languageName: node + linkType: hard + "jsbn@npm:~0.1.0": version: 0.1.1 resolution: "jsbn@npm:0.1.1" @@ -7759,13 +9715,6 @@ __metadata: languageName: node linkType: hard -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 71e30015d7f3d6dc1c316d6298047c8ef98a06d31ad064919976583eb61e1018a60a0067338f0f79cabc00d84af3fcc489bd48ce8a46ea165d9541ba17fb30c6 - languageName: node - linkType: hard - "json-schema@npm:0.2.3": version: 0.2.3 resolution: "json-schema@npm:0.2.3" @@ -7780,6 +9729,15 @@ __metadata: languageName: node linkType: hard +"json-stable-stringify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify@npm:1.0.1" + dependencies: + jsonify: ~0.0.0 + checksum: 3127db54f6507096645411ad9e15abd6091b8a94d675321d5c28ecefe3ddabd07a255d12f27e140dd8af3eb07198c81e4d9a29a14f1f9342546a3e94881bb4f6 + languageName: node + linkType: hard + "json-stringify-safe@npm:^5.0.1, json-stringify-safe@npm:~5.0.1": version: 5.0.1 resolution: "json-stringify-safe@npm:5.0.1" @@ -7787,6 +9745,16 @@ __metadata: languageName: node linkType: hard +"json-to-pretty-yaml@npm:^1.2.2": + version: 1.2.2 + resolution: "json-to-pretty-yaml@npm:1.2.2" + dependencies: + remedial: ^1.0.7 + remove-trailing-spaces: ^1.0.6 + checksum: d28891860a7ae034873ac8ec5f69f5493106afed9a86295f1642a40b27a48df717c63966439a1dec5b8a4b30e99b86cd1b4ca7d979bb8048ffd7f7c67bfd88a3 + languageName: node + linkType: hard + "json5@npm:^1.0.1": version: 1.0.1 resolution: "json5@npm:1.0.1" @@ -7834,6 +9802,13 @@ __metadata: languageName: node linkType: hard +"jsonify@npm:~0.0.0": + version: 0.0.0 + resolution: "jsonify@npm:0.0.0" + checksum: acb05782ee86a842d098e086fe07fde89c3f3b4f6c18b563b7e24ddc1e323d5c3cce10a3ed947b3b080109ad787cd370b912ba58ecca22fdb7a97d9094f95614 + languageName: node + linkType: hard + "jsonparse@npm:^1.2.0, jsonparse@npm:^1.3.1": version: 1.3.1 resolution: "jsonparse@npm:1.3.1" @@ -7841,6 +9816,24 @@ __metadata: languageName: node linkType: hard +"jsonwebtoken@npm:8.5.1, jsonwebtoken@npm:^8.5.1": + version: 8.5.1 + resolution: "jsonwebtoken@npm:8.5.1" + dependencies: + jws: ^3.2.2 + lodash.includes: ^4.3.0 + lodash.isboolean: ^3.0.3 + lodash.isinteger: ^4.0.4 + lodash.isnumber: ^3.0.3 + lodash.isplainobject: ^4.0.6 + lodash.isstring: ^4.0.1 + lodash.once: ^4.0.0 + ms: ^2.1.1 + semver: ^5.6.0 + checksum: c5ad937b6fa23a230efa8ed8ca3c0da8ebfdd377bafc3e8432a11b03ef90e733400a00b26c0dfee47db44a2e64b88b154b57e9926a92990f98dd25aaed15006e + languageName: node + linkType: hard + "jsprim@npm:^1.2.2": version: 1.4.1 resolution: "jsprim@npm:1.4.1" @@ -7853,7 +9846,7 @@ __metadata: languageName: node linkType: hard -"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.1.0": +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.2.1": version: 3.2.1 resolution: "jsx-ast-utils@npm:3.2.1" dependencies: @@ -7863,6 +9856,40 @@ __metadata: languageName: node linkType: hard +"jwa@npm:^1.4.1": + version: 1.4.1 + resolution: "jwa@npm:1.4.1" + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: ^5.0.1 + checksum: 5c533540bf38702e73cf14765805a94027c66a0aa8b16bc3e89d8d905e61a4ce2791e87e21be97d1293a5ee9d4f3e5e47737e671768265ca4f25706db551d5e9 + languageName: node + linkType: hard + +"jwks-rsa@npm:2.0.5": + version: 2.0.5 + resolution: "jwks-rsa@npm:2.0.5" + dependencies: + "@types/express-jwt": 0.0.42 + debug: ^4.3.2 + jose: ^2.0.5 + limiter: ^1.1.5 + lru-memoizer: ^2.1.4 + checksum: 8faa3d0a1cce1326474717cef4a0f33dab03b2075340c7b55452fda064a468a453c67bf79e1a94361c61a88f33c7b2375f1d630867c5457c4f571e8ed4dc1f57 + languageName: node + linkType: hard + +"jws@npm:^3.2.2": + version: 3.2.2 + resolution: "jws@npm:3.2.2" + dependencies: + jwa: ^1.4.1 + safe-buffer: ^5.0.1 + checksum: e770704533d92df358adad7d1261fdecad4d7b66fa153ba80d047e03ca0f1f73007ce5ed3fbc04d2eba09ba6e7e6e645f351e08e5ab51614df1b0aa4f384dfff + languageName: node + linkType: hard + "keyv@npm:^3.0.0": version: 3.1.0 resolution: "keyv@npm:3.1.0" @@ -7872,6 +9899,18 @@ __metadata: languageName: node linkType: hard +"kill-port@npm:1.6.1": + version: 1.6.1 + resolution: "kill-port@npm:1.6.1" + dependencies: + get-them-args: 1.3.2 + shell-exec: 1.0.2 + bin: + kill-port: cli.js + checksum: f9d51a43f8349f162f4f004bd6e68e54d615f9a8f994c780b09771962becb4458cd7ba3a043948ecb18405a7e0d9c31d7264924d0b7f6e24a6f2a01cc474de21 + languageName: node + linkType: hard + "kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -7902,7 +9941,7 @@ __metadata: languageName: node linkType: hard -"latest-version@npm:^5.1.0": +"latest-version@npm:5.1.0, latest-version@npm:^5.1.0": version: 5.1.0 resolution: "latest-version@npm:5.1.0" dependencies: @@ -7948,6 +9987,13 @@ __metadata: languageName: node linkType: hard +"leven@npm:2.1.0": + version: 2.1.0 + resolution: "leven@npm:2.1.0" + checksum: e685243900aad7e854212001c9b7fe6d0806081e184d5077a561a91d07425852e8b7d1edf76b948f4be520b64e0015960be3a5f3e9acb0bec75a0e4134b422df + languageName: node + linkType: hard + "leven@npm:^3.1.0": version: 3.1.0 resolution: "leven@npm:3.1.0" @@ -8000,6 +10046,13 @@ __metadata: languageName: node linkType: hard +"limiter@npm:^1.1.5": + version: 1.1.5 + resolution: "limiter@npm:1.1.5" + checksum: ebe2b20a820d1f67b8e1724051246434c419b2da041a7e9cd943f6daf113b8d17a52a1bd88fb79be5b624c10283ecb737f50edb5c1c88c71f4cd367108c97300 + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.1.6 resolution: "lines-and-columns@npm:1.1.6" @@ -8007,6 +10060,60 @@ __metadata: languageName: node linkType: hard +"listr-silent-renderer@npm:^1.1.1": + version: 1.1.1 + resolution: "listr-silent-renderer@npm:1.1.1" + checksum: a13e08ebf863516a757bce4887f05290070772113d89095e9f51a07cf0b11a43a7563a67ff3b287c752c08f6d781fdb2123b02957534e3e0675fb564f2a42e1b + languageName: node + linkType: hard + +"listr-update-renderer@npm:^0.5.0": + version: 0.5.0 + resolution: "listr-update-renderer@npm:0.5.0" + dependencies: + chalk: ^1.1.3 + cli-truncate: ^0.2.1 + elegant-spinner: ^1.0.1 + figures: ^1.7.0 + indent-string: ^3.0.0 + log-symbols: ^1.0.2 + log-update: ^2.3.0 + strip-ansi: ^3.0.1 + peerDependencies: + listr: ^0.14.2 + checksum: 8ade44bf3dc6146c8e0178000619439e8889792c4689b66be6ce82bd459f5fe462ecb34b05147fb206a8ad60e6d4e6f34c9f48038e18366f867fd972688b8edc + languageName: node + linkType: hard + +"listr-verbose-renderer@npm:^0.5.0": + version: 0.5.0 + resolution: "listr-verbose-renderer@npm:0.5.0" + dependencies: + chalk: ^2.4.1 + cli-cursor: ^2.1.0 + date-fns: ^1.27.2 + figures: ^2.0.0 + checksum: 041cd1e82da7054f27ae0a914e98b40d15faf9f950ef850578fc6241d3fff3c2d7158a4f6226006e566b4c47bf445be2d254dd1ce5c16569a3a5dcd575bec656 + languageName: node + linkType: hard + +"listr@npm:0.14.3, listr@npm:^0.14.3": + version: 0.14.3 + resolution: "listr@npm:0.14.3" + dependencies: + "@samverschueren/stream-to-observable": ^0.3.0 + is-observable: ^1.1.0 + is-promise: ^2.1.0 + is-stream: ^1.1.0 + listr-silent-renderer: ^1.1.1 + listr-update-renderer: ^0.5.0 + listr-verbose-renderer: ^0.5.0 + p-map: ^2.0.0 + rxjs: ^6.3.3 + checksum: 753d518218c423f46bee8eeacccecadfd2e414ba9c0f602e7f85fe3f6fa18404dfab0812433aeda4683ee2548358488f597ac1a3d321196baec5d3149b200b10 + languageName: node + linkType: hard + "load-json-file@npm:^4.0.0": version: 4.0.0 resolution: "load-json-file@npm:4.0.0" @@ -8081,6 +10188,34 @@ __metadata: languageName: node linkType: hard +"lodash.get@npm:^4": + version: 4.4.2 + resolution: "lodash.get@npm:4.4.2" + checksum: 48f40d471a1654397ed41685495acb31498d5ed696185ac8973daef424a749ca0c7871bf7b665d5c14f5cc479394479e0307e781f61d5573831769593411be6e + languageName: node + linkType: hard + +"lodash.includes@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.includes@npm:4.3.0" + checksum: 7ca498b9b75bf602d04e48c0adb842dfc7d90f77bcb2a91a2b2be34a723ad24bc1c8b3683ec6b2552a90f216c723cdea530ddb11a3320e08fa38265703978f4b + languageName: node + linkType: hard + +"lodash.isboolean@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isboolean@npm:3.0.3" + checksum: 0aac604c1ef7e72f9a6b798e5b676606042401dd58e49f051df3cc1e3adb497b3d7695635a5cbec4ae5f66456b951fdabe7d6b387055f13267cde521f10ec7f7 + languageName: node + linkType: hard + +"lodash.isinteger@npm:^4.0.4": + version: 4.0.4 + resolution: "lodash.isinteger@npm:4.0.4" + checksum: 4c3e023a2373bf65bf366d3b8605b97ec830bca702a926939bcaa53f8e02789b6a176e7f166b082f9365bfec4121bfeb52e86e9040cb8d450e64c858583f61b7 + languageName: node + linkType: hard + "lodash.ismatch@npm:^4.4.0": version: 4.4.0 resolution: "lodash.ismatch@npm:4.4.0" @@ -8088,13 +10223,48 @@ __metadata: languageName: node linkType: hard -"lodash.merge@npm:^4.6.2": +"lodash.isnumber@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isnumber@npm:3.0.3" + checksum: 2d01530513a1ee4f72dd79528444db4e6360588adcb0e2ff663db2b3f642d4bb3d687051ae1115751ca9082db4fdef675160071226ca6bbf5f0c123dbf0aa12d + languageName: node + linkType: hard + +"lodash.isplainobject@npm:^4.0.6": + version: 4.0.6 + resolution: "lodash.isplainobject@npm:4.0.6" + checksum: afd70b5c450d1e09f32a737bed06ff85b873ecd3d3d3400458725283e3f2e0bb6bf48e67dbe7a309eb371a822b16a26cca4a63c8c52db3fc7dc9d5f9dd324cbb + languageName: node + linkType: hard + +"lodash.isstring@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.isstring@npm:4.0.1" + checksum: 09eaf980a283f9eef58ef95b30ec7fee61df4d6bf4aba3b5f096869cc58f24c9da17900febc8ffd67819b4e29de29793190e88dc96983db92d84c95fa85d1c92 + languageName: node + linkType: hard + +"lodash.merge@npm:4.6.2, lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" checksum: 402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 languageName: node linkType: hard +"lodash.omitby@npm:4.6.0": + version: 4.6.0 + resolution: "lodash.omitby@npm:4.6.0" + checksum: 4608b1d8c4063b63349a3462852465fbe74781d737fbb26a0a7f00b0e65f6ccbc13fa490a38f9380103d93fc398e3873983038efadfafc67ccafbb25d9bc7bf4 + languageName: node + linkType: hard + +"lodash.once@npm:^4.0.0": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: 46a9a0a66c45dd812fcc016e46605d85ad599fe87d71a02f6736220554b52ffbe82e79a483ad40f52a8a95755b0d1077fba259da8bfb6694a7abbf4a48f1fc04 + languageName: node + linkType: hard + "lodash.template@npm:^4.5.0": version: 4.5.0 resolution: "lodash.template@npm:4.5.0" @@ -8114,21 +10284,23 @@ __metadata: languageName: node linkType: hard -"lodash.truncate@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.truncate@npm:4.4.2" - checksum: 4e870d54e8a6c86c8687e057cec4069d2e941446ccab7f40b4d9555fa5872d917d0b6aa73bece7765500a3123f1723bcdba9ae881b679ef120bba9e1a0b0ed70 - languageName: node - linkType: hard - -"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.7.0": +"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.7.0, lodash@npm:~4.17.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c languageName: node linkType: hard -"log-symbols@npm:^4.1.0": +"log-symbols@npm:^1.0.2": + version: 1.0.2 + resolution: "log-symbols@npm:1.0.2" + dependencies: + chalk: ^1.0.0 + checksum: c64e1fe41d0d043840f8b592d043b8607a836b846506f525a53d99d578561f02f97b2cba1d2b3c30bae5311d64b308d5a392a9930d252b906a9042fc2877da7a + languageName: node + linkType: hard + +"log-symbols@npm:^4.0.0, log-symbols@npm:^4.1.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0" dependencies: @@ -8138,6 +10310,17 @@ __metadata: languageName: node linkType: hard +"log-update@npm:^2.3.0": + version: 2.3.0 + resolution: "log-update@npm:2.3.0" + dependencies: + ansi-escapes: ^3.0.0 + cli-cursor: ^2.0.0 + wrap-ansi: ^3.0.1 + checksum: 9bf21b138801ab4770a2bfa735161cf005b869360eaf5003a84ba64ddc5f5c3ce7217f4f1fa79d9c1f510d792213b2c9800327228e94df05859d19b716215d90 + languageName: node + linkType: hard + "logical-not@npm:^1.0.1": version: 1.0.9 resolution: "logical-not@npm:1.0.9" @@ -8145,7 +10328,7 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.4.0": +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -8156,6 +10339,24 @@ __metadata: languageName: node linkType: hard +"lower-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 22253389fa0693ec1ba09b9394be3a8228304bf21d074703db2eef97c16cda9c66462d88f9b91d4ad0186493d23cad99c63d38ebc13f9a808bc83aad539ff404 + languageName: node + linkType: hard + +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 3d925e090315cf7dc1caa358e0477e186ffa23947740e4314a7429b6e62d72742e0bbe7536a5ae56d19d7618ce998aba05caca53c2902bd5742fdca5fc57fd7b + languageName: node + linkType: hard + "lowercase-keys@npm:^1.0.0, lowercase-keys@npm:^1.0.1": version: 1.0.1 resolution: "lowercase-keys@npm:1.0.1" @@ -8179,6 +10380,26 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:~4.0.0": + version: 4.0.2 + resolution: "lru-cache@npm:4.0.2" + dependencies: + pseudomap: ^1.0.1 + yallist: ^2.0.0 + checksum: 92ff839ef07632d35f6bddd870909ae49edc1956b409b6a6db342e6d92bbea4aa4f7107dae35db7d5dd59cf27d5a43bbd335f26e2458d1b8860783f68fc1a0af + languageName: node + linkType: hard + +"lru-memoizer@npm:^2.1.4": + version: 2.1.4 + resolution: "lru-memoizer@npm:2.1.4" + dependencies: + lodash.clonedeep: ^4.5.0 + lru-cache: ~4.0.0 + checksum: b19d3823a3b0f0370dc71c4710a5519f2aba955a715403c709d692e2d34400b4c6956396a9f6b165ca475464108c279212fdeca560ee375683d44b2210e731b9 + languageName: node + linkType: hard + "lz-string@npm:^1.4.4": version: 1.4.4 resolution: "lz-string@npm:1.4.4" @@ -8207,6 +10428,13 @@ __metadata: languageName: node linkType: hard +"make-error@npm:^1, make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: 171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f + languageName: node + linkType: hard + "make-fetch-happen@npm:^8.0.14, make-fetch-happen@npm:^8.0.9": version: 8.0.14 resolution: "make-fetch-happen@npm:8.0.14" @@ -8272,6 +10500,13 @@ __metadata: languageName: node linkType: hard +"map-cache@npm:^0.2.0": + version: 0.2.2 + resolution: "map-cache@npm:0.2.2" + checksum: 05e3eb005c1b80b9f949ca007687640e8c5d0fc88dc45c3c3ab4902a3bec79d66a58f3e3b04d6985d90cd267c629c7b46c977e9c34433e8c11ecfcbb9f0fa290 + languageName: node + linkType: hard + "map-obj@npm:^1.0.0": version: 1.0.1 resolution: "map-obj@npm:1.0.1" @@ -8286,6 +10521,17 @@ __metadata: languageName: node linkType: hard +"md5@npm:2.3.0": + version: 2.3.0 + resolution: "md5@npm:2.3.0" + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: ~1.1.6 + checksum: 14a21d597d92e5b738255fbe7fe379905b8cb97e0a49d44a20b58526a646ec5518c337b817ce0094ca94d3e81a3313879c4c7b510d250c282d53afbbdede9110 + languageName: node + linkType: hard + "mem@npm:^4.0.0": version: 4.3.0 resolution: "mem@npm:4.3.0" @@ -8330,6 +10576,18 @@ __metadata: languageName: node linkType: hard +"meros@npm:1.1.4": + version: 1.1.4 + resolution: "meros@npm:1.1.4" + peerDependencies: + "@types/node": ">=12" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 36a463aecbae2fd9cbdb1e5630455217fb6bdeb8670011106187ca07b83ae570c2772e31cfaff4ea91906b9b6dd0dc50d783695fa89aff80754379d03cda9af8 + languageName: node + linkType: hard + "micromatch@npm:^4.0.4": version: 4.0.4 resolution: "micromatch@npm:4.0.4" @@ -8356,6 +10614,13 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^1.0.0": + version: 1.2.0 + resolution: "mimic-fn@npm:1.2.0" + checksum: ad55214aec6094c0af4c0beec1a13787556f8116ed88807cf3f05828500f21f93a9482326bcd5a077ae91e3e8795b4e76b5b4c8bb12237ff0e4043a365516cba + languageName: node + linkType: hard + "mimic-fn@npm:^2.0.0, mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -8377,7 +10642,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4": +"minimatch@npm:3.0.4, minimatch@npm:^3.0.4": version: 3.0.4 resolution: "minimatch@npm:3.0.4" dependencies: @@ -8541,6 +10806,13 @@ __metadata: languageName: node linkType: hard +"mri@npm:1.1.4": + version: 1.1.4 + resolution: "mri@npm:1.1.4" + checksum: eb577c2ef60385aa287afdac777e536996f4fd3144250c201097e7ec121568139d482c92cb9a512f90e428d6dc3e9ba8e9de89bc204424cb96f187a4bdc465c1 + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -8640,6 +10912,16 @@ __metadata: languageName: node linkType: hard +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: ^2.0.2 + tslib: ^2.0.3 + checksum: 8ef545f0b3f8677c848f86ecbd42ca0ff3cd9dd71c158527b344c69ba14710d816d8489c746b6ca225e7b615108938a0bda0a54706f8c255933703ac1cf8e703 + languageName: node + linkType: hard + "node-environment-flags@npm:^1.0.5": version: 1.0.6 resolution: "node-environment-flags@npm:1.0.6" @@ -8650,6 +10932,13 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:2.6.1": + version: 2.6.1 + resolution: "node-fetch@npm:2.6.1" + checksum: c58586d121782df045681e29608f940be90c7d8c4cada29957c148cfcc5e2d81d74b690cf10ee6879ed055da7ea821450a74ff43f3bde651cf6c8a5f34a77e2a + languageName: node + linkType: hard + "node-fetch@npm:^2.6.1": version: 2.6.5 resolution: "node-fetch@npm:2.6.5" @@ -8659,6 +10948,15 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^2.6.5": + version: 2.6.6 + resolution: "node-fetch@npm:2.6.6" + dependencies: + whatwg-url: ^5.0.0 + checksum: f9b5c8789c7bcd393a2fb70d752e36d5b5e84eb52bd5bffceb4fb64ac81dce1a1f55ca023a990e51bbf8594fc502ea9bea3004037e6eab65205cd84e8af94fc9 + languageName: node + linkType: hard + "node-gyp@npm:^5.0.2": version: 5.1.1 resolution: "node-gyp@npm:5.1.1" @@ -8741,30 +11039,30 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^1.1.77": - version: 1.1.77 - resolution: "node-releases@npm:1.1.77" - checksum: e7477dd1201d32f2169988665f6e5b3b779f3c582decae4a1ab119dc8a8e3a28b3118c386b3c2e8c5a55c415066fe82c77e976979ad4e742ee14483d62f3f3a5 +"node-releases@npm:^2.0.1": + version: 2.0.1 + resolution: "node-releases@npm:2.0.1" + checksum: cb6c373458422e584b46ce18d7b5c95590fe1f31a9ec4833d3f557aff8c99a64be331cbb94ddee473f40ff17d52a907939c3f234a537da35967c58585c9ee09e languageName: node linkType: hard -"nodemon@npm:2.0.14": - version: 2.0.14 - resolution: "nodemon@npm:2.0.14" +"nodemon@npm:2.0.15": + version: 2.0.15 + resolution: "nodemon@npm:2.0.15" dependencies: - chokidar: ^3.2.2 - debug: ^3.2.6 + chokidar: ^3.5.2 + debug: ^3.2.7 ignore-by-default: ^1.0.1 minimatch: ^3.0.4 - pstree.remy: ^1.1.7 + pstree.remy: ^1.1.8 semver: ^5.7.1 supports-color: ^5.5.0 touch: ^3.1.0 - undefsafe: ^2.0.3 + undefsafe: ^2.0.5 update-notifier: ^5.1.0 bin: nodemon: bin/nodemon.js - checksum: ddf2ea6ffb839d74136f01ecec38a829912633ecb5c029f308f71e68afdf5abc93e8dc1d97c9843abf011707618c3064e1ddb848089af4649a940116d5a89efa + checksum: c2acc8d388d4fae149e56ef66a645e3e152ea49e8664a7f318f4abd339444f9a74af374839530c8eca0655d4b890ddb8bc8757d3eb071d001eb26b0ab777d954 languageName: node linkType: hard @@ -8826,6 +11124,15 @@ __metadata: languageName: node linkType: hard +"normalize-path@npm:^2.1.1": + version: 2.1.1 + resolution: "normalize-path@npm:2.1.1" + dependencies: + remove-trailing-separator: ^1.0.1 + checksum: db814326ff88057437233361b4c7e9cac7b54815b051b57f2d341ce89b1d8ec8cbd43e7fa95d7652b3b69ea8fcc294b89b8530d556a84d1bdace94229e1e9a8b + languageName: node + linkType: hard + "normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" @@ -8999,6 +11306,13 @@ __metadata: languageName: node linkType: hard +"nullthrows@npm:^1.1.1": + version: 1.1.1 + resolution: "nullthrows@npm:1.1.1" + checksum: 56f34bd7c3dcb3bd23481a277fa22918120459d3e9d95ca72976c72e9cac33a97483f0b95fc420e2eb546b9fe6db398273aba9a938650cdb8c98ee8f159dcb30 + languageName: node + linkType: hard + "number-is-nan@npm:^1.0.0": version: 1.0.1 resolution: "number-is-nan@npm:1.0.1" @@ -9053,7 +11367,7 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.4": +"object.entries@npm:^1.1.5": version: 1.1.5 resolution: "object.entries@npm:1.1.5" dependencies: @@ -9064,7 +11378,7 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.4": +"object.fromentries@npm:^2.0.5": version: 2.0.5 resolution: "object.fromentries@npm:2.0.5" dependencies: @@ -9086,7 +11400,7 @@ __metadata: languageName: node linkType: hard -"object.hasown@npm:^1.0.0": +"object.hasown@npm:^1.1.0": version: 1.1.0 resolution: "object.hasown@npm:1.1.0" dependencies: @@ -9096,7 +11410,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.4, object.values@npm:^1.1.5": +"object.values@npm:^1.1.5": version: 1.1.5 resolution: "object.values@npm:1.1.5" dependencies: @@ -9107,6 +11421,13 @@ __metadata: languageName: node linkType: hard +"on-exit-leak-free@npm:^0.2.0": + version: 0.2.0 + resolution: "on-exit-leak-free@npm:0.2.0" + checksum: d4e1f0bea59f39aa435baaee7d76955527e245538cffc1d7bb0c165ae85e37f67690aa9272247ced17bad76052afdb45faf5ea304a2248e070202d4554c4e30c + languageName: node + linkType: hard + "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -9116,6 +11437,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^2.0.0": + version: 2.0.1 + resolution: "onetime@npm:2.0.1" + dependencies: + mimic-fn: ^1.0.0 + checksum: b4e44a8c34e70e02251bfb578a6e26d6de6eedbed106cd78211d2fd64d28b6281d54924696554e4e966559644243753ac5df73c87f283b0927533d3315696215 + languageName: node + linkType: hard + "onetime@npm:^5.1.0, onetime@npm:^5.1.2": version: 5.1.2 resolution: "onetime@npm:5.1.2" @@ -9240,6 +11570,15 @@ __metadata: languageName: node linkType: hard +"p-limit@npm:3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a + languageName: node + linkType: hard + "p-limit@npm:^1.1.0": version: 1.3.0 resolution: "p-limit@npm:1.3.0" @@ -9292,6 +11631,13 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^2.0.0": + version: 2.1.0 + resolution: "p-map@npm:2.1.0" + checksum: 735dae87badd4737a2dd582b6d8f93e49a1b79eabbc9815a4d63a528d5e3523e978e127a21d784cccb637010e32103a40d2aaa3ab23ae60250b1a820ca752043 + languageName: node + linkType: hard + "p-map@npm:^4.0.0": version: 4.0.0 resolution: "p-map@npm:4.0.0" @@ -9398,6 +11744,16 @@ __metadata: languageName: node linkType: hard +"param-case@npm:^3.0.4": + version: 3.0.4 + resolution: "param-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: ccc053f3019f878eca10e70ec546d92f51a592f762917dafab11c8b532715dcff58356118a6f350976e4ab109e321756f05739643ed0ca94298e82291e6f9e76 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -9407,6 +11763,17 @@ __metadata: languageName: node linkType: hard +"parse-filepath@npm:^1.0.2": + version: 1.0.2 + resolution: "parse-filepath@npm:1.0.2" + dependencies: + is-absolute: ^1.0.0 + map-cache: ^0.2.0 + path-root: ^0.1.1 + checksum: 37bbd225fa864257246777efbdf72a9305c4ae12110bf467d11994e93f8be60dd309dcef68124a2c78c5d3b4e64e1c36fcc2560e2ea93fd97767831e7a446805 + languageName: node + linkType: hard + "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -9467,6 +11834,33 @@ __metadata: languageName: node linkType: hard +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 05ff7c344809fd272fc5030ae0ee3da8e4e63f36d47a1e0a4855ca59736254192c5a27b5822ed4bae96e54048eec5f6907713cfcfff7cdf7a464eaf7490786d8 + languageName: node + linkType: hard + +"pascalcase@npm:1.0.0": + version: 1.0.0 + resolution: "pascalcase@npm:1.0.0" + checksum: 5fac7a6346b23307664f020cdd42d245a3189bf3b9b21cd167ea5e28a17b403e6670c60a3055d9c7d56ec00ffab446f862ff8148add23cd2c5a035c4d07efa26 + languageName: node + linkType: hard + +"path-case@npm:^3.0.4": + version: 3.0.4 + resolution: "path-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: b6b14637228a558793f603aaeb2fcd981e738b8b9319421b713532fba96d75aa94024b9f6b9ae5aa33d86755144a5b36697d28db62ae45527dbd672fcc2cf0b7 + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -9509,6 +11903,22 @@ __metadata: languageName: node linkType: hard +"path-root-regex@npm:^0.1.0": + version: 0.1.2 + resolution: "path-root-regex@npm:0.1.2" + checksum: 27651a234f280c70d982dd25c35550f74a4284cde6b97237aab618cb4b5745682d18cdde1160617bb4a4b6b8aec4fbc911c4a2ad80d01fa4c7ee74dae7af2337 + languageName: node + linkType: hard + +"path-root@npm:^0.1.1": + version: 0.1.1 + resolution: "path-root@npm:0.1.1" + dependencies: + path-root-regex: ^0.1.0 + checksum: aed5cd290df84c46c7730f6a363e95e47a23929b51ab068a3818d69900da3e89dc154cdfd0c45c57b2e02f40c094351bc862db70c2cb00b7e6bd47039a227813 + languageName: node + linkType: hard + "path-type@npm:^3.0.0": version: 3.0.0 resolution: "path-type@npm:3.0.0" @@ -9532,10 +11942,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^0.2.1": - version: 0.2.1 - resolution: "picocolors@npm:0.2.1" - checksum: 98a83c77912c80aea0fc518aec184768501bfceafa490714b0f43eda9c52e372b844ce0a591e822bbfe5df16dcf366be7cbdb9534d39cf54a80796340371ee17 +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: 20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7 languageName: node linkType: hard @@ -9574,6 +11984,66 @@ __metadata: languageName: node linkType: hard +"pino-abstract-transport@npm:^0.5.0, pino-abstract-transport@npm:v0.5.0": + version: 0.5.0 + resolution: "pino-abstract-transport@npm:0.5.0" + dependencies: + duplexify: ^4.1.2 + split2: ^4.0.0 + checksum: 0d0e30399028ec156642b4cdfe1a040b9022befdc38e8f85935d1837c3da6050691888038433f88190d1a1eff5d90abe17ff7e6edffc09baa2f96e51b6808183 + languageName: node + linkType: hard + +"pino-pretty@npm:7.2.0": + version: 7.2.0 + resolution: "pino-pretty@npm:7.2.0" + dependencies: + args: ^5.0.1 + colorette: ^2.0.7 + dateformat: ^4.6.3 + fast-safe-stringify: ^2.0.7 + joycon: ^3.0.0 + pino-abstract-transport: ^0.5.0 + pump: ^3.0.0 + readable-stream: ^3.6.0 + rfdc: ^1.3.0 + secure-json-parse: ^2.4.0 + sonic-boom: ^2.2.0 + strip-json-comments: ^3.1.1 + bin: + pino-pretty: bin.js + checksum: 1c307ac41f3918a08d7a2dd1c78f51d14873db27a3b6047bb341c5d3af4d0bce38f313ba39ea758c1b3d005cd5958ec3e65cbdac26ced5ad3a137cc3d452e867 + languageName: node + linkType: hard + +"pino-std-serializers@npm:^4.0.0": + version: 4.0.0 + resolution: "pino-std-serializers@npm:4.0.0" + checksum: 9e8ccac9ce04a27ccc7aa26481d431b9e037d866b101b89d895c60b925baffb82685e84d5c29b05d8e3d7c146d766a9b08949cb24ab1ec526a16134c9962d649 + languageName: node + linkType: hard + +"pino@npm:7.3.0": + version: 7.3.0 + resolution: "pino@npm:7.3.0" + dependencies: + fast-redact: ^3.0.0 + fastify-warning: ^0.2.0 + get-caller-file: ^2.0.5 + on-exit-leak-free: ^0.2.0 + pino-abstract-transport: v0.5.0 + pino-std-serializers: ^4.0.0 + quick-format-unescaped: ^4.0.3 + real-require: ^0.1.0 + safe-stable-stringify: ^2.1.0 + sonic-boom: ^2.2.1 + thread-stream: ^0.13.0 + bin: + pino: bin.js + checksum: bc720396d2ff781ca713fbd7f589c2e6761b9f207953166970f98718aaefb6313e69e2e0c91564e3db11295f8b81fec7c16e30207cb6ad7b45b4c705a879e84d + languageName: node + linkType: hard + "pirates@npm:^4.0.0, pirates@npm:^4.0.1": version: 4.0.1 resolution: "pirates@npm:4.0.1" @@ -9670,19 +12140,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^27.0.0, pretty-format@npm:^27.0.2, pretty-format@npm:^27.2.4": - version: 27.2.4 - resolution: "pretty-format@npm:27.2.4" - dependencies: - "@jest/types": ^27.2.4 - ansi-regex: ^5.0.1 - ansi-styles: ^5.0.0 - react-is: ^17.0.1 - checksum: 4b0c99ba70fbb7f8a0145732acc1f0e4fc46649f28d22a327dd6fdb79c7a6d51133bc6536a5357b605dcda5246e6eabf82c77d2f2bbaa6ecde1b8d651b5b2ada - languageName: node - linkType: hard - -"pretty-format@npm:^27.3.1": +"pretty-format@npm:^27.0.0, pretty-format@npm:^27.0.2, pretty-format@npm:^27.3.1": version: 27.3.1 resolution: "pretty-format@npm:27.3.1" dependencies: @@ -9725,6 +12183,15 @@ __metadata: languageName: node linkType: hard +"promise@npm:^7.1.1": + version: 7.3.1 + resolution: "promise@npm:7.3.1" + dependencies: + asap: ~2.0.3 + checksum: 742e5c0cc646af1f0746963b8776299701ad561ce2c70b49365d62c8db8ea3681b0a1bf0d4e2fe07910bf72f02d39e51e8e73dc8d7503c3501206ac908be107f + languageName: node + linkType: hard + "prompts@npm:^2.0.1": version: 2.4.2 resolution: "prompts@npm:2.4.2" @@ -9769,6 +12236,13 @@ __metadata: languageName: node linkType: hard +"pseudomap@npm:^1.0.1": + version: 1.0.2 + resolution: "pseudomap@npm:1.0.2" + checksum: 5a91ce114c64ed3a6a553aa7d2943868811377388bb31447f9d8028271bae9b05b340fe0b6961a64e45b9c72946aeb0a4ab635e8f7cb3715ffd0ff2beeb6a679 + languageName: node + linkType: hard + "psl@npm:^1.1.28, psl@npm:^1.1.33": version: 1.8.0 resolution: "psl@npm:1.8.0" @@ -9776,7 +12250,7 @@ __metadata: languageName: node linkType: hard -"pstree.remy@npm:^1.1.7": +"pstree.remy@npm:^1.1.8": version: 1.1.8 resolution: "pstree.remy@npm:1.1.8" checksum: 30f78c88ce6393cb3f7834216cb6e282eb83c92ccb227430d4590298ab2811bc4a4745f850a27c5178e79a8f3e316591de0fec87abc19da648c2b3c6eb766d14 @@ -9851,6 +12325,13 @@ __metadata: languageName: node linkType: hard +"quick-format-unescaped@npm:^4.0.3": + version: 4.0.4 + resolution: "quick-format-unescaped@npm:4.0.4" + checksum: fe5acc6f775b172ca5b4373df26f7e4fd347975578199e7d74b2ae4077f0af05baa27d231de1e80e8f72d88275ccc6028568a7a8c9ee5e7368ace0e18eff93a4 + languageName: node + linkType: hard + "quick-lru@npm:^4.0.1": version: 4.0.1 resolution: "quick-lru@npm:4.0.1" @@ -10003,7 +12484,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.4.0": +"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": version: 3.6.0 resolution: "readable-stream@npm:3.6.0" dependencies: @@ -10050,6 +12531,13 @@ __metadata: languageName: node linkType: hard +"real-require@npm:^0.1.0": + version: 0.1.0 + resolution: "real-require@npm:0.1.0" + checksum: c0f8ae531d1f51fe6343d47a2a1e5756e19b65a81b4a9642b9ebb4874e0d8b5f3799bc600bf4592838242477edc6f57778593f21b71d90f8ad0d8a317bbfae1c + languageName: node + linkType: hard + "redent@npm:^3.0.0": version: 3.0.0 resolution: "redent@npm:3.0.0" @@ -10102,7 +12590,7 @@ __metadata: languageName: node linkType: hard -"regexpp@npm:^3.1.0, regexpp@npm:^3.2.0": +"regexpp@npm:^3.2.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" checksum: d1da82385c8754a1681416b90b9cca0e21b4a2babef159099b88f640637d789c69011d0bc94705dacab85b81133e929d027d85210e8b8b03f8035164dbc14710 @@ -10159,6 +12647,74 @@ __metadata: languageName: node linkType: hard +"relay-compiler@npm:12.0.0": + version: 12.0.0 + resolution: "relay-compiler@npm:12.0.0" + dependencies: + "@babel/core": ^7.14.0 + "@babel/generator": ^7.14.0 + "@babel/parser": ^7.14.0 + "@babel/runtime": ^7.0.0 + "@babel/traverse": ^7.14.0 + "@babel/types": ^7.0.0 + babel-preset-fbjs: ^3.4.0 + chalk: ^4.0.0 + fb-watchman: ^2.0.0 + fbjs: ^3.0.0 + glob: ^7.1.1 + immutable: ~3.7.6 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + relay-runtime: 12.0.0 + signedsource: ^1.0.0 + yargs: ^15.3.1 + peerDependencies: + graphql: ^15.0.0 + bin: + relay-compiler: bin/relay-compiler + checksum: b63be99eaf32eb74bfad7bc3dc7c80a0a3bbb6a9e2f6b9ecfa50b8d7c4f7f28d5dd152f5b0c119b54023ef0002b07764f83cce763a3863d6c2569984fac7de5c + languageName: node + linkType: hard + +"relay-runtime@npm:12.0.0": + version: 12.0.0 + resolution: "relay-runtime@npm:12.0.0" + dependencies: + "@babel/runtime": ^7.0.0 + fbjs: ^3.0.0 + invariant: ^2.2.4 + checksum: f5d29b5c2f3c8a3438d43dcbc3022bd454c4ecbd4f0b10616df08bedc62d8aaa84f155f23e374053cf9f4a8238b93804e37a5b37ed9dc7ad01436d62d1b01d53 + languageName: node + linkType: hard + +"remedial@npm:^1.0.7": + version: 1.0.8 + resolution: "remedial@npm:1.0.8" + checksum: ca1e22d2958e3f0f2fdb5f1c23fecadab5d83a0b1e291c67474c806ce07801212f1d2006995bdcfb592803ead7666e2b1fbb9281b3f32d4a87ff2335b3777725 + languageName: node + linkType: hard + +"remove-trailing-separator@npm:^1.0.1": + version: 1.1.0 + resolution: "remove-trailing-separator@npm:1.1.0" + checksum: 3568f9f8f5af3737b4aee9e6e1e8ec4be65a92da9cb27f989e0893714d50aa95ed2ff02d40d1fa35e1b1a234dc9c2437050ef356704a3999feaca6667d9e9bfc + languageName: node + linkType: hard + +"remove-trailing-spaces@npm:^1.0.6": + version: 1.0.8 + resolution: "remove-trailing-spaces@npm:1.0.8" + checksum: b9a4d74fd77e4a81b83cd19152abe1d658e5ecf13bc9b789c2699d7166d3879258a61625f8fc0274ef5719ab70e514ae86234fee481f6b41b50729949b837c1b + languageName: node + linkType: hard + +"replaceall@npm:^0.1.6": + version: 0.1.6 + resolution: "replaceall@npm:0.1.6" + checksum: 97fd2b538881c7228bd3c5272e1bf395ff29d8e8e38735e66eb573c9635e80e4a4e4b8644adb33f648ff319bae149c3809f587ea100d85d7866ac274aa4f09a2 + languageName: node + linkType: hard + "request@npm:^2.88.0, request@npm:^2.88.2": version: 2.88.2 resolution: "request@npm:2.88.2" @@ -10194,13 +12750,6 @@ __metadata: languageName: node linkType: hard -"require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2 - languageName: node - linkType: hard - "require-main-filename@npm:^1.0.1": version: 1.0.1 resolution: "require-main-filename@npm:1.0.1" @@ -10208,6 +12757,13 @@ __metadata: languageName: node linkType: hard +"require-main-filename@npm:^2.0.0": + version: 2.0.0 + resolution: "require-main-filename@npm:2.0.0" + checksum: db91467d9ead311b4111cbd73a4e67fa7820daed2989a32f7023785a2659008c6d119752d9c4ac011ae07e537eb86523adff99804c5fdb39cd3a017f9b401bb6 + languageName: node + linkType: hard + "requireindex@npm:^1.2.0": version: 1.2.0 resolution: "requireindex@npm:1.2.0" @@ -10224,20 +12780,30 @@ __metadata: languageName: node linkType: hard -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: 8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 +"resolve-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1": + version: 1.0.1 + resolution: "resolve-dir@npm:1.0.1" + dependencies: + expand-tilde: ^2.0.0 + global-modules: ^1.0.0 + checksum: 8197ed13e4a51d9cd786ef6a09fc83450db016abe7ef3311ca39389b3e508d77c26fe0cf0483a9b407b8caa2764bb5ccc52cf6a017ded91492a416475a56066f languageName: node linkType: hard -"resolve-from@npm:^5.0.0": +"resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": version: 5.0.0 resolution: "resolve-from@npm:5.0.0" checksum: b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 languageName: node linkType: hard +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: 8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 + languageName: node + linkType: hard + "resolve.exports@npm:^1.1.0": version: 1.1.0 resolution: "resolve.exports@npm:1.1.0" @@ -10294,6 +12860,16 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"restore-cursor@npm:^2.0.0": + version: 2.0.0 + resolution: "restore-cursor@npm:2.0.0" + dependencies: + onetime: ^2.0.0 + signal-exit: ^3.0.2 + checksum: f5b335bee06f440445e976a7031a3ef53691f9b7c4a9d42a469a0edaf8a5508158a0d561ff2b26a1f4f38783bcca2c0e5c3a44f927326f6694d5b44d7a4993e6 + languageName: node + linkType: hard + "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -10318,6 +12894,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"rfdc@npm:^1.3.0": + version: 1.3.0 + resolution: "rfdc@npm:1.3.0" + checksum: a17fd7b81f42c7ae4cb932abd7b2f677b04cc462a03619fb46945ae1ccae17c3bc87c020ffdde1751cbfa8549860a2883486fdcabc9b9de3f3108af32b69a667 + languageName: node + linkType: hard + "rimraf@npm:3.0.2, rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -10356,7 +12939,7 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"rxjs@npm:^6.4.0, rxjs@npm:^6.6.0": +"rxjs@npm:^6.3.3, rxjs@npm:^6.4.0, rxjs@npm:^6.6.0": version: 6.6.7 resolution: "rxjs@npm:6.6.7" dependencies: @@ -10388,6 +12971,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"safe-stable-stringify@npm:^2.1.0": + version: 2.3.0 + resolution: "safe-stable-stringify@npm:2.3.0" + checksum: 4a705f9efca2d104e6b8033aa61afadefe829935d5fa73c9556d0fc8b1264c96c88228c0432d91f4537fe1a64fff43c866f06a0f319e72db19b63c67f5a7f9ff + languageName: node + linkType: hard + "safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -10404,6 +12994,20 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"scuid@npm:^1.1.0": + version: 1.1.0 + resolution: "scuid@npm:1.1.0" + checksum: 01c6bd2657ceaa148ead0c836df6251f561166142059261022a38dba429b30141e27ab3c0eca1012b88912f51a9e848e475fe1b6259ef1c61a0a7f6eb54fb261 + languageName: node + linkType: hard + +"secure-json-parse@npm:^2.4.0": + version: 2.4.0 + resolution: "secure-json-parse@npm:2.4.0" + checksum: c6a5dd90aa41c6110ac7c6e67c12e9a5cdd4465263a012ac6682460a1f9ce907b867c1829e3948a4e2771fa3b08dbfbd9b507c6524a61b5225e6b32dc7e6b830 + languageName: node + linkType: hard + "semver-diff@npm:^3.1.1": version: 3.1.1 resolution: "semver-diff@npm:3.1.1" @@ -10451,6 +13055,17 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"sentence-case@npm:^3.0.4": + version: 3.0.4 + resolution: "sentence-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 9a90527a51300cf5faea7fae0c037728f9ddcff23ac083883774c74d180c0a03c31aab43d5c3347512e8c1b31a0d4712512ec82beb71aa79b85149f9abeb5467 + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0, set-blocking@npm:~2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -10465,6 +13080,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"setimmediate@npm:^1.0.5": + version: 1.0.5 + resolution: "setimmediate@npm:1.0.5" + checksum: 5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49 + languageName: node + linkType: hard + "shallow-clone@npm:^3.0.0": version: 3.0.1 resolution: "shallow-clone@npm:3.0.1" @@ -10506,6 +13128,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"shell-exec@npm:1.0.2": + version: 1.0.2 + resolution: "shell-exec@npm:1.0.2" + checksum: 3733ed251bc025340a373da151c44d36e69d37f570e94f5dd6a968427e8d9f751a58dd87c5a01bf0ad1289ad1de963a425aaf14ad3a06f8aee56f776462b63ca + languageName: node + linkType: hard + "side-channel@npm:^1.0.4": version: 1.0.4 resolution: "side-channel@npm:1.0.4" @@ -10524,6 +13153,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"signedsource@npm:^1.0.0": + version: 1.0.0 + resolution: "signedsource@npm:1.0.0" + checksum: dbb4ade9c94888e83c16d23ef1a43195799de091d366d130be286415e8aeb97b3f25b14fd26fc5888e1335d703ad561374fddee32e43b7cea04751b93d178a47 + languageName: node + linkType: hard + "sisteransi@npm:^1.0.5": version: 1.0.5 resolution: "sisteransi@npm:1.0.5" @@ -10545,14 +13181,10 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 6c25678db1270d4793e0327620f1e0f9f5bea4630123f51e9e399191bc52c87d6e6de53ed33538609e5eacbd1fab769fae00f3705d08d029f02102a540648918 +"slice-ansi@npm:0.0.4": + version: 0.0.4 + resolution: "slice-ansi@npm:0.0.4" + checksum: 997d4cc73e34aa8c0f60bdb71701b16c062cc4acd7a95e3b10e8c05d790eb5e735d9b470270dc6f443b1ba21492db7ceb849d5c93011d1256061bf7ed7216c7a languageName: node linkType: hard @@ -10570,6 +13202,16 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"snake-case@npm:^3.0.4": + version: 3.0.4 + resolution: "snake-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: ab19a913969f58f4474fe9f6e8a026c8a2142a01f40b52b79368068343177f818cdfef0b0c6b9558f298782441d5ca8ed5932eb57822439fad791d866e62cecd + languageName: node + linkType: hard + "socks-proxy-agent@npm:^5.0.0": version: 5.0.1 resolution: "socks-proxy-agent@npm:5.0.1" @@ -10602,6 +13244,15 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"sonic-boom@npm:^2.2.0, sonic-boom@npm:^2.2.1": + version: 2.3.2 + resolution: "sonic-boom@npm:2.3.2" + dependencies: + atomic-sleep: ^1.0.0 + checksum: 3e3bc9c6cda8ae1c62e7813577794303164d8afa34e5a95fa3a423086e91c1139af8863258594dd36679d90b4b8b8de89e853582c57944d5463ba886e684d1b1 + languageName: node + linkType: hard + "sort-keys@npm:^2.0.0": version: 2.0.0 resolution: "sort-keys@npm:2.0.0" @@ -10640,6 +13291,16 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"source-map-support@npm:^0.5.17": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 9ee09942f415e0f721d6daad3917ec1516af746a8120bba7bb56278707a37f1eb8642bde456e98454b8a885023af81a16e646869975f06afc1a711fb90484e7d + languageName: node + linkType: hard + "source-map@npm:^0.5.0": version: 0.5.7 resolution: "source-map@npm:0.5.7" @@ -10711,6 +13372,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"split2@npm:^4.0.0": + version: 4.1.0 + resolution: "split2@npm:4.1.0" + checksum: c02219211c6c55137977b729b44a22462386bf8878f61c9221ebb0347509ffeaf1285f93a9376e361e03f2c8969e83fff0c04745f56dcccdd30c65bec7db8084 + languageName: node + linkType: hard + "split@npm:^1.0.0": version: 1.0.1 resolution: "split@npm:1.0.1" @@ -10720,6 +13388,15 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"sponge-case@npm:^1.0.1": + version: 1.0.1 + resolution: "sponge-case@npm:1.0.1" + dependencies: + tslib: ^2.0.3 + checksum: dbe42f300ae9f7fbd83c40f71c2a61ecf9c86b927b5668bae067d1e516e314671cc85166f87017e51b56938409b1fc042719eb46a6d5bb30cc1cf23252a82761 + languageName: node + linkType: hard + "sprintf-js@npm:~1.0.2": version: 1.0.3 resolution: "sprintf-js@npm:1.0.3" @@ -10773,6 +13450,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"stream-shift@npm:^1.0.0": + version: 1.0.1 + resolution: "stream-shift@npm:1.0.1" + checksum: b63a0d178cde34b920ad93e2c0c9395b840f408d36803b07c61416edac80ef9e480a51910e0ceea0d679cec90921bcd2cccab020d3a9fa6c73a98b0fbec132fd + languageName: node + linkType: hard + "strict-event-emitter@npm:^0.2.0": version: 0.2.0 resolution: "strict-event-emitter@npm:0.2.0" @@ -10789,6 +13473,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"string-env-interpolation@npm:1.0.1, string-env-interpolation@npm:^1.0.1": + version: 1.0.1 + resolution: "string-env-interpolation@npm:1.0.1" + checksum: 410046e621e71678e71816377d799b40ba88d236708c0ad015114137fa3575f1b3cf14bfd63ec5eaa35ea43ac582308e60a8e1a3839a10f475b8db73470105bc + languageName: node + linkType: hard + "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -10820,7 +13511,7 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": +"string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -10831,7 +13522,7 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.5": +"string.prototype.matchall@npm:^4.0.6": version: 4.0.6 resolution: "string.prototype.matchall@npm:4.0.6" dependencies: @@ -10976,6 +13667,28 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"subscriptions-transport-ws@npm:^0.11.0": + version: 0.11.0 + resolution: "subscriptions-transport-ws@npm:0.11.0" + dependencies: + backo2: ^1.0.2 + eventemitter3: ^3.1.0 + iterall: ^1.2.1 + symbol-observable: ^1.0.4 + ws: ^5.2.0 || ^6.0.0 || ^7.0.0 + peerDependencies: + graphql: ^15.7.2 || ^16.0.0 + checksum: 697441333e59b6932bff51212e29f8dcac477badb067971bd94c30c5f3f7a2e2ea72fb1a21f3c1abbf32774da01515aa24739e620be45f6d576784bd96fd10da + languageName: node + linkType: hard + +"supports-color@npm:^2.0.0": + version: 2.0.0 + resolution: "supports-color@npm:2.0.0" + checksum: 570e0b63be36cccdd25186350a6cb2eaad332a95ff162fa06d9499982315f2fe4217e69dd98e862fbcd9c81eaff300a825a1fe7bf5cc752e5b84dfed042b0dda + languageName: node + linkType: hard + "supports-color@npm:^5.3.0, supports-color@npm:^5.5.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -11013,6 +13726,22 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"swap-case@npm:^2.0.2": + version: 2.0.2 + resolution: "swap-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 6a47c1926e06395ead750905e103be388aeec8c9697f20b14bc3e1e86fcb4fc78e5033197afe6cc8bbed80f0a4ee1f184b0fa22eec7f4a767bdfd278683d52eb + languageName: node + linkType: hard + +"symbol-observable@npm:^1.0.4, symbol-observable@npm:^1.1.0": + version: 1.2.0 + resolution: "symbol-observable@npm:1.2.0" + checksum: 009fee50798ef80ed4b8195048288f108b03de162db07493f2e1fd993b33fafa72d659e832b584da5a2427daa78e5a738fb2a9ab027ee9454252e0bedbcd1fdc + languageName: node + linkType: hard + "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" @@ -11020,17 +13749,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"table@npm:^6.0.9": - version: 6.7.2 - resolution: "table@npm:6.7.2" +"sync-fetch@npm:0.3.1": + version: 0.3.1 + resolution: "sync-fetch@npm:0.3.1" dependencies: - ajv: ^8.0.1 - lodash.clonedeep: ^4.5.0 - lodash.truncate: ^4.4.2 - slice-ansi: ^4.0.0 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - checksum: e3ca1d79e133f6b65bf88f363b3a32ed0a6d0e7a95d4caba5332bbf928deee3daa830840abe86e0af780d1af797d825fc4853b900beb8e2ac7928d28553f5cd3 + buffer: ^5.7.0 + node-fetch: ^2.6.1 + checksum: 757d534e57f79420872a8fa71f335fd526150328cccd31db32631e0397fdd56450b3f5acf8e66b177c57ac4233d2536ab0aabef8c7e0802b46dfeef9c0d87b6a languageName: node linkType: hard @@ -11118,6 +13843,15 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"thread-stream@npm:^0.13.0": + version: 0.13.0 + resolution: "thread-stream@npm:0.13.0" + dependencies: + real-require: ^0.1.0 + checksum: 5a2b550083efbca713eea4a99f89be2ba9e09df4bd477fee622220c60bff858e03c4b28ffa9dc176988f00e268fcda790d612996cbe7d7afdc44517f17a840bf + languageName: node + linkType: hard + "throat@npm:^6.0.1": version: 6.0.1 resolution: "throat@npm:6.0.1" @@ -11151,6 +13885,22 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"tiny-lru@npm:7.0.6": + version: 7.0.6 + resolution: "tiny-lru@npm:7.0.6" + checksum: bf155e9f8eb85b32f5bdbaad6040e152ace4611267d000fda17af3c831f950b5a77065b185da57469e45c5d8c7a7c4f54b597d2c03c9f31be6e4fa7ea574153c + languageName: node + linkType: hard + +"title-case@npm:^3.0.3": + version: 3.0.3 + resolution: "title-case@npm:3.0.3" + dependencies: + tslib: ^2.0.3 + checksum: face56f686060f777b43a180d371407124d201eb4238c19d9e97030fd54859696ca4e2ca499cc232f8700f24f2414cc08aab9fdf6d39acff055dd825a4d86d6a + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -11190,6 +13940,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"toml@npm:3.0.0": + version: 3.0.0 + resolution: "toml@npm:3.0.0" + checksum: 8d7ed3e700ca602e5419fca343e1c595eb7aa177745141f0761a5b20874b58ee5c878cd045c408da9d130cb2b611c639912210ba96ce2f78e443569aa8060c18 + languageName: node + linkType: hard + "touch@npm:^3.1.0": version: 3.1.0 resolution: "touch@npm:3.1.0" @@ -11245,6 +14002,34 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"ts-log@npm:^2.2.3": + version: 2.2.4 + resolution: "ts-log@npm:2.2.4" + checksum: fd8644554d8095a2106bc312c192fb7bf0bb7a82d0306862124c82b5f3d09af4b1464ada5883c57220c1f717f66c91e239276d1122e3f96c0ae3a4431dba44a7 + languageName: node + linkType: hard + +"ts-node@npm:^9": + version: 9.1.1 + resolution: "ts-node@npm:9.1.1" + dependencies: + arg: ^4.1.0 + create-require: ^1.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + source-map-support: ^0.5.17 + yn: 3.1.1 + peerDependencies: + typescript: ">=2.7" + bin: + ts-node: dist/bin.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: e0f904090aba4b3496fdfca640cfd92c1f5a41fa303b0ccb40f49be160699687a97a4dd5f57200646a3b83528952611d1c5ad5804ee25f338b017e7b1c13f0f4 + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.11.0": version: 3.11.0 resolution: "tsconfig-paths@npm:3.11.0" @@ -11264,6 +14049,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"tslib@npm:^2, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:~2.3.0": + version: 2.3.1 + resolution: "tslib@npm:2.3.1" + checksum: 4efd888895bdb3b987086b2b7793ad1013566f882b0eb7a328384e5ecc0d71cafb16bbeab3196200cbf7f01a73ccc25acc2f131d4ea6ee959be7436a8a306482 + languageName: node + linkType: hard + "tslib@npm:~2.1.0": version: 2.1.0 resolution: "tslib@npm:2.1.0" @@ -11399,23 +14191,30 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -typescript@4.4.4: - version: 4.4.4 - resolution: "typescript@npm:4.4.4" +typescript@4.5.2: + version: 4.5.2 + resolution: "typescript@npm:4.5.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 7cd160bbfdf99404238c296db0d56352c7e1d57e367f02640ca36f254f3fa47f74bfc76615e0010c2688a443d9e7403e2d26c79d98ab450d924b17c950732486 + checksum: 8fc40b886018889ad2099cb1b477c4f0373528c9fca83860ad33e898fe19ada22568477aca91741fbeabf0402e203f0e2d6d14ed6973ad826893cc13b2dfd459 languageName: node linkType: hard -"typescript@patch:typescript@4.4.4#~builtin": - version: 4.4.4 - resolution: "typescript@patch:typescript@npm%3A4.4.4#~builtin::version=4.4.4&hash=32657b" +"typescript@patch:typescript@4.5.2#~builtin": + version: 4.5.2 + resolution: "typescript@patch:typescript@npm%3A4.5.2#~builtin::version=4.5.2&hash=32657b" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d0125d91e03306a8e40092b036c6cebd3ff3b730f1c01f1c76c44d4a263fe18d5ef5b1c2e98afe0f6704c2c4ca6416c60f7108eff9f53c4b75cbf9b07588fed7 + checksum: b8334138fd39de72b3a235bec4bf1ab4bc5d62de0cbcbfbbd5ff22b6e77ec5430213c0bcf7251246f007bb00d752b8b48f736a5de85f7c49d7038cca59387e25 + languageName: node + linkType: hard + +"ua-parser-js@npm:^0.7.30": + version: 0.7.31 + resolution: "ua-parser-js@npm:0.7.31" + checksum: 22ea7a73db4528f4b8c5e9ed3d711dfc005f9efa5e6f803e5b78bf358c1d81baaed2699fc1f35252a316f64f3fdf730919fa97e7cc1ae66d3011bd515a4a0f30 languageName: node linkType: hard @@ -11454,12 +14253,24 @@ typescript@4.4.4: languageName: node linkType: hard -"undefsafe@npm:^2.0.3": - version: 2.0.3 - resolution: "undefsafe@npm:2.0.3" - dependencies: - debug: ^2.2.0 - checksum: 3fec716e1fc8b6bda7589b77d247387b55371c2e46d6c60bfa49388f95c2dc501129e94d30713b5871aba0cfbe467500702e125fcca0a2ee96033ef3e2c27555 +"unc-path-regex@npm:^0.1.2": + version: 0.1.2 + resolution: "unc-path-regex@npm:0.1.2" + checksum: bf9c781c4e2f38e6613ea17a51072e4b416840fbe6eeb244597ce9b028fac2fb6cfd3dde1f14111b02c245e665dc461aab8168ecc30b14364d02caa37f812996 + languageName: node + linkType: hard + +"undefsafe@npm:^2.0.5": + version: 2.0.5 + resolution: "undefsafe@npm:2.0.5" + checksum: 96c0466a5fbf395917974a921d5d4eee67bca4b30d3a31ce7e621e0228c479cf893e783a109af6e14329b52fe2f0cb4108665fad2b87b0018c0df6ac771261d5 + languageName: node + linkType: hard + +"undici@npm:^4.9.3": + version: 4.10.3 + resolution: "undici@npm:4.10.3" + checksum: e72dcbdfb69ebd513e99a7c06ea404c61658121fb011c80dd2a2b3d5a5ebba7ca68c1572527f974b4d33588fca988853ea17db60976d9d3f7a6a7021fa5af482 languageName: node linkType: hard @@ -11542,6 +14353,15 @@ typescript@4.4.4: languageName: node linkType: hard +"unixify@npm:^1.0.0": + version: 1.0.0 + resolution: "unixify@npm:1.0.0" + dependencies: + normalize-path: ^2.1.1 + checksum: 8b89100619ebde9f0ab4024a4d402316fb7b1d4853723410fc828944e8d3d01480f210cddf94d9a1699559f8180d861eb6323da8011b7bcc1bbaf6a11a5b1f1e + languageName: node + linkType: hard + "upath@npm:^2.0.1": version: 2.0.1 resolution: "upath@npm:2.0.1" @@ -11571,6 +14391,24 @@ typescript@4.4.4: languageName: node linkType: hard +"upper-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: ccad6a0b143310ebfba2b5841f30bef71246297385f1329c022c902b2b5fc5aee009faf1ac9da5ab3ba7f615b88f5dc1cd80461b18a8f38cb1d4c3eb92538ea9 + languageName: node + linkType: hard + +"upper-case@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 5ac176c9d3757abb71400df167f9abb46d63152d5797c630d1a9f083fbabd89711fb4b3dc6de06ff0138fe8946fa5b8518b4fcdae9ca8a3e341417075beae069 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -11605,6 +14443,15 @@ typescript@4.4.4: languageName: node linkType: hard +"uuid@npm:8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 + languageName: node + linkType: hard + "uuid@npm:^3.3.2": version: 3.4.0 resolution: "uuid@npm:3.4.0" @@ -11641,6 +14488,13 @@ typescript@4.4.4: languageName: node linkType: hard +"valid-url@npm:1.0.9, valid-url@npm:^1.0.9": + version: 1.0.9 + resolution: "valid-url@npm:1.0.9" + checksum: 3995e65f9942dbcb1621754c0f9790335cec61e9e9310c0a809e9ae0e2ae91bb7fc6a471fba788e979db0418d9806639f681ecebacc869bc8c3de88efa562ee6 + languageName: node + linkType: hard + "validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -11660,6 +14514,13 @@ typescript@4.4.4: languageName: node linkType: hard +"value-or-promise@npm:1.0.11": + version: 1.0.11 + resolution: "value-or-promise@npm:1.0.11" + checksum: 7499b744ae18729cfe5a2211a678a2e023859a49e2cd2f3e28da6f3d84ed94fe3167e828026f8a123927420f075cd69b927be5a5a50b1768ea5c53bf1e75a52f + languageName: node + linkType: hard + "verror@npm:1.10.0": version: 1.10.0 resolution: "verror@npm:1.10.0" @@ -11737,7 +14598,7 @@ typescript@4.4.4: languageName: node linkType: hard -"whatwg-fetch@npm:3.6.2": +"whatwg-fetch@npm:3.6.2, whatwg-fetch@npm:^3.4.1": version: 3.6.2 resolution: "whatwg-fetch@npm:3.6.2" checksum: cc10f6893fe71839250b6e2fa9bc293bcf0ca5b93129712a7d1097fb7528b3ff617eb065098dc972e74d1455378e514aa34c0901ded41584be16508db63477c8 @@ -11792,7 +14653,7 @@ typescript@4.4.4: languageName: node linkType: hard -"which@npm:^1.2.9, which@npm:^1.3.1": +"which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" dependencies: @@ -11856,6 +14717,27 @@ typescript@4.4.4: languageName: node linkType: hard +"wrap-ansi@npm:^3.0.1": + version: 3.0.1 + resolution: "wrap-ansi@npm:3.0.1" + dependencies: + string-width: ^2.1.1 + strip-ansi: ^4.0.0 + checksum: ad6fed8f242c26755badaf452da154122d0d862f8b7aab56e758466857f230efafdc5fbffca026650b947ac3fc0eb563df5c05b9e2190a52a4a68f4eef3d4555 + languageName: node + linkType: hard + +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c + languageName: node + linkType: hard + "wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -11936,6 +14818,36 @@ typescript@4.4.4: languageName: node linkType: hard +"ws@npm:8.3.0": + version: 8.3.0 + resolution: "ws@npm:8.3.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 3e9d2faf128435f0b8ab272d731d8460c6c23d126503a920f14f81f9ae4a213624bfc2ca79e891b87ae84fe45b187754048df93b46c3ce55f8501528790380ee + languageName: node + linkType: hard + +"ws@npm:^5.2.0 || ^6.0.0 || ^7.0.0": + version: 7.5.6 + resolution: "ws@npm:7.5.6" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: ac36216d666c2404910a5efed88fc02ef75f939434e9533ca5a0541b98454e42d831d20b77e23d9e3b7761a167a10869a39df92ab73c336678293fe2b0a9b753 + languageName: node + linkType: hard + "ws@npm:^7.4.6": version: 7.5.5 resolution: "ws@npm:7.5.5" @@ -11972,6 +14884,18 @@ typescript@4.4.4: languageName: node linkType: hard +"xss@npm:^1.0.6": + version: 1.0.10 + resolution: "xss@npm:1.0.10" + dependencies: + commander: ^2.20.3 + cssfilter: 0.0.10 + bin: + xss: bin/xss + checksum: 959bd06ef802c553fb6133bbc70de837c996202cfc292d230aedfaa1bc0c67729b913d884028ae4b1ea0a7566d35b6cadeeb7f73066f97af01596077ae12d066 + languageName: node + linkType: hard + "xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" @@ -11979,7 +14903,7 @@ typescript@4.4.4: languageName: node linkType: hard -"y18n@npm:^3.2.1 || ^4.0.0": +"y18n@npm:^3.2.1 || ^4.0.0, y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" checksum: 308a2efd7cc296ab2c0f3b9284fd4827be01cfeb647b3ba18230e3a416eb1bc887ac050de9f8c4fd9e7856b2e8246e05d190b53c96c5ad8d8cb56dffb6f81024 @@ -11993,6 +14917,13 @@ typescript@4.4.4: languageName: node linkType: hard +"yallist@npm:^2.0.0": + version: 2.1.2 + resolution: "yallist@npm:2.1.2" + checksum: 0b9e25aa00adf19e01d2bcd4b208aee2b0db643d9927131797b7af5ff69480fc80f1c3db738cbf3946f0bddf39d8f2d0a5709c644fd42d4aa3a4e6e786c087b5 + languageName: node + linkType: hard + "yallist@npm:^3.0.0, yallist@npm:^3.1.1": version: 3.1.1 resolution: "yallist@npm:3.1.1" @@ -12007,6 +14938,13 @@ typescript@4.4.4: languageName: node linkType: hard +"yaml-ast-parser@npm:^0.0.43": + version: 0.0.43 + resolution: "yaml-ast-parser@npm:0.0.43" + checksum: 4d2f1e761067b2c6abdd882279a406f879258787af470a6d4a659cb79cb2ab056b870b25f1f80f46ed556e8b499d611d247806376f53edf3412f72c0a8ea2e98 + languageName: node + linkType: hard + "yaml@npm:^1.10.0": version: 1.10.2 resolution: "yaml@npm:1.10.2" @@ -12031,6 +14969,16 @@ typescript@4.4.4: languageName: node linkType: hard +"yargs-parser@npm:^18.1.2": + version: 18.1.3 + resolution: "yargs-parser@npm:18.1.3" + dependencies: + camelcase: ^5.0.0 + decamelize: ^1.2.0 + checksum: 25df918833592a83f52e7e4f91ba7d7bfaa2b891ebf7fe901923c2ee797534f23a176913ff6ff7ebbc1cc1725a044cc6a6539fed8bfd4e13b5b16376875f9499 + languageName: node + linkType: hard + "yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" @@ -12058,6 +15006,25 @@ typescript@4.4.4: languageName: node linkType: hard +"yargs@npm:^15.3.1": + version: 15.4.1 + resolution: "yargs@npm:15.4.1" + dependencies: + cliui: ^6.0.0 + decamelize: ^1.2.0 + find-up: ^4.1.0 + get-caller-file: ^2.0.1 + require-directory: ^2.1.1 + require-main-filename: ^2.0.0 + set-blocking: ^2.0.0 + string-width: ^4.2.0 + which-module: ^2.0.0 + y18n: ^4.0.0 + yargs-parser: ^18.1.2 + checksum: f1ca680c974333a5822732825cca7e95306c5a1e7750eb7b973ce6dc4f97a6b0a8837203c8b194f461969bfe1fb1176d1d423036635285f6010b392fa498ab2d + languageName: node + linkType: hard + "yargs@npm:^16.2.0": version: 16.2.0 resolution: "yargs@npm:16.2.0" @@ -12073,7 +15040,7 @@ typescript@4.4.4: languageName: node linkType: hard -"yargs@npm:^17.0.1": +"yargs@npm:^17.0.0, yargs@npm:^17.0.1": version: 17.2.1 resolution: "yargs@npm:17.2.1" dependencies: @@ -12087,3 +15054,17 @@ typescript@4.4.4: checksum: 58138da2a00974f2eb2d1968c5bc067029e7744814972190dab1f3d25d235c92839547118996b54cb1afd121dabb09d030f0030c68a5534becf72366a4d76767 languageName: node linkType: hard + +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f + languageName: node + linkType: hard diff --git a/tasks/release-notes/package.json b/tasks/release-notes/package.json index 27165ea64566..a4d3bf5e7d9e 100644 --- a/tasks/release-notes/package.json +++ b/tasks/release-notes/package.json @@ -4,6 +4,6 @@ "main": "index.js", "license": "MIT", "dependencies": { - "octokit": "1.7.0" + "octokit": "1.7.1" } } diff --git a/tasks/release-notes/yarn.lock b/tasks/release-notes/yarn.lock index 1da54b99f7dd..68dfd2c31a00 100644 --- a/tasks/release-notes/yarn.lock +++ b/tasks/release-notes/yarn.lock @@ -571,9 +571,9 @@ __metadata: languageName: node linkType: hard -"octokit@npm:1.7.0": - version: 1.7.0 - resolution: "octokit@npm:1.7.0" +"octokit@npm:1.7.1": + version: 1.7.1 + resolution: "octokit@npm:1.7.1" dependencies: "@octokit/app": ^12.0.4 "@octokit/core": ^3.5.1 @@ -583,7 +583,7 @@ __metadata: "@octokit/plugin-retry": ^3.0.9 "@octokit/plugin-throttling": ^3.5.1 "@octokit/types": ^6.26.0 - checksum: 57a4770594b9ffda4832ab7080c45884d8906937e216b83e0a789168c423fb3cb2d23ea201fee0f885c749ad4d66b5f3f45d6106779d77e793a7ebf9082a16f7 + checksum: e1ce2d583a0795cf10999d2452f15fb02b5efce31044a7827d5efc34419c2909dd56c6c8f79347907f827e5646e35e63ec65d4327db4f999b278269eced33e2b languageName: node linkType: hard @@ -600,7 +600,7 @@ __metadata: version: 0.0.0-use.local resolution: "release-notes@workspace:." dependencies: - octokit: 1.7.0 + octokit: 1.7.1 languageName: unknown linkType: soft diff --git a/tasks/test-project/tasks.js b/tasks/test-project/tasks.js index 187987ec0782..ab0dd907028c 100644 --- a/tasks/test-project/tasks.js +++ b/tasks/test-project/tasks.js @@ -174,7 +174,7 @@ async function webTasks(outputPath, { link, verbose }) { title: 'Adding Tailwind', task: () => { return execa( - 'yarn rw setup tailwind', + 'yarn rw setup ui tailwindcss', ['--force', link && '--no-install'].filter(Boolean), execaOptions ) diff --git a/yarn.lock b/yarn.lock index 2cff652d8371..c60563e7e1e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,9 +5,9 @@ __metadata: version: 4 cacheKey: 8c0 -"@apollo/client@npm:3.4.16": - version: 3.4.16 - resolution: "@apollo/client@npm:3.4.16" +"@apollo/client@npm:3.5.5": + version: 3.5.5 + resolution: "@apollo/client@npm:3.5.5" dependencies: "@graphql-typed-document-node/core": ^3.0.0 "@wry/context": ^0.6.0 @@ -20,24 +20,17 @@ __metadata: symbol-observable: ^4.0.0 ts-invariant: ^0.9.0 tslib: ^2.3.0 - zen-observable-ts: ~1.1.0 + zen-observable-ts: ^1.2.0 peerDependencies: - graphql: ^14.0.0 || ^15.0.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 react: ^16.8.0 || ^17.0.0 - subscriptions-transport-ws: ^0.9.0 + subscriptions-transport-ws: ^0.9.0 || ^0.11.0 peerDependenciesMeta: react: optional: true subscriptions-transport-ws: optional: true - checksum: 090a1f639ef5c853cdb2c9a08799eef35b933e7c4e0729c02747762c48c7e0b882e5baaed2a8fc554907559124870f996e99857b85fe6837e4c63cc87cacb0d0 - languageName: node - linkType: hard - -"@ardatan/fetch-event-source@npm:2.0.2": - version: 2.0.2 - resolution: "@ardatan/fetch-event-source@npm:2.0.2" - checksum: 8708230001f3f8c986ce65dafba3890e6a2e322485f68aa8ac113036547c8cea7cad6ff0e3c19d2779334ad7ac43889e9c56f7628b79df20c473ce50a1642e32 + checksum: 7e14e2c3092e71a315e8a3de7be315f20744e0d8230cdcfa646ffde656262f0b7c1d163ed78c5a2aa56ba189707da0c7ebc1adaaf59ecd4c8131f80e5da12e26 languageName: node linkType: hard @@ -56,27 +49,27 @@ __metadata: languageName: node linkType: hard -"@azure/msal-browser@npm:2.18.0": - version: 2.18.0 - resolution: "@azure/msal-browser@npm:2.18.0" +"@azure/msal-browser@npm:2.19.0": + version: 2.19.0 + resolution: "@azure/msal-browser@npm:2.19.0" dependencies: - "@azure/msal-common": ^5.0.1 - checksum: 9c4f3c9dcfa4a24e0428c5babd22d1af96c1a10e969aa607ed2edc42449f39090b0d5c927352ee0dd1bd597adf0cfa0d7d140e31f6c2969084517aae0081937c + "@azure/msal-common": ^5.1.0 + checksum: 5c024cdf3ec73e9aa64e8e69894e5036ad3ec6366f0a541bf9a037db014fe248b5563cb62bbab00f2335f38593cee31884cfe2892d899c403bf2b382bed569ca languageName: node linkType: hard -"@azure/msal-common@npm:^5.0.1": - version: 5.0.1 - resolution: "@azure/msal-common@npm:5.0.1" +"@azure/msal-common@npm:^5.1.0": + version: 5.1.0 + resolution: "@azure/msal-common@npm:5.1.0" dependencies: debug: ^4.1.1 - checksum: 05676f14d5e7b5cd9e996b6b773644aa081949f3f82cba47b42ecb8e71a686bf6563de1254d6566832ba7bd5bf5bce3221cc3a1078b303a5abc19dd35a3455c3 + checksum: d318f5282b940303ddc45fadacb8cb79f19abd12e0ab25ab8e556e29eb7574ca98300d8c82f2116b47195c9e05de634ee3885c53c584389a85d52244499bbcf2 languageName: node linkType: hard -"@babel/cli@npm:7.15.7": - version: 7.15.7 - resolution: "@babel/cli@npm:7.15.7" +"@babel/cli@npm:7.16.0": + version: 7.16.0 + resolution: "@babel/cli@npm:7.16.0" dependencies: "@nicolo-ribaudo/chokidar-2": 2.1.8-no-fsevents.3 chokidar: ^3.4.0 @@ -97,7 +90,7 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 9ba2db4d0bb172d1ec2625757b2c7733cee4fc722af9a2d878745fc81e12331cacc26a8c6a938cf249c5b6a32f2902bc26345d7914c3fbb25d818e683c347be3 + checksum: c03ae9a0839d0995a712087d6c17ac4445ee090f70676f2ed0099ef1f2ce2dd55fc065a3326d6f4d553b18711bc919d43e7dfe0ac5fe8a02cb27a0fc52ded50b languageName: node linkType: hard @@ -110,28 +103,19 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:7.12.11": - version: 7.12.11 - resolution: "@babel/code-frame@npm:7.12.11" - dependencies: - "@babel/highlight": ^7.10.4 - checksum: 836ffd155506768e991d6dd8c51db37cad5958ed1c8e0a2329ccd9527165d5c752e943d66a5c3c92ffd45f343419f0742e7636629a529f4fbd5303e3637746b9 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.14.5, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.5.5, @babel/code-frame@npm:^7.8.3": - version: 7.15.8 - resolution: "@babel/code-frame@npm:7.15.8" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.14.5, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.5.5, @babel/code-frame@npm:^7.8.3": + version: 7.16.0 + resolution: "@babel/code-frame@npm:7.16.0" dependencies: - "@babel/highlight": ^7.14.5 - checksum: ba2427bf700fd8a263069e99839125c527f48c6566348416fadfc821a362260653dc3601f6bc9fb86852e4e31526a4f50d930e7a4af417feab72c3844263d2b6 + "@babel/highlight": ^7.16.0 + checksum: 12e111dcbb568a2b625969f4021eb46845e752eb8d2637f00f9e04e4f2216572f5c38d6f278d201b8b6fadd56a855e012c97734c90fabf680783b1ff13dc6a98 languageName: node linkType: hard -"@babel/compat-data@npm:^7.13.11, @babel/compat-data@npm:^7.15.0": - version: 7.15.0 - resolution: "@babel/compat-data@npm:7.15.0" - checksum: 2b709dddd224be81b9ab2bd8b5b218e5b94ce7678fc04144c98bd0a769df2ee13738ea5f639d585d3847897e208e03e919750fa6b208c32bfeba5f9fe67cec9c +"@babel/compat-data@npm:^7.13.11, @babel/compat-data@npm:^7.16.0, @babel/compat-data@npm:^7.16.4": + version: 7.16.4 + resolution: "@babel/compat-data@npm:7.16.4" + checksum: 2b4acf1353e183954d3ed4b6a0493d6077bdd3c447d6987c8b955c18c7d99a9159318430d1b6565257d4ddcaf8b1e9c85124bd73863c603b083755efe4a6f152 languageName: node linkType: hard @@ -159,40 +143,40 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.15.8, @babel/core@npm:^7.0.0, @babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.9, @babel/core@npm:^7.13.16, @babel/core@npm:^7.7.2, @babel/core@npm:^7.7.5": - version: 7.15.8 - resolution: "@babel/core@npm:7.15.8" +"@babel/core@npm:7.16.0, @babel/core@npm:^7.0.0, @babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.9, @babel/core@npm:^7.13.16, @babel/core@npm:^7.7.2, @babel/core@npm:^7.7.5": + version: 7.16.0 + resolution: "@babel/core@npm:7.16.0" dependencies: - "@babel/code-frame": ^7.15.8 - "@babel/generator": ^7.15.8 - "@babel/helper-compilation-targets": ^7.15.4 - "@babel/helper-module-transforms": ^7.15.8 - "@babel/helpers": ^7.15.4 - "@babel/parser": ^7.15.8 - "@babel/template": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.6 + "@babel/code-frame": ^7.16.0 + "@babel/generator": ^7.16.0 + "@babel/helper-compilation-targets": ^7.16.0 + "@babel/helper-module-transforms": ^7.16.0 + "@babel/helpers": ^7.16.0 + "@babel/parser": ^7.16.0 + "@babel/template": ^7.16.0 + "@babel/traverse": ^7.16.0 + "@babel/types": ^7.16.0 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.1.2 semver: ^6.3.0 source-map: ^0.5.0 - checksum: b76ad15b139b6978e4315caa0a85e4cc1991822b083ce5801c7017472e55284ca9c7393ecb6c25b64f06194f4135ee0e662bd76c05799c08d03bf9e1ef8e4ff6 + checksum: ce3526f15cc9c51f12f1fa311fdd32574a7c938aa1aad02e0dff45f1ef07b4a3c2fb74163b9bdbfe3bf8081fde19cceab6409d5c461478731ecccf2e1581b244 languageName: node linkType: hard -"@babel/eslint-parser@npm:7.15.8": - version: 7.15.8 - resolution: "@babel/eslint-parser@npm:7.15.8" +"@babel/eslint-parser@npm:7.16.3": + version: 7.16.3 + resolution: "@babel/eslint-parser@npm:7.16.3" dependencies: eslint-scope: ^5.1.1 eslint-visitor-keys: ^2.1.0 semver: ^6.3.0 peerDependencies: "@babel/core": ">=7.11.0" - eslint: ">=7.5.0" - checksum: 2ef2a68ca166327664ebb2f196c64679cb080201cad10f50780115b3ba51bfde002e6fed6e1e3acd96fabd1d90f1ffd4ed05814e6aaf14b85686104af7e54310 + eslint: ^7.5.0 || ^8.0.0 + checksum: 723b905420acd4c3b4a4b95dd0bba6654698c945cdf2ebf762721c14a834b9adfcfdb48a69a46135a59f7353995eb4c960b2d9f67c181e058c7d3cb1d3b51cec languageName: node linkType: hard @@ -208,75 +192,75 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.12.5, @babel/generator@npm:^7.15.4, @babel/generator@npm:^7.15.8, @babel/generator@npm:^7.5.0, @babel/generator@npm:^7.7.2": - version: 7.15.8 - resolution: "@babel/generator@npm:7.15.8" +"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.12.5, @babel/generator@npm:^7.15.4, @babel/generator@npm:^7.16.0, @babel/generator@npm:^7.5.0, @babel/generator@npm:^7.7.2": + version: 7.16.0 + resolution: "@babel/generator@npm:7.16.0" dependencies: - "@babel/types": ^7.15.6 + "@babel/types": ^7.16.0 jsesc: ^2.5.1 source-map: ^0.5.0 - checksum: e6d66820f5ef6f6911c2845a9188b7c4fb9019e1d12035b27b29d3b6266247d3993ed367cc5d341600b87a9f69f4138227124f69c47afc8b9837de855d6d1db3 + checksum: 377f8055f1aa780a566014278b59beb0c554553d253e2be876e3f10c39eee066747690699498d0ed016e441f5285c7aaa156ba029bb13439a5e06988cfd43653 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.14.5, @babel/helper-annotate-as-pure@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-annotate-as-pure@npm:7.15.4" +"@babel/helper-annotate-as-pure@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-annotate-as-pure@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: f2000869d477847c8f634902de4e49a26e809766ce82f5664267b5bc254c4430e25a7ccbdee6d7c87fa2934e1531b3b6208cfc3e82aa5199fcb386f4163289e8 + "@babel/types": ^7.16.0 + checksum: 91e665af6bf7199d68b39d68ab3583fb7e9acb7a1f88cc2924b256d48c0015c71934923a549b1065d3f8e8f9652b65b3b0205ba6412c405cf0c33bb80af30797 languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.14.5": - version: 7.15.4 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.15.4" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.16.0" dependencies: - "@babel/helper-explode-assignable-expression": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: b83bd4e43defec96dad356fd0bb56c12abb61b7d3158e9fe2717b6dc27f086ac670e23c0c41703ffc96c7346b85fad134c7c4f079497f447d0d46d007950b698 + "@babel/helper-explode-assignable-expression": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 994c18dda5e1811e579c1136af2898c78794dae161665bae1bc720811779a5a40a93cf0051606f9120b97031c2048cbe7ab8db575a220acacb979783168fe98d languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.13.0, @babel/helper-compilation-targets@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-compilation-targets@npm:7.15.4" +"@babel/helper-compilation-targets@npm:^7.13.0, @babel/helper-compilation-targets@npm:^7.16.0, @babel/helper-compilation-targets@npm:^7.16.3": + version: 7.16.3 + resolution: "@babel/helper-compilation-targets@npm:7.16.3" dependencies: - "@babel/compat-data": ^7.15.0 + "@babel/compat-data": ^7.16.0 "@babel/helper-validator-option": ^7.14.5 - browserslist: ^4.16.6 + browserslist: ^4.17.5 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 204fd2a957ba92b1963aa49b5a1ae001348c9bbe79a66c04642d946fa061647f8099a2ab49b3b68c65907f883b6851b780e126ff611cb813608c47a16064fc05 + checksum: 33626de16c9bf0b6f112eab84f04e8c2e8bc7fa8dd1c99b6153a8375d859a05d06645e62c0ebaf9738ceb3e7ae5f6b72bcf9d9adea1065a66674b5e5f4afa643 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.14.5, @babel/helper-create-class-features-plugin@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.15.4" +"@babel/helper-create-class-features-plugin@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-create-class-features-plugin@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.15.4 - "@babel/helper-function-name": ^7.15.4 - "@babel/helper-member-expression-to-functions": ^7.15.4 - "@babel/helper-optimise-call-expression": ^7.15.4 - "@babel/helper-replace-supers": ^7.15.4 - "@babel/helper-split-export-declaration": ^7.15.4 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-function-name": ^7.16.0 + "@babel/helper-member-expression-to-functions": ^7.16.0 + "@babel/helper-optimise-call-expression": ^7.16.0 + "@babel/helper-replace-supers": ^7.16.0 + "@babel/helper-split-export-declaration": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: dd00e50d323bc94689de3492a549ecbfa2dd2754025f3ce6f9cadc3b37b2060d63ad422b83edf2e1271304a6abf91092c59af8e257a87bcbb2dbf8d815374f51 + checksum: d84e8c1615bcadd3bb6379f16817a7c7441b2f14771af0232604ae9761c4ce38ef0155db9839bce3a7ea46b74280ee96f5058678adbe727425ea7f2c9eaf12c4 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.14.5" +"@babel/helper-create-regexp-features-plugin@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.14.5 + "@babel/helper-annotate-as-pure": ^7.16.0 regexpu-core: ^4.7.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 19e45c0a8cd1836878685f4be53503c5892127c640609a24c67ccc7850cb4a28668abc2d55752cf57ada856d416b21553173c736dfe04b6b16e2472295e99e35 + checksum: 67d6f8c86ed9f948c338fcbb4b2c91f0fb6b67595379b0a148666ac628896f10043ec78b252162c645fe344ebe9ed93818cdd65d0a650a1fae4776fcd4b05520 languageName: node linkType: hard @@ -298,9 +282,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.2.2": - version: 0.2.3 - resolution: "@babel/helper-define-polyfill-provider@npm:0.2.3" +"@babel/helper-define-polyfill-provider@npm:^0.3.0": + version: 0.3.0 + resolution: "@babel/helper-define-polyfill-provider@npm:0.3.0" dependencies: "@babel/helper-compilation-targets": ^7.13.0 "@babel/helper-module-imports": ^7.12.13 @@ -312,88 +296,88 @@ __metadata: semver: ^6.1.2 peerDependencies: "@babel/core": ^7.4.0-0 - checksum: 4070639e48e397d05efbb147c305b0a7a7bfb8004b65b2a18d33b55b4d3366f7494e398af9fd026687fefc78d39d34cd7ba3ddcb24b6acf5e11dfeea14998e9a + checksum: 59135ecb144646f2d3c1ceaf38a855200f0ec53d9069deee30bdb2a7971027bde771ba0f87e564119a6d8fcb09673245c15dce89dc8c182a79088b7b80c2915d languageName: node linkType: hard -"@babel/helper-explode-assignable-expression@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-explode-assignable-expression@npm:7.15.4" +"@babel/helper-explode-assignable-expression@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-explode-assignable-expression@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: fdcbe26935597e494e9de7ee5b40e446a831a02104634ebff4c6ddf188f68dd24227bc8457bafd649740d56a8a78a347781af5ecb4e86a2e8db63402324bae83 + "@babel/types": ^7.16.0 + checksum: 9821d4a292b23976c5adce031cde82adf726515d6d6b6cdca7a9ed4aa00c6fc8ccd8b580a2db80a8dec96541ffd374f2f5bf8ca3c90e5cdb0a6d8338103c6efd languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.14.5, @babel/helper-function-name@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-function-name@npm:7.15.4" +"@babel/helper-function-name@npm:^7.15.4, @babel/helper-function-name@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-function-name@npm:7.16.0" dependencies: - "@babel/helper-get-function-arity": ^7.15.4 - "@babel/template": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 1178ca22828a9b3c905ee28235a7ad9da2417e514cfce0bb87ebbcfb18c10fe39e63f08896bb409a4218ec887c7280749cb6a3eece9e8ef86335707682db70bc + "@babel/helper-get-function-arity": ^7.16.0 + "@babel/template": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: ffaade6be3840364d77f0ad4515c715b1787c47f4631e69de0c204a314a00862a6dc8e37d1baadbdeeb9d8bae9d943b235ae0303d3cd095bc740cf3aa8794e92 languageName: node linkType: hard -"@babel/helper-get-function-arity@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-get-function-arity@npm:7.15.4" +"@babel/helper-get-function-arity@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-get-function-arity@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 320ae961ce693993913553bc6645c98c12b3aa14fdd805ee8cc2f5f47ae19fde7c1ba0a889501e99196a20a930d3b3a8eb016222b148b2029dc9c5d15748a7c1 + "@babel/types": ^7.16.0 + checksum: a37fe88007b10fc2bc62b610ed1943cfd7bfb90b8321c87bd4d6dae583df04cbafc2ee58d237ebc2580cd0ffa05369f1063e3f9d51c494e821dea287a0a4911e languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-hoist-variables@npm:7.15.4" +"@babel/helper-hoist-variables@npm:^7.15.4, @babel/helper-hoist-variables@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-hoist-variables@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 933a923e4d7ed587b60793d7335c9ed3b531c2e978475c25ad9c44c3ccca382caa6820f1b6331af5c1bd0746edeed5fdd1b0df3144c7566ec0ca90506f89d03e + "@babel/types": ^7.16.0 + checksum: 0f4ada53a9901981825c73e305c04674c958b0ec367e0aef0221ec865b3620e8743f2cf3f5c29530181ee86f3b10d0e113a0e8c9e283ea7f2709134684383b1f languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-member-expression-to-functions@npm:7.15.4" +"@babel/helper-member-expression-to-functions@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 529f26af314fa20b0ae60006a803253ef2924b4320ebebf42d80fa1aa8bd958367526eb3d28b8c62875e46bef0bdae14bdc249c457283c53ce0e4193aa132317 + "@babel/types": ^7.16.0 + checksum: 0c0f623117fff2a747f52d518351c2a75dc0fa2c0864eec2735fda9cb8fd6fc1f0fa070fe3b7a448099c0dd955a1e16574077a820b33ee32a4e6ef8de302857e languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.14.5, @babel/helper-module-imports@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-module-imports@npm:7.15.4" +"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-module-imports@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: cb4721068f9e63c3031835927c93a7adf9b496391cef0a312f50ce2abb79934a45fe2da2196c541b0bb16ce47e5a9c5e5c535f042381b6852188caa442bfb3aa + "@babel/types": ^7.16.0 + checksum: 8d9e8c92e44f7c327e9cffd07825b488c49828ea7bd31bbfe1fb019233cab6600461a751af8b0d42340b4a3737108ba839d05fbd7ef0b716508c1c9133b93b89 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.12.1, @babel/helper-module-transforms@npm:^7.14.5, @babel/helper-module-transforms@npm:^7.15.4, @babel/helper-module-transforms@npm:^7.15.8": - version: 7.15.8 - resolution: "@babel/helper-module-transforms@npm:7.15.8" +"@babel/helper-module-transforms@npm:^7.12.1, @babel/helper-module-transforms@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-module-transforms@npm:7.16.0" dependencies: - "@babel/helper-module-imports": ^7.15.4 - "@babel/helper-replace-supers": ^7.15.4 - "@babel/helper-simple-access": ^7.15.4 - "@babel/helper-split-export-declaration": ^7.15.4 + "@babel/helper-module-imports": ^7.16.0 + "@babel/helper-replace-supers": ^7.16.0 + "@babel/helper-simple-access": ^7.16.0 + "@babel/helper-split-export-declaration": ^7.16.0 "@babel/helper-validator-identifier": ^7.15.7 - "@babel/template": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.6 - checksum: a2dd1894d155ef262961d1cf634248de66748a72e481655ee185b0a9f25e7680d2849cf1aaf7c9d54b284ae6717d4fd7c2b24fa9086fd1c2c29370f13c467636 + "@babel/template": ^7.16.0 + "@babel/traverse": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 6f88c1a6fd966676b2b306ade5acd877bad17d589c12e0945734c63a4462bd3a5babb999daea8463845e31abe92c9e297237a389c901e8d0fd7ad4a23821e70f languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-optimise-call-expression@npm:7.15.4" +"@babel/helper-optimise-call-expression@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-optimise-call-expression@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: fd89ea4b8280768740f4ba0ad6f163d2f05a037fc103707c0b370e69661bb329166905caa1150379472cd8515ebd5812aa04f307d7324a0319e289aae30ba55e + "@babel/types": ^7.16.0 + checksum: 29a76903e84462aba44e13cfc0321e9eeee68bc791f414d7aa7bb3f9f3844cfcff394788dd0a3c5235ba3cefb43b125cb972784ad28268b8365425de1350fe01 languageName: node linkType: hard @@ -411,57 +395,57 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.14.5, @babel/helper-remap-async-to-generator@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-remap-async-to-generator@npm:7.15.4" +"@babel/helper-remap-async-to-generator@npm:^7.16.0, @babel/helper-remap-async-to-generator@npm:^7.16.4": + version: 7.16.4 + resolution: "@babel/helper-remap-async-to-generator@npm:7.16.4" dependencies: - "@babel/helper-annotate-as-pure": ^7.15.4 - "@babel/helper-wrap-function": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 2d4c0b502f2171cc15011358b299c32adf51c7e7a8d9bdea5f4394046ce0200b2d7ce441d772e35e7c4eabffee5b9d4c5ff8df68dac2db204f88b6d1758e3e13 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-wrap-function": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 09e8cdd993de30af73666bb267c41ef5182a7310ffe6b6dd450e0ce2adf29e4b72ea865c8c4faa67804af1ee172901a43320814d93737e5525efc5f5b0217d9c languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.14.5, @babel/helper-replace-supers@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-replace-supers@npm:7.15.4" +"@babel/helper-replace-supers@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-replace-supers@npm:7.16.0" dependencies: - "@babel/helper-member-expression-to-functions": ^7.15.4 - "@babel/helper-optimise-call-expression": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: ad71403452c318d57d5d38bcc05fdf934c3f5925eb50c2cf60ea79e526142b4bd19f3577b317977d98b0fcefd38283f8ee537ca28f60264089285bc0a541ce88 + "@babel/helper-member-expression-to-functions": ^7.16.0 + "@babel/helper-optimise-call-expression": ^7.16.0 + "@babel/traverse": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 52717799120c5978578c3a809544c5ba4be81e75e799e0a3abcd2eb3bc7277a118e37ccf02a6849e36144547955a7c91f909c9e103251d1249b12256cc31ca3d languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-simple-access@npm:7.15.4" +"@babel/helper-simple-access@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-simple-access@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 02b9048a1bc0b844593d44e2bbed6ddecae64dbc80797336bc4ea8376a0b8222933bdead5bd7b8c03a535553f12a1c9e54c1531209db4c2ce7543006e19f841c + "@babel/types": ^7.16.0 + checksum: ff19387cd7df7a8c4fdf0fc459fa78beef621225ce572eed3a2188e771a5479f5d1ebccdc80e25246a41d18b7904b779207ff9a60f9d03c7c1d1b61906114738 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.14.5, @babel/helper-skip-transparent-expression-wrappers@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.15.4" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 099f28533371beb49850df690cfe00dfb828c283f2d2ab91fab29957a754980a5f8ebef66ca4f08b11b0930c429aaf241a9412361a032e5fd869314bbe34f4e3 + "@babel/types": ^7.16.0 + checksum: d3b8668a355e82a1c18137a1d5f3d8565ec88cff464f1c0a7c6e99c4cd0d92a77aeb51ca7fa71afa3bf8c50035bc5cf25504f46e01a94b9e6a297bdf3ac35f40 languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-split-export-declaration@npm:7.15.4" +"@babel/helper-split-export-declaration@npm:^7.15.4, @babel/helper-split-export-declaration@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-split-export-declaration@npm:7.16.0" dependencies: - "@babel/types": ^7.15.4 - checksum: 95acba111c9e77a703b460ec03047bcbc86bfe88be3e2209f8fb19b48e6a05270e341aa344fac49a2b23a42701dc6d892313a8a7a98a6ae46f31d7d612938f33 + "@babel/types": ^7.16.0 + checksum: d4c18c8feb9f115e9b75741f7daa818050a3b4adb0a3cd991d8d58da9db627cd5043e5f24f5118933a3dc8e9891adfb9c1c63929741b74b6e0aec03ac30b2702 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.14.5, @babel/helper-validator-identifier@npm:^7.14.9, @babel/helper-validator-identifier@npm:^7.15.7": +"@babel/helper-validator-identifier@npm:^7.14.9, @babel/helper-validator-identifier@npm:^7.15.7": version: 7.15.7 resolution: "@babel/helper-validator-identifier@npm:7.15.7" checksum: 398bbf808232073504426d08fa6a5ee7b70a41eda3c7a02115d9f879fbd89c057bef27e8013df2084d59eed43587dac91c915074fa8385544fae0caf03791c2b @@ -475,47 +459,47 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-wrap-function@npm:7.15.4" +"@babel/helper-wrap-function@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/helper-wrap-function@npm:7.16.0" dependencies: - "@babel/helper-function-name": ^7.15.4 - "@babel/template": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 57b73e4c040009e1fc8aa7f5bbc98e0d16578e29879da7af7cbcb7fa27f49bdc93aedb5002c1e5b86d8e8ac9928475e4b108b4e00e872535e5b7c12ca60a6034 + "@babel/helper-function-name": ^7.16.0 + "@babel/template": ^7.16.0 + "@babel/traverse": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 25cc560b124dd44445c607b874fba926a06544ef54906a45940bcb6895ab81f5b74759b819546e2251748582a02f07ed0360a3b4d25cd27b838fe54b24c99903 languageName: node linkType: hard -"@babel/helpers@npm:^7.12.5, @babel/helpers@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helpers@npm:7.15.4" +"@babel/helpers@npm:^7.12.5, @babel/helpers@npm:^7.16.0": + version: 7.16.3 + resolution: "@babel/helpers@npm:7.16.3" dependencies: - "@babel/template": ^7.15.4 - "@babel/traverse": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 92756ac9a0bee4700be560015d6e2ee17a373df99f212a87c5145c4af648fbca3ec7be7e8cfdff3707f7d7a4cfdefa62000c1a5e2accb44da81bfe7e1dd42ae7 + "@babel/template": ^7.16.0 + "@babel/traverse": ^7.16.3 + "@babel/types": ^7.16.0 + checksum: d31511816e4722535d45bec5331cfe3bbafb7ff681fa16234a743ba8eada24b27e89c0930f5457d6706d5c613b9f0f160804de8320c733238e5f9003c739df92 languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/highlight@npm:7.14.5" +"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/highlight@npm:7.16.0" dependencies: - "@babel/helper-validator-identifier": ^7.14.5 + "@babel/helper-validator-identifier": ^7.15.7 chalk: ^2.0.0 js-tokens: ^4.0.0 - checksum: b9d16895e4bf780d69504c7cc8a9871dc668bcd1851c4a7a7f039f34ba5bb1f04efc4ad6b79112496c7896d541a4d38efa02e7d8be8fb0a1f352097cff8ba79d + checksum: 47cf5ea9c18bc5cb3e469fcdc45a005d1b2d15614a55ac9fa36d38a5e02d0e402f0454080ffeee153aa164f61d2f06aa4dc98857dc2bd01e67d0c8a3be84929f languageName: node linkType: hard -"@babel/node@npm:7.15.8": - version: 7.15.8 - resolution: "@babel/node@npm:7.15.8" +"@babel/node@npm:7.16.0": + version: 7.16.0 + resolution: "@babel/node@npm:7.16.0" dependencies: - "@babel/register": ^7.15.3 + "@babel/register": ^7.16.0 commander: ^4.0.1 - core-js: ^3.16.0 + core-js: ^3.19.0 node-environment-flags: ^1.0.5 regenerator-runtime: ^0.13.4 v8flags: ^3.1.1 @@ -523,7 +507,7 @@ __metadata: "@babel/core": ^7.0.0-0 bin: babel-node: ./bin/babel-node.js - checksum: 4953714d6873c0137ea56e732661746e8dd5ba9fe502f0d3679514f82882b45b59307f6cd4bf98234016d6097c7307c6d5555cdf7ca103d9344c9ee1b8029da6 + checksum: c0d0427c2375ce368e84fefd5a511c9c1ca00399a169bd6b5c453b8da9194611cf8a0a0ab1fbd0de1fb6b4532e97fa7755a0d0da9efbc31836f77d792ac34eb6 languageName: node linkType: hard @@ -536,88 +520,99 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:7.15.8, @babel/parser@npm:^7.0.0, @babel/parser@npm:^7.1.0, @babel/parser@npm:^7.1.6, @babel/parser@npm:^7.12.11, @babel/parser@npm:^7.12.7, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.15.4, @babel/parser@npm:^7.15.8, @babel/parser@npm:^7.3.2, @babel/parser@npm:^7.7.2": - version: 7.15.8 - resolution: "@babel/parser@npm:7.15.8" +"@babel/parser@npm:7.16.4, @babel/parser@npm:^7.0.0, @babel/parser@npm:^7.1.0, @babel/parser@npm:^7.1.6, @babel/parser@npm:^7.12.11, @babel/parser@npm:^7.12.7, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.15.4, @babel/parser@npm:^7.16.0, @babel/parser@npm:^7.16.3, @babel/parser@npm:^7.3.2, @babel/parser@npm:^7.7.2": + version: 7.16.4 + resolution: "@babel/parser@npm:7.16.4" bin: parser: ./bin/babel-parser.js - checksum: 66f4ec0f7ec68fb1aa00a9e213cb545eea7d41f250273def4e0cb44fc7c8f80ad333d9addbbaf9d1ed9564e5a7fb563fb77856f737dee698894e2cd1163b9d30 + checksum: 15aede34e6129701d681deb860c5a05a955dde773ff1fa042c0a554706d4158d003389dab8f0e54a92b7b7ea20087367dcb0dfe3ba7c47600285de093beba9e5 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.15.4" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.16.2": + version: 7.16.2 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.16.2" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.15.4 - "@babel/plugin-proposal-optional-chaining": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 0f7c37f50483bcdfa9df806dca5cd25a1ac3aac9a65f45f0098310258c6336c73b2f0b6997fabe409e089e0d01cebd67b416c6f926c9319192c27793aeb704f7 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.16.0" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.16.0 + "@babel/plugin-proposal-optional-chaining": ^7.16.0 peerDependencies: "@babel/core": ^7.13.0 - checksum: 7542c2610b27630fc138ef39215460745a6db68c52311f5400c6b40a97377a6fe4dfcb477297dfc48d018970b463d22244f5533e9e925fb2460662052a78b68c + checksum: 7844afeb5b94b69de73e5cb331cbf9727e99dbc463072a68b3562b8785a498ee9823b3ffc2be2a9653ce47d6a91841b76c99b0c3479ef92446211852ad7d0fa8 languageName: node linkType: hard -"@babel/plugin-proposal-async-generator-functions@npm:^7.15.8": - version: 7.15.8 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.15.8" +"@babel/plugin-proposal-async-generator-functions@npm:^7.16.4": + version: 7.16.4 + resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.16.4" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-remap-async-to-generator": ^7.15.4 + "@babel/helper-remap-async-to-generator": ^7.16.4 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 197123f5f1db53e8ea202949e0f621aa619d405fff2a51c0a24633e03a7d2ea8256e25be21549cccbf8e4bd3c3fd46778d539d72430d9907581704b88dc02a98 + checksum: 0ac30cbfca61ce7f98ff2077ab8383aeebd8b9aa36971947050396fe2255aea18e1cb4048277ea122ca0b2fe22416df89198c9b4f5421f8c6fbfaccd750f781d languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:7.14.5, @babel/plugin-proposal-class-properties@npm:^7.0.0, @babel/plugin-proposal-class-properties@npm:^7.12.1, @babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-class-properties@npm:7.14.5" +"@babel/plugin-proposal-class-properties@npm:7.16.0, @babel/plugin-proposal-class-properties@npm:^7.0.0, @babel/plugin-proposal-class-properties@npm:^7.12.1, @babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-class-properties@npm:7.16.0" dependencies: - "@babel/helper-create-class-features-plugin": ^7.14.5 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 11650465820d31d40445529f64ccf084b031f681970ce57774ac1fb6fbd28b3306a86b3546d520ca31d2dae06a6004f9bd1ffff0e44d5c3ce54519620ebc6e57 + checksum: 1a2d30722e0456700946d65b9d769359a33ea8b882f95b320ed3d104d84907d840f8d4e68f0c35a4b41a017b73a71dfcc24ea461fb9db10cd79b8868168e9a04 languageName: node linkType: hard -"@babel/plugin-proposal-class-static-block@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-proposal-class-static-block@npm:7.15.4" +"@babel/plugin-proposal-class-static-block@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-class-static-block@npm:7.16.0" dependencies: - "@babel/helper-create-class-features-plugin": ^7.15.4 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: "@babel/core": ^7.12.0 - checksum: d70314be609e736a8f6a13fb8e1c63127dff04c556451f1a9e66784c966750aa9e6fc08147e7ea333237d290c3f3a892ebe5fbd71ee891286a9259a862d0eca6 + checksum: dda182cb38dd2a33e364aaa4084dc80a96ca48f25feaca276f281b9b395871f6b2d350590ac7e7b5daa217acbfddab7ff5201b2fdc5f42051e41832ddfd0aac9 languageName: node linkType: hard -"@babel/plugin-proposal-decorators@npm:7.15.8, @babel/plugin-proposal-decorators@npm:^7.12.12": - version: 7.15.8 - resolution: "@babel/plugin-proposal-decorators@npm:7.15.8" +"@babel/plugin-proposal-decorators@npm:7.16.4, @babel/plugin-proposal-decorators@npm:^7.12.12": + version: 7.16.4 + resolution: "@babel/plugin-proposal-decorators@npm:7.16.4" dependencies: - "@babel/helper-create-class-features-plugin": ^7.15.4 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/plugin-syntax-decorators": ^7.14.5 + "@babel/plugin-syntax-decorators": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5ec37ab45a68d49a790e0bf163e7832d06390b077514533f645be900445075d30f6f1c7c759d8d2f681cfec1303d1ec2bd625b7329ce8b3ff1ab6c0cdd2e0b79 + checksum: a8a2de7eb4c42ea0afbfa99f4e709c3df5d7cc80e4bee26ce6d8e103b18416699f40030cc11597278c9105e92cf24231fc58fd1653da26b271d6598f200bab9d languageName: node linkType: hard -"@babel/plugin-proposal-dynamic-import@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-dynamic-import@npm:7.14.5" +"@babel/plugin-proposal-dynamic-import@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-dynamic-import@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ae31845d4b7178ce24f89357d511105ab3ff29711e09b62ccbb7226c458c25ce9c19e1c9002682e7c07e8589224b53b4afd0efaa6c1a00cbf49c77d68da226fc + checksum: 45ce919eb380c16be99736f2a448e72d7ea3f83b789def943efa1a26becc8b4de3f1f70bafabf27ffcf5ca07b0a28e2f9ccee44d359dc256212562cff0a8f8ea languageName: node linkType: hard @@ -633,63 +628,63 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-export-namespace-from@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.14.5" +"@babel/plugin-proposal-export-namespace-from@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0f775df669110de212910ce7c6287079dd07d578afae9746cd2059afad2ea0d7d4bb5376de520c78fb5364a1f633ecc623998d39956919d922cffcfb3ed1653f + checksum: 98fc95f720335bacad7c03c190ed089897afdc74565c35f312d70905029a4c330db636ed3fee0280846b6a26d122bf43f32cc93db5e5935d6b73752b0db47c9d languageName: node linkType: hard -"@babel/plugin-proposal-json-strings@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-json-strings@npm:7.14.5" +"@babel/plugin-proposal-json-strings@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-json-strings@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 06f63ca10c6cb8c66a3446d4bcde780f304771effc586cfa57bf7bfd510d213a2886dd922bcf79944cc0788fc96da72bae116980ff04319d20395f66823608b1 + checksum: 8dbee87bc1c89554597b025319e9b89da2dad06799c08637b73f0ca05155e73e36384c71c7aedbf6706b08b549ec4b11ee95225f31ee8cb473dcbdaf356e38c4 languageName: node linkType: hard -"@babel/plugin-proposal-logical-assignment-operators@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.14.5" +"@babel/plugin-proposal-logical-assignment-operators@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3e30b19b4f3f8b85ccd3fccd1b0db5dd6ad10738fed88087c22d7464de952ce5eb94a60fa7a081c511b841248e5c9bb159f814220990a07fdaabe07b1468c6e0 + checksum: f56cda4b9d747f497556bc230d7ea096a86f4523b661dc63c2e75b67bf0bdedbefa1751be48ea983b9364fea108d378f335bc2025479defb7697b3d6719d72b8 languageName: node linkType: hard -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.12.1, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.14.5" +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.12.1, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 15b2b7fb3bea6aa0f5be7c807a63b636f9717ee4a6cd37d7100acecf8ff9c684cd01d8a2114cc8e597734d7fe49ff06d35d3d809ae49c2f0979843efc6ddfbef + checksum: 3982575ba6b90a7a980e9dcda91b6a3fac5d86aeded12331e44ecc996e99a4a0f742b7ed52f4cc86f3f4c39928a2fcebea8414ad63accde06101b5f9f152c845 languageName: node linkType: hard -"@babel/plugin-proposal-numeric-separator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.14.5" +"@babel/plugin-proposal-numeric-separator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-numeric-separator@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 97e5345f3ecc6de43273632815f74d2dd4548ed5e3d75724f67c703b064d1e6edce5f76e144e500825a9ceb94c510e1943fd5ee454ed83364e74370587a07f75 + checksum: b3bbb970b3882e64af48eceb3974f933e4c76af2a6526abebd457ac834f21d976dee7bafe54d3c1287d54b7c9c3564c62a900eaa35459466f7b7e45ecf787756 languageName: node linkType: hard @@ -706,81 +701,81 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-object-rest-spread@npm:^7.0.0, @babel/plugin-proposal-object-rest-spread@npm:^7.12.1, @babel/plugin-proposal-object-rest-spread@npm:^7.15.6": - version: 7.15.6 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.15.6" +"@babel/plugin-proposal-object-rest-spread@npm:^7.0.0, @babel/plugin-proposal-object-rest-spread@npm:^7.12.1, @babel/plugin-proposal-object-rest-spread@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.16.0" dependencies: - "@babel/compat-data": ^7.15.0 - "@babel/helper-compilation-targets": ^7.15.4 + "@babel/compat-data": ^7.16.0 + "@babel/helper-compilation-targets": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.15.4 + "@babel/plugin-transform-parameters": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cb9958a089e980f592f6b046ebc8f1ef19e70a7c0e2934873327cf64d4947d3c28db55992a6bdf9ba2efe1a52f65609b758c36c80c4cbcc998a9b0f74901e58b + checksum: 6e13519887919e0e2ab76bb0d49aa5555139abd46f719c25daf96fde7ac8240cabbb931ffd90095ff778ec41e03f11bd887f99bc33246b343b539ecd266e4dff languageName: node linkType: hard -"@babel/plugin-proposal-optional-catch-binding@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.14.5" +"@babel/plugin-proposal-optional-catch-binding@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4eb3f503525eb9bfb96fd8598de2f7b64caa5cc0fc109f385f9bd27306c6ddaaa7a9f4b6d3057e4050f9b0d43fd8dc123f531954d42ef8a5537e848567ab7f1c + checksum: 97ecf57de7be78cac6ee9ea98c7af33957dd4a2db1808741af87eb7143d0066fd183468c526994abfdd64280c3b4aa38a12bcb3d3a4688f5c21b0dcfddeefdca languageName: node linkType: hard -"@babel/plugin-proposal-optional-chaining@npm:^7.12.7, @babel/plugin-proposal-optional-chaining@npm:^7.13.12, @babel/plugin-proposal-optional-chaining@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-optional-chaining@npm:7.14.5" +"@babel/plugin-proposal-optional-chaining@npm:^7.12.7, @babel/plugin-proposal-optional-chaining@npm:^7.13.12, @babel/plugin-proposal-optional-chaining@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-optional-chaining@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.14.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.16.0 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7037d4e3e3751a7d25ccb969f72541992c7eb960284904d2ca7fe7a8f6603f9ca5abc8ee592938b9701efed5f5a944b094c78f81225d13b27da68b68c6b17a51 + checksum: f59390575eaf3b49789e07f1a888fc8374f3eeb2f3dcf7f5624048b661e55f17d017c9a447f4c6371efb4de5499f8d89a66a634cc1e4bb6b850748d48c3b4cb9 languageName: node linkType: hard -"@babel/plugin-proposal-private-methods@npm:7.14.5, @babel/plugin-proposal-private-methods@npm:^7.12.1, @babel/plugin-proposal-private-methods@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-proposal-private-methods@npm:7.14.5" +"@babel/plugin-proposal-private-methods@npm:7.16.0, @babel/plugin-proposal-private-methods@npm:^7.12.1, @babel/plugin-proposal-private-methods@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-private-methods@npm:7.16.0" dependencies: - "@babel/helper-create-class-features-plugin": ^7.14.5 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: df596f2a1efa7efb578ebecac6b718e1e9c3d9b1ff943f34e26a997e0de9e9ac435ea4b49f7b11979cff65ed6a4dfe171400cf8af351c9874efa249bc7311908 + checksum: e0f3c77d03ba9c2f8a5d938b61919a8abbe85d9a4542439018f633c0e53656272dcdebce0933709f43d47bdc92a853a0a31c3d60eb012e065e30db88df2898d8 languageName: node linkType: hard -"@babel/plugin-proposal-private-property-in-object@npm:7.15.4, @babel/plugin-proposal-private-property-in-object@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.15.4" +"@babel/plugin-proposal-private-property-in-object@npm:7.16.0, @babel/plugin-proposal-private-property-in-object@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.15.4 - "@babel/helper-create-class-features-plugin": ^7.15.4 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e1016d45c84e18eec7f82ffb6de7a5dc1bde095746bf6e0288eb2e79a508bc6d1e5d618dd829d84a7bbf3605c6bee974a8f7e6fcf4c078f57cf56e3915d32297 + checksum: ebc3413180863769242ad61e5f19be58d9d41ac7ab7c6513d651d0a4f618e41412df355f137177906aac6d6c008abb0deee3597be67b517ba5ec9f127e549789 languageName: node linkType: hard -"@babel/plugin-proposal-unicode-property-regex@npm:^7.14.5, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": - version: 7.14.5 - resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.14.5" +"@babel/plugin-proposal-unicode-property-regex@npm:^7.16.0, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": + version: 7.16.0 + resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.16.0" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.14.5 + "@babel/helper-create-regexp-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4047f4085eed41feb8209875083b4300421f413b08be299ebaa98007b2e052859be23b6749be379e98287d0f3a35c43755c17f3fc741afdc445a3addc338983e + checksum: b01c002ba3fa00b71ae47d06e1186bd628a2842d5d742fb2019ef798d7e35721a526e26e4d8ae5b92ad93f863bad68c0cc7406a2634790f7a517aa60539ffc22 languageName: node linkType: hard @@ -828,14 +823,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-decorators@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-decorators@npm:7.14.5" +"@babel/plugin-syntax-decorators@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-syntax-decorators@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2cb610a216169f7ce21f021c4ef4fde94db080fc4e80304ace3b811f13308b2fd50a9bacf58ed606b4495eba69813606eb43f05b8e765897107b9b6c3c1e8add + checksum: bd64777e8cd3a96ce1d6d397133b71bd0927bb8444745033b6dda5eb1004a7b09aea4c11005b3d4af7262d52f2f2a55791e0ec46c35f6abfb504a2e1a520669a languageName: node linkType: hard @@ -916,14 +911,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-jsx@npm:7.14.5" +"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-syntax-jsx@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b553ccd6cf1b560616c4cd347f851a9a1d853c084bac82d39fae9b5edcc283d03053a78d014fde79c07c5dc07cc15ec988065616e9efea3220b58913205fdf49 + checksum: 4d3a4e6216cc0a2471c34c06e9c3fc235045fb8777db531ccecc1bfdeb3fbd877bec43317b443f291950052307ab8b0b83faada329342aeb97825080d80c5109 languageName: node linkType: hard @@ -1015,134 +1010,134 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.14.5, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.14.5 - resolution: "@babel/plugin-syntax-typescript@npm:7.14.5" +"@babel/plugin-syntax-typescript@npm:^7.16.0, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.16.0 + resolution: "@babel/plugin-syntax-typescript@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8aab66fad457918bb35dcd5cc1bd9251b48ab1abb226c07fa05a8873f6973845d331e3f215341d03ca856c50b13511242af915d07b89f399d4424208bc7dfd68 + checksum: d3f6d730e1610ca33bf44eeec2ac54ada6ba13c74759feab12ba7876829401a6746aa28a0c2e1d6a1915e9f6c64fd5bdf01a1ace4565669fd8641597ba792511 languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.12.1, @babel/plugin-transform-arrow-functions@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.14.5" +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.12.1, @babel/plugin-transform-arrow-functions@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d1e9bf5a026161f4133b7142ae1abb88b835b5394d9f7dda03c3f53c57d28f1673414ed81a8679b6d06ce60eb3dc25931cf4659d60f6a6c16c39da988c0d8359 + checksum: 9882e4434c8a802ed69036204dc59da94ecc2ed37eb5480c92ee5ca1d381f6bba2a5dc6cf6ca44e716595096e1e6f31241cf4f0c0980cfc5725c16ca23e53d80 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.14.5" +"@babel/plugin-transform-async-to-generator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.16.0" dependencies: - "@babel/helper-module-imports": ^7.14.5 + "@babel/helper-module-imports": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-remap-async-to-generator": ^7.14.5 + "@babel/helper-remap-async-to-generator": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5d71c1fe91dc69db7a4b598edb6480d6658f2f57fbe4add1bbc9a6885c9ed708f73192957bb9caee19e5ae4d9d1f8e940253a337eddcb941b73678555d224596 + checksum: e4af6fb6f75cdc289ec74ffbd956a309f9bb79e2ff10481129d8269cafaf2f65c6e55e9810035e3fadb21c314ea5b733637f7c5e6e3d584cdfdecb102c5a56e8 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.14.5" +"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 864f35c311b6e56307f3a48a419a6bfd11687d4287590b3795318754006a97ad72b8eebf65a74b88c2fcb1624676aad420ca2a590713b267dc94c00bdeae0df7 + checksum: 65841005225b704c3190b691211249354e3afec7e4bf8a7b2bcbedd28f466191a592b6e0566bbc6da536b6c4c17cd7b18be232b2688f7ebbc5340bb89adebf5a languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.12.12, @babel/plugin-transform-block-scoping@npm:^7.15.3": - version: 7.15.3 - resolution: "@babel/plugin-transform-block-scoping@npm:7.15.3" +"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.12.12, @babel/plugin-transform-block-scoping@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e734e902e2b1e0a79a49af73cbe46659ce669e08dcf6d3f091a1850d0a11f4c1f51124fbaacf0e26a894e45bbe79b6baa7f5f3f53d352e927b8577c1737e5b0b + checksum: d0a7ba830ff32bf821866f02eabd1190d1bb0ce71e2cc6b709ea2e89ba406a4f532b1e1dc50911c19970793545f0b071c6aa21ea93946db60f03a3b37516664b languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.12.1, @babel/plugin-transform-classes@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-classes@npm:7.15.4" +"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.12.1, @babel/plugin-transform-classes@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-classes@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.15.4 - "@babel/helper-function-name": ^7.15.4 - "@babel/helper-optimise-call-expression": ^7.15.4 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-function-name": ^7.16.0 + "@babel/helper-optimise-call-expression": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-replace-supers": ^7.15.4 - "@babel/helper-split-export-declaration": ^7.15.4 + "@babel/helper-replace-supers": ^7.16.0 + "@babel/helper-split-export-declaration": ^7.16.0 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4fb50be6fc83499872756969b8174c9721ad74f257973414c140747408ca48aeb99b525cae5c0b4400de492592c29f3be1af68770faf31336d8ff3c371428dde + checksum: 4a25292506f656bc876a5d30e74baff854c5e187b880bdc5fdb0c01d88d9ff74fb7a08d15bb2cf28b66e3ca43756fd6440c8c4c9b523bbafca24cd8a2f0cf0f0 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-computed-properties@npm:7.14.5" +"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-computed-properties@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3eed440f30bae21f5b11d8dea0f12d3ac0e0c623409161c49aae264b77736e60f0385dfbcf3c6deb03cf7ba2505f2769e21b7c5cb07cfb92d90e9f5d46a91436 + checksum: 909e5f3ad80cefc236d0f4ae2fa6caa1fd4d050bd15ebf9479349ea53a759202cb8f0e24870b8b6531a5154742394d7a7a5588ff7462d3c78cbd89699bddbbce languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.12.1, @babel/plugin-transform-destructuring@npm:^7.14.7": - version: 7.14.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.14.7" +"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.12.1, @babel/plugin-transform-destructuring@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-destructuring@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fc62688948b23d59c8286602757999bd4f551e7171619fb0750f804d9725f3d79d87a51f7fe4f4e12064c4e86f24a4616d6c2a537ca8f2ecf1b54482a3fc0356 + checksum: fb68bfe9e43ef1506e63a6a804c4e9e6b2af9c4c9c69d483e40fbb3d88a8c205e58168572e2d585407226600704895d8343d377e2bc1c01c8a61abfa8af3d91f languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.14.5, @babel/plugin-transform-dotall-regex@npm:^7.4.4": - version: 7.14.5 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.14.5" +"@babel/plugin-transform-dotall-regex@npm:^7.16.0, @babel/plugin-transform-dotall-regex@npm:^7.4.4": + version: 7.16.0 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.16.0" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.14.5 + "@babel/helper-create-regexp-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7ce77cb4565e37b9ef3b9171953bf7243c80fbf62d4c1031234f46b1ebdaa84128018dc0a9e86aaa9f1a862408f9d8955c93f019b4b7e7198a96b8d147f2b0e9 + checksum: 50a24cbcc7ddce2a9d16c507de51e50d4ecb7f7b94f1726e10bf768ca556722db9b8d9525d7e44baf9f08380e3edfa89dff94cccb7eff1f6e854b3547d52e109 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.14.5" +"@babel/plugin-transform-duplicate-keys@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c7111a67bec29ba27fd01105a0b1b613ad0c76597934302ef1e56be1b8b32943df05c75a5be490e0ae55148d6ebd5bf2007249213b75e8d35c10160114a883ba + checksum: 47843841aaddd17e7f152bd97c04813fa4e1255495186989fbd75931ce0124764101a4ff17872a848123aee1654c415d553e7ef3edc3912273d081d8c4472cb2 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.14.5" +"@babel/plugin-transform-exponentiation-operator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.16.0" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.14.5 + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 876f072ab2fdbcd9e2cc786b7f7e40359dcf165c035bd1619e79bdcc27a250e2aca46e02c0b8c290ffbc354d12d32f43b589265d9ca0e53be6f7d0fd34da5ee2 + checksum: acbc8c595bc3b5d2cc43624d192150729ca0cc86b7b91cfc1c955076df14f5837e8163bbf4201f8f11e5ffdfa9d7145caf8034bb3f3cc832f009f2fb19167919 languageName: node linkType: hard @@ -1158,364 +1153,365 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.12.1, @babel/plugin-transform-for-of@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-for-of@npm:7.15.4" +"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.12.1, @babel/plugin-transform-for-of@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-for-of@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2ae1337f7452b255703e51040da057a533cb49744519e8e9ac00f37028a83137d34814ec18d04af9528e95dd54919dee53d1c485f67fa7711a119663407229c + checksum: 0554da026dcacdb410b2287e274437219cc234bbf7106c0bbfc5aa05d75dcba2a4cdc2201c15b4e015302a1b7668e6cfa413fedf4658ddd4f98cf0c3ce437f5d languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-function-name@npm:7.14.5" +"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-function-name@npm:7.16.0" dependencies: - "@babel/helper-function-name": ^7.14.5 + "@babel/helper-function-name": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 18d61764d911a96319ec6accaa281d0691084443b452478e1d9bf82fe011eb62c8c8a0bacecbfac6fcee83e4d53e777bccd6ff46718a1c1b2f52fdc7e8509ec5 + checksum: 777e03d788ad15da13cf4076a7e9060aedda139dd00f00ba542a7cb1a532fbc4e9b19e292123d7dd028b00d81c5689a87bf4b1c517bb9310f1f873e74327be80 languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-literals@npm:7.14.5" +"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-literals@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a9383db99026a44d2373ca2e3048c566d66f436aca326d1dc4e07ec90953a075ab4897c54c7adbd52fbd1ef538b4cee346cc0db96bfeae70969b89e995c2a86d + checksum: d835616f9aba23b057ad57e302dd0e1f5a70c8e104cefdaa891aad6eac459262f2375e14bd8270554feb9ab66ced614d6672ed10b471350ed40e0d4925e4038d languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.14.5" +"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b322fa6c7f2dedf2f9c8b5ed33d1dcb377ec04375f348aaf33f3bf98fe3e3a96c008e623c7de7da47f0ddb5c63c57e8b233986a53e58f951b010ff1078de62b1 + checksum: 34cc594ab9ebe71256dd4819b0b69f450f04d221752afcee34e608460528231467441b16f33eff6938b6feb6ecdbd56210e82f886fefe37b2f1871c6262c1c65 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-modules-amd@npm:7.14.5" +"@babel/plugin-transform-modules-amd@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-modules-amd@npm:7.16.0" dependencies: - "@babel/helper-module-transforms": ^7.14.5 + "@babel/helper-module-transforms": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e9e4be72bee9312e47d75b6e673d2986b6a0ddfd6d2638ce98b91014c3ffff4e2084d1b9b4f401bbbfc030b79770afe4f49cbe4a8b6d24df9ac910695c0ddea2 + checksum: e07569e2328351d53469ff1c58625e47c50060d71d4540b49070f74010ca85b7baad67575a3e23adafea35568943904d6763354de63b9c5febb3ca53dea1720a languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.15.4" +"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.16.0" dependencies: - "@babel/helper-module-transforms": ^7.15.4 + "@babel/helper-module-transforms": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-simple-access": ^7.15.4 + "@babel/helper-simple-access": ^7.16.0 babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2dfc75ea1ef980d392e06397ad309bf7ec5d65f6bb9c864b32af355246183f28075f19834a968968e81b20a89652312d4512d6420b5d9be838f0afc821d037d9 + checksum: 78889e6967c9db8b26dc4946c109f72ecd494556b4985cabf87bcd65eebb290a35f62081cdce148e6840f1f40308dd5b479de3d06816973252814d9ebf6849a9 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.15.4" +"@babel/plugin-transform-modules-systemjs@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.16.0" dependencies: - "@babel/helper-hoist-variables": ^7.15.4 - "@babel/helper-module-transforms": ^7.15.4 + "@babel/helper-hoist-variables": ^7.16.0 + "@babel/helper-module-transforms": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-validator-identifier": ^7.14.9 + "@babel/helper-validator-identifier": ^7.15.7 babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b68d0ace9087c5795f2d2ecb6fbb2f247a612da9fd5c9c26cc917fe0938fe51ef9701a5e829cbd4105d4076d97f8400185bdddfe7d037fd7099aeac94fe2d01 + checksum: ecb98c580ed127ddf307d30e99aba8208afd8c6387c7859b88d88ba2ac196c1ff57da585963167515077b511f1a599770e16bc9a0c18e42306b3a42eb76852c4 languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-modules-umd@npm:7.14.5" +"@babel/plugin-transform-modules-umd@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-modules-umd@npm:7.16.0" dependencies: - "@babel/helper-module-transforms": ^7.14.5 + "@babel/helper-module-transforms": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d622f8398673472b65345b58bb226523ad75118c34c591b23a369f53c75f3831e9bdb6a309aec6af631b6446bc6a6460cae920933ef2d7e6e0940b0f6684fa94 + checksum: a1dfe344f27c01b36b5be467a3f6879fe04651d13a07ca266a592502535a6c8a7f7a00e67bafd1cad0009d2d9f07521224ecd3864fc0bf346ea7a1de9c822052 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.14.9": - version: 7.14.9 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.14.9" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.16.0" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.14.5 + "@babel/helper-create-regexp-features-plugin": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 8e1709cd82f831b81ad8b9ec246fdf530e4c52e72d311c9825ae72674251f7b4890e4d8d1e09b8a71dc1660e3020fce4fe3234f07b05b7de9f9a419181b2b549 + checksum: eee57e6110ff11044a9be84b22bc2b1952f6d9ef8d2f9af109141de763b033fa985f495cfc1d5aaf1fa9ed4fecb8efb5b332eec5582389faebce2584444ab5c3 languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-new-target@npm:7.14.5" +"@babel/plugin-transform-new-target@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-new-target@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6efea7d9749fd7e6a78b02c561a4b42a231867469b2814b5962d168803a240ef6b947262799c407fbe0e055c6c3a342f03c43a677744469f2e703ef388444915 + checksum: bb58042d67a5c40b57e07d31d391f2ef4b66b432e71be4893cbb9604d9c12a1cd168f05f04ae2a0ea97cd976129bccc9bbeac0e440e2a02db5a63b5d0cd0cc16 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-object-super@npm:7.14.5" +"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-object-super@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-replace-supers": ^7.14.5 + "@babel/helper-replace-supers": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 259b6937a816ea533ba971a885127a66a0ea5a6707c0f677911f69d3b2ec530801542eb61e851518578a67d00fe26a87d9cd9151495474423e722d72c6192dc5 + checksum: 12e79bad4b7bf5ffba7afb70fb8f5384fe5e8cd0bc876378e807362f705ce4254fd2e9b96213d1669acf139ffd36e585d806883f10f3cca941861b3ef7800c9e languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.12.1, @babel/plugin-transform-parameters@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/plugin-transform-parameters@npm:7.15.4" +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.12.1, @babel/plugin-transform-parameters@npm:^7.16.0, @babel/plugin-transform-parameters@npm:^7.16.3": + version: 7.16.3 + resolution: "@babel/plugin-transform-parameters@npm:7.16.3" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e199eb284db2bfabeae80709cc975c5061cb293e944663a6e92f55b442acdc2e3c609c478e139e9ffbbe5a0a940bd9c71952462fed57dd32bc0cd41331f44af5 + checksum: 1d1906e3b76972a54945f6c6189b6c36a27668db0c4cbca844228ddb087c4c652e029990145ed51c4fd582bab0f8947b8be8d477989642d264f7f383cbde952a languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-property-literals@npm:7.14.5" +"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-property-literals@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 68cc043bdd1b1b4e445bea81d6ea592b15c20c3de02d245fa32972086a8aab1adc02085bdcef60c5faab735d2d3253a692aebfdeceddf77f715b1e6403868d9b + checksum: df6c2b98d9a83101edb23ff679d639bafa86065e027caca9a8310b5b95ffb1747d11540fc82b9768924b3581c3305001c534fcaea17e28bc2437ba30dce82eff languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.14.5": - version: 7.15.1 - resolution: "@babel/plugin-transform-react-display-name@npm:7.15.1" +"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-react-display-name@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1fbd360db8028f7fda7a191de373bb63caec5efd30c05a89abb9de42924b6b1af2fb53a70d9da2fd23aa93a4854b79c5ae6a05de9428685230299f6acbaa4617 + checksum: 3d23881a6f210c5a38695429d10b7f2b7ba3eb5e07cec911d133f97b98686cbbd7a8df8709a016d7db44dc9030e9a417e89c03917d1f85367f1c7585c5dfa34c languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.14.5" +"@babel/plugin-transform-react-jsx-development@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.16.0" dependencies: - "@babel/plugin-transform-react-jsx": ^7.14.5 + "@babel/plugin-transform-react-jsx": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: da8479a25f07f674c052babb45f5b398ebb2027feb2f560936fec3275581ad08b7926aa429bc7e3a5e238c892e88cdebc97221be8f016606591a487ace4a796e + checksum: c4bef587d9a9da0f79aee7a851247c361a443ec0fa763cc78e9eecc2a697919d0656d44c93f178b39c7162e459c6f244eef4964e24197f12be569a5daad1ffc0 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.12.12, @babel/plugin-transform-react-jsx@npm:^7.14.5": - version: 7.14.9 - resolution: "@babel/plugin-transform-react-jsx@npm:7.14.9" +"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.12.12, @babel/plugin-transform-react-jsx@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-react-jsx@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.14.5 - "@babel/helper-module-imports": ^7.14.5 + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-module-imports": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/plugin-syntax-jsx": ^7.14.5 - "@babel/types": ^7.14.9 + "@babel/plugin-syntax-jsx": ^7.16.0 + "@babel/types": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f5bf432dacab57d879a848b852269626df046b08aac2dee02f604be2bd92fdf5f62c58c57085e97df8980267ead38b21d6e090829a48779b2ecd3742eebb52c7 + checksum: 0141dac21b282a61c6e2488864421a64b67d8e2caeef4ad5d78522c8101723eb15e43f3aaeda6a4b0f69ecc0c99404171b6284ff2198f1fa1f3abbe30ec65aac languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.14.5" +"@babel/plugin-transform-react-pure-annotations@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.16.0" dependencies: - "@babel/helper-annotate-as-pure": ^7.14.5 + "@babel/helper-annotate-as-pure": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9d831fdc85d10a6f41d5aa542343243c44d814aca7126a01d9c800a6bb6a37184f3748b59a21af2f4c5c82d60b0bc5d3f6379382803a149e8937291ea403d318 + checksum: 43cbe83f00999dc31fb75cbe7564d17629a6198c013edca927e792053d1a475d2fdaa84b81b333c5cb9f009975bb3ccc24fc2d2cc62439f2f346d9fb967fdef5 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-regenerator@npm:7.14.5" +"@babel/plugin-transform-regenerator@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-regenerator@npm:7.16.0" dependencies: regenerator-transform: ^0.14.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6e47168c1a838b751315632fcc4f2cbd39a478dbdd884b8d0da22a63f8912a6bdafce8b581fe372abbf39d9df028383c69c16bd674afd484d28de3f74d2ee2df + checksum: 341322044e5a7e56f14ce325a5fea47765c317f7b9bb31931670c53345e6282e0951dd4eaf12e826b43f33f58c4153feb45ff81bedf01f17c6e341d8ea2bbff5 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-reserved-words@npm:7.14.5" +"@babel/plugin-transform-reserved-words@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-reserved-words@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a5b01e11babae05dec3203b3b96f757c266f3d8287620bd7ed020660066141c97cbfdd99e96aa81723b3fe6e02f947cfc5b1231d0b72e5c521ce564e5cca7cbe + checksum: ee982d9a6b255447cd797c0a5d716cb2324b6c562987fada4a5419fc6dfae64f0d80ba9cb52fba37a915015c44a6f82a2b23b1b30105de91dbb51a798f17773d languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.15.8": - version: 7.15.8 - resolution: "@babel/plugin-transform-runtime@npm:7.15.8" +"@babel/plugin-transform-runtime@npm:7.16.4": + version: 7.16.4 + resolution: "@babel/plugin-transform-runtime@npm:7.16.4" dependencies: - "@babel/helper-module-imports": ^7.15.4 + "@babel/helper-module-imports": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - babel-plugin-polyfill-corejs2: ^0.2.2 - babel-plugin-polyfill-corejs3: ^0.2.5 - babel-plugin-polyfill-regenerator: ^0.2.2 + babel-plugin-polyfill-corejs2: ^0.3.0 + babel-plugin-polyfill-corejs3: ^0.4.0 + babel-plugin-polyfill-regenerator: ^0.3.0 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1dabef6a37d6c024c794269fe06109c735ff6b19164077b1d8d14d9d7ea60f84b08babc8185d8265ac3491fc290b94ab2ad86a619017338b0a34dda17e74912e + checksum: 6932007f6c810be384d783c329b1431fb3e9110ac8b25a866a63d932bbaf23b23dd7108bd8a0196daf2ad42b2d6956b0400351d4a19133f7a8440e9e64920e55 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.12.1, @babel/plugin-transform-shorthand-properties@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.14.5" +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.12.1, @babel/plugin-transform-shorthand-properties@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0d6f6ed31d4dc45e6b1a495cf5164bbf0a7efa6be280df6f33ce640fc5aedfb780dc1bc56906d198afe1ddf9b3e23d251cee0b07f8c7e460483b3793574d9670 + checksum: 77237514c5293d94f0cb2d04cd8a1ede739d38262e831ca9ddaf12ed83ccb35661a23ced1a57b823f1a9daec79d6f79c34e856e01986ae5e80c3448f89e0a30f languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.12.1, @babel/plugin-transform-spread@npm:^7.15.8": - version: 7.15.8 - resolution: "@babel/plugin-transform-spread@npm:7.15.8" +"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.12.1, @babel/plugin-transform-spread@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-spread@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.15.4 + "@babel/helper-skip-transparent-expression-wrappers": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9c2c44d0032fb6afeefa3a82443f98dc3acf41824d98c83181fa1431be709f92a1be79a37c4873dbbcf63fda4e583cbc65742562bdfe68f453d3875ac3b6579b + checksum: 7b667202d67d5bf2aa36c66d4f7bc7cd80c77a1c522994e4ac3083155d526bedcf93e2013ac3f7d96c049a49e154f687b325bf7a54bbcb8d764ab236e2c78391 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.14.5" +"@babel/plugin-transform-sticky-regex@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2f8276fe352b180852d986a8d899db4da3522bb3fa811fee3fc84d5b84ae5a616f3cf771690cc6e34c840c3b09685fed0b2de04be48adfd749344b12640cef61 + checksum: 39d54f54d17cf944f527f56bf7ef8c93bfc0b39ab00fa70dd696d9158936317e30414cc4a9ed6166704113a5f35e0483d53a8e867e5d570bbe249ffb5fefaf7b languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.12.1, @babel/plugin-transform-template-literals@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-template-literals@npm:7.14.5" +"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.12.1, @babel/plugin-transform-template-literals@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-template-literals@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 58f5f70ae5343331b3840c423044cd788e0f9628deae73b4b1584a98f36c9d4184a49667e0f8640cb50f349e47fa7e78bb8f2344a4210ed84236324cbf758725 + checksum: d6e085cd2ba3f57c3e2dd2f427bd95e5df257ecdb5cf024c5067fb559945e1bcb758acde8e6f918f66c3f04faccb3a268be76b40cb2c5b784825d2d34c3fad33 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.14.5" +"@babel/plugin-transform-typeof-symbol@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 380d6b382e470cbdd2a89430415016cfac20f3b78a0742107fffa17f7bc211be78e6cfa207df6e19345298a7100b6fe8f2275714338b25785ab1d46b638a9f91 + checksum: 8eb6ee5cb2d33146ea9e1e221b99d0e2d55abaed1792b675d498a955a841eb26031ea7807935b2ed58f198acdfcf5dad90da1c8a13ba58dd4e7c89e438e77608 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:7.15.8, @babel/plugin-transform-typescript@npm:^7.15.0": - version: 7.15.8 - resolution: "@babel/plugin-transform-typescript@npm:7.15.8" +"@babel/plugin-transform-typescript@npm:7.16.1, @babel/plugin-transform-typescript@npm:^7.16.0": + version: 7.16.1 + resolution: "@babel/plugin-transform-typescript@npm:7.16.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.15.4 + "@babel/helper-create-class-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 - "@babel/plugin-syntax-typescript": ^7.14.5 + "@babel/plugin-syntax-typescript": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ed7264fc10b1a5e02f1954e89d8424217547d5459b076ae45f89fd9d055e4deaabb4805c4a8e65d45103bb6d702b7d1545e9bfdabbd1b1710f6f6bb4792110ba + checksum: a450a28ff4b493b154cad96ab7aa1ba0c5ad44cf4fec0b5d825ef2fa19381077948ba0600a92dbc21a71d09c8b0d204d0422061499eb851b1e6a3d934bd87285 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.14.5" +"@babel/plugin-transform-unicode-escapes@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bcc79f236c351740d3b1b9c262457d8f24ab80d9ce99291d1d259d84d379fbca60055b145bb625f1661ca76fdc886f10145d563aad823e17e278d8145a7b0319 + checksum: 9e0119156e26f6f1a48d85cd7549c50adb39e5721f000900c798884fd31b819a14e60b3359cb200a44e8ca11315dca80815971a93176acf841b167d5e823db58 languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.14.5" +"@babel/plugin-transform-unicode-regex@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.16.0" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.14.5 + "@babel/helper-create-regexp-features-plugin": ^7.16.0 "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f02a91fcbf98707d6d00f8130a1c260e512c6fcf4cd97d110d9161156427118c91146bdc0455fd4098d15e4128030465a5abd828472d11b32090eff4a291afe5 + checksum: 10f58f7312e23fa662c9456980c162c0c6010198f52f8a74c34b2a2ce8fd674ea5fc42b7b4c9d944942dda363d90ccb027e944ab2512ca55e9a670ab34ba5993 languageName: node linkType: hard -"@babel/preset-env@npm:7.15.8, @babel/preset-env@npm:^7.12.11": - version: 7.15.8 - resolution: "@babel/preset-env@npm:7.15.8" +"@babel/preset-env@npm:7.16.4, @babel/preset-env@npm:^7.12.11": + version: 7.16.4 + resolution: "@babel/preset-env@npm:7.16.4" dependencies: - "@babel/compat-data": ^7.15.0 - "@babel/helper-compilation-targets": ^7.15.4 + "@babel/compat-data": ^7.16.4 + "@babel/helper-compilation-targets": ^7.16.3 "@babel/helper-plugin-utils": ^7.14.5 "@babel/helper-validator-option": ^7.14.5 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.15.4 - "@babel/plugin-proposal-async-generator-functions": ^7.15.8 - "@babel/plugin-proposal-class-properties": ^7.14.5 - "@babel/plugin-proposal-class-static-block": ^7.15.4 - "@babel/plugin-proposal-dynamic-import": ^7.14.5 - "@babel/plugin-proposal-export-namespace-from": ^7.14.5 - "@babel/plugin-proposal-json-strings": ^7.14.5 - "@babel/plugin-proposal-logical-assignment-operators": ^7.14.5 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.14.5 - "@babel/plugin-proposal-numeric-separator": ^7.14.5 - "@babel/plugin-proposal-object-rest-spread": ^7.15.6 - "@babel/plugin-proposal-optional-catch-binding": ^7.14.5 - "@babel/plugin-proposal-optional-chaining": ^7.14.5 - "@babel/plugin-proposal-private-methods": ^7.14.5 - "@babel/plugin-proposal-private-property-in-object": ^7.15.4 - "@babel/plugin-proposal-unicode-property-regex": ^7.14.5 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.16.2 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.16.0 + "@babel/plugin-proposal-async-generator-functions": ^7.16.4 + "@babel/plugin-proposal-class-properties": ^7.16.0 + "@babel/plugin-proposal-class-static-block": ^7.16.0 + "@babel/plugin-proposal-dynamic-import": ^7.16.0 + "@babel/plugin-proposal-export-namespace-from": ^7.16.0 + "@babel/plugin-proposal-json-strings": ^7.16.0 + "@babel/plugin-proposal-logical-assignment-operators": ^7.16.0 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.16.0 + "@babel/plugin-proposal-numeric-separator": ^7.16.0 + "@babel/plugin-proposal-object-rest-spread": ^7.16.0 + "@babel/plugin-proposal-optional-catch-binding": ^7.16.0 + "@babel/plugin-proposal-optional-chaining": ^7.16.0 + "@babel/plugin-proposal-private-methods": ^7.16.0 + "@babel/plugin-proposal-private-property-in-object": ^7.16.0 + "@babel/plugin-proposal-unicode-property-regex": ^7.16.0 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 "@babel/plugin-syntax-class-static-block": ^7.14.5 @@ -1530,48 +1526,48 @@ __metadata: "@babel/plugin-syntax-optional-chaining": ^7.8.3 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-transform-arrow-functions": ^7.14.5 - "@babel/plugin-transform-async-to-generator": ^7.14.5 - "@babel/plugin-transform-block-scoped-functions": ^7.14.5 - "@babel/plugin-transform-block-scoping": ^7.15.3 - "@babel/plugin-transform-classes": ^7.15.4 - "@babel/plugin-transform-computed-properties": ^7.14.5 - "@babel/plugin-transform-destructuring": ^7.14.7 - "@babel/plugin-transform-dotall-regex": ^7.14.5 - "@babel/plugin-transform-duplicate-keys": ^7.14.5 - "@babel/plugin-transform-exponentiation-operator": ^7.14.5 - "@babel/plugin-transform-for-of": ^7.15.4 - "@babel/plugin-transform-function-name": ^7.14.5 - "@babel/plugin-transform-literals": ^7.14.5 - "@babel/plugin-transform-member-expression-literals": ^7.14.5 - "@babel/plugin-transform-modules-amd": ^7.14.5 - "@babel/plugin-transform-modules-commonjs": ^7.15.4 - "@babel/plugin-transform-modules-systemjs": ^7.15.4 - "@babel/plugin-transform-modules-umd": ^7.14.5 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.14.9 - "@babel/plugin-transform-new-target": ^7.14.5 - "@babel/plugin-transform-object-super": ^7.14.5 - "@babel/plugin-transform-parameters": ^7.15.4 - "@babel/plugin-transform-property-literals": ^7.14.5 - "@babel/plugin-transform-regenerator": ^7.14.5 - "@babel/plugin-transform-reserved-words": ^7.14.5 - "@babel/plugin-transform-shorthand-properties": ^7.14.5 - "@babel/plugin-transform-spread": ^7.15.8 - "@babel/plugin-transform-sticky-regex": ^7.14.5 - "@babel/plugin-transform-template-literals": ^7.14.5 - "@babel/plugin-transform-typeof-symbol": ^7.14.5 - "@babel/plugin-transform-unicode-escapes": ^7.14.5 - "@babel/plugin-transform-unicode-regex": ^7.14.5 - "@babel/preset-modules": ^0.1.4 - "@babel/types": ^7.15.6 - babel-plugin-polyfill-corejs2: ^0.2.2 - babel-plugin-polyfill-corejs3: ^0.2.5 - babel-plugin-polyfill-regenerator: ^0.2.2 - core-js-compat: ^3.16.0 + "@babel/plugin-transform-arrow-functions": ^7.16.0 + "@babel/plugin-transform-async-to-generator": ^7.16.0 + "@babel/plugin-transform-block-scoped-functions": ^7.16.0 + "@babel/plugin-transform-block-scoping": ^7.16.0 + "@babel/plugin-transform-classes": ^7.16.0 + "@babel/plugin-transform-computed-properties": ^7.16.0 + "@babel/plugin-transform-destructuring": ^7.16.0 + "@babel/plugin-transform-dotall-regex": ^7.16.0 + "@babel/plugin-transform-duplicate-keys": ^7.16.0 + "@babel/plugin-transform-exponentiation-operator": ^7.16.0 + "@babel/plugin-transform-for-of": ^7.16.0 + "@babel/plugin-transform-function-name": ^7.16.0 + "@babel/plugin-transform-literals": ^7.16.0 + "@babel/plugin-transform-member-expression-literals": ^7.16.0 + "@babel/plugin-transform-modules-amd": ^7.16.0 + "@babel/plugin-transform-modules-commonjs": ^7.16.0 + "@babel/plugin-transform-modules-systemjs": ^7.16.0 + "@babel/plugin-transform-modules-umd": ^7.16.0 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.16.0 + "@babel/plugin-transform-new-target": ^7.16.0 + "@babel/plugin-transform-object-super": ^7.16.0 + "@babel/plugin-transform-parameters": ^7.16.3 + "@babel/plugin-transform-property-literals": ^7.16.0 + "@babel/plugin-transform-regenerator": ^7.16.0 + "@babel/plugin-transform-reserved-words": ^7.16.0 + "@babel/plugin-transform-shorthand-properties": ^7.16.0 + "@babel/plugin-transform-spread": ^7.16.0 + "@babel/plugin-transform-sticky-regex": ^7.16.0 + "@babel/plugin-transform-template-literals": ^7.16.0 + "@babel/plugin-transform-typeof-symbol": ^7.16.0 + "@babel/plugin-transform-unicode-escapes": ^7.16.0 + "@babel/plugin-transform-unicode-regex": ^7.16.0 + "@babel/preset-modules": ^0.1.5 + "@babel/types": ^7.16.0 + babel-plugin-polyfill-corejs2: ^0.3.0 + babel-plugin-polyfill-corejs3: ^0.4.0 + babel-plugin-polyfill-regenerator: ^0.3.0 + core-js-compat: ^3.19.1 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 81901f2125635e86dd0f8b9853bb106100b8754897dac2a8216ca87a82f1cf02b78c99040b17bfe90ccc6a6e8459ad35597286d69c3f6dcc254baba4ffcc15c1 + checksum: 6f6f3adbfc3b917dca344821b78e23a0f31beac1c519b8b3f3445002eaa48625bca720cb3a81b6f2391831ed8444234404cbb275e477539ecfc64b54b3b23c36 languageName: node linkType: hard @@ -1588,9 +1584,9 @@ __metadata: languageName: node linkType: hard -"@babel/preset-modules@npm:^0.1.4": - version: 0.1.4 - resolution: "@babel/preset-modules@npm:0.1.4" +"@babel/preset-modules@npm:^0.1.5": + version: 0.1.5 + resolution: "@babel/preset-modules@npm:0.1.5" dependencies: "@babel/helper-plugin-utils": ^7.0.0 "@babel/plugin-proposal-unicode-property-regex": ^7.4.4 @@ -1599,42 +1595,42 @@ __metadata: esutils: ^2.0.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3f2fed853d1c1c29dddf851b98228a8f755d099352d08c841ae5a86e71086138b10b2cc533bfe871bab5632ee3ea41c82690b1e62617d17ee3b3272be3ec3f8d + checksum: bd90081d96b746c1940dc1ce056dee06ed3a128d20936aee1d1795199f789f9a61293ef738343ae10c6d53970c17285d5e147a945dded35423aacb75083b8a89 languageName: node linkType: hard -"@babel/preset-react@npm:7.14.5, @babel/preset-react@npm:^7.12.10": - version: 7.14.5 - resolution: "@babel/preset-react@npm:7.14.5" +"@babel/preset-react@npm:7.16.0, @babel/preset-react@npm:^7.12.10": + version: 7.16.0 + resolution: "@babel/preset-react@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/helper-validator-option": ^7.14.5 - "@babel/plugin-transform-react-display-name": ^7.14.5 - "@babel/plugin-transform-react-jsx": ^7.14.5 - "@babel/plugin-transform-react-jsx-development": ^7.14.5 - "@babel/plugin-transform-react-pure-annotations": ^7.14.5 + "@babel/plugin-transform-react-display-name": ^7.16.0 + "@babel/plugin-transform-react-jsx": ^7.16.0 + "@babel/plugin-transform-react-jsx-development": ^7.16.0 + "@babel/plugin-transform-react-pure-annotations": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 24f37a191f151075b02f400b91fd0f73bba7698c29da89e1fca0577478817da17240821c69872801a15cfd2d2dd836e784a963e3d4d7064ba6b31d69afc61975 + checksum: 096b473d4c0144a48bf00306ffa462ab446925b9592d14d2b979380befd18310f2316dbe9854d3b181dfcdd6bc9687abca84bc0c1fc4c4a6463859307987e615 languageName: node linkType: hard -"@babel/preset-typescript@npm:7.15.0, @babel/preset-typescript@npm:^7.12.7, @babel/preset-typescript@npm:^7.13.0": - version: 7.15.0 - resolution: "@babel/preset-typescript@npm:7.15.0" +"@babel/preset-typescript@npm:7.16.0, @babel/preset-typescript@npm:^7.12.7, @babel/preset-typescript@npm:^7.13.0": + version: 7.16.0 + resolution: "@babel/preset-typescript@npm:7.16.0" dependencies: "@babel/helper-plugin-utils": ^7.14.5 "@babel/helper-validator-option": ^7.14.5 - "@babel/plugin-transform-typescript": ^7.15.0 + "@babel/plugin-transform-typescript": ^7.16.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 926b793d77d8237eac28ae102b43e0d9b3eb14e4206c54be93abc407d1d22c09e9a8b3ec5ed4e2f13a6942825b29d424799975bc7ccdd87efeef353692d22f64 + checksum: 06c44de7ba8785ac5f0f2f663cbdcc6b1913edbd4b537d6ee2b976ed4af80cbd8bea8f4aef1b9dae1e4fa7a02aa340f7e28ab7e2f0b17e58dc0488f45ff3f888 languageName: node linkType: hard -"@babel/register@npm:7.15.3, @babel/register@npm:^7.12.1, @babel/register@npm:^7.13.16, @babel/register@npm:^7.15.3": - version: 7.15.3 - resolution: "@babel/register@npm:7.15.3" +"@babel/register@npm:7.16.0, @babel/register@npm:^7.12.1, @babel/register@npm:^7.13.16, @babel/register@npm:^7.16.0": + version: 7.16.0 + resolution: "@babel/register@npm:7.16.0" dependencies: clone-deep: ^4.0.1 find-cache-dir: ^2.0.0 @@ -1643,41 +1639,41 @@ __metadata: source-map-support: ^0.5.16 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d57ee912d6072e923806e3195142405b5540277fcd20c19851af2df755689c3d838931b6d3b69f0ba85d272c28b8888ad7216abf2f5c8016115965c4b7c54453 + checksum: fbe4fb51c119c1d0dad8d7e1711fd6a9204b9cab3aae364aaf6cde30f6dd10da9274395f0039d9c77b23c41608d7c6d2cad7f0ac02e648e6818c4002eb1fa76d languageName: node linkType: hard -"@babel/runtime-corejs3@npm:7.15.4, @babel/runtime-corejs3@npm:^7.10.2": - version: 7.15.4 - resolution: "@babel/runtime-corejs3@npm:7.15.4" +"@babel/runtime-corejs3@npm:7.16.3, @babel/runtime-corejs3@npm:^7.10.2": + version: 7.16.3 + resolution: "@babel/runtime-corejs3@npm:7.16.3" dependencies: - core-js-pure: ^3.16.0 + core-js-pure: ^3.19.0 regenerator-runtime: ^0.13.4 - checksum: 3b86b5c3aaf3c4d0211caf5adbb630ab3be05523adf2ece75b13911524b102ebf87107f95e5d39c3ee69ce8e727c479b9f0b96c492c59c93ccf2283523126ffe + checksum: 3f29d67138fca0062fc4ca77f896c032445ca0934ba53fc5d53151d6f662ca03d7b9da4753ca9c29c24fbdd12dd3b9bb93bb6ac94e4d302f3e8cf440fc1f8ed5 languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.0, @babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2, @babel/runtime@npm:^7.9.6": - version: 7.15.4 - resolution: "@babel/runtime@npm:7.15.4" +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.0, @babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2, @babel/runtime@npm:^7.9.6": + version: 7.16.3 + resolution: "@babel/runtime@npm:7.16.3" dependencies: regenerator-runtime: ^0.13.4 - checksum: 2e366347254c9d3e738641d88a086cdfb1de516111e50ebbe9e6b5d8ed78d41819cf991fc0804fa50e04ae7a2157cc28ef3b4180781af5fecfe65310d7ebf301 + checksum: 37a7f334e8ad1383a78d39224ba9f95b94556189a0f1e93bc1b5729dc18d9eb5eb0ba3742073629cd4024fc101315fe8945931f80ba32518f651a4f0438ec4dc languageName: node linkType: hard -"@babel/template@npm:^7.12.7, @babel/template@npm:^7.15.4, @babel/template@npm:^7.3.3": - version: 7.15.4 - resolution: "@babel/template@npm:7.15.4" +"@babel/template@npm:^7.12.7, @babel/template@npm:^7.16.0, @babel/template@npm:^7.3.3": + version: 7.16.0 + resolution: "@babel/template@npm:7.16.0" dependencies: - "@babel/code-frame": ^7.14.5 - "@babel/parser": ^7.15.4 - "@babel/types": ^7.15.4 - checksum: 4ce66d750f3075350a89d998433f1815230469e169398652d0964774ab9b568655afd592f14f9da2e430d173c59fdf9c6a5d26e385fc1dae7e69a88faeae56fe + "@babel/code-frame": ^7.16.0 + "@babel/parser": ^7.16.0 + "@babel/types": ^7.16.0 + checksum: 24f65ebd01839e5e501cd74e5466ef5dc5066bfd36ff03c44eb33a0485fd2eccbb22745c2ed6fc9ffb65e279cfc7c8c438ae72ec1892a8a103eba36f823a8dff languageName: node linkType: hard -"@babel/traverse@npm:7.15.4, @babel/traverse@npm:^7.0.0, @babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.12.11, @babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.15.4, @babel/traverse@npm:^7.7.2": +"@babel/traverse@npm:7.15.4": version: 7.15.4 resolution: "@babel/traverse@npm:7.15.4" dependencies: @@ -1694,7 +1690,24 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:7.15.6, @babel/types@npm:^7.0.0, @babel/types@npm:^7.1.6, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.7, @babel/types@npm:^7.14.9, @babel/types@npm:^7.15.4, @babel/types@npm:^7.15.6, @babel/types@npm:^7.2.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/traverse@npm:7.16.3, @babel/traverse@npm:^7.0.0, @babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.12.11, @babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.16.3, @babel/traverse@npm:^7.7.2": + version: 7.16.3 + resolution: "@babel/traverse@npm:7.16.3" + dependencies: + "@babel/code-frame": ^7.16.0 + "@babel/generator": ^7.16.0 + "@babel/helper-function-name": ^7.16.0 + "@babel/helper-hoist-variables": ^7.16.0 + "@babel/helper-split-export-declaration": ^7.16.0 + "@babel/parser": ^7.16.3 + "@babel/types": ^7.16.0 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 484296dbe162446e3254a60ed2ca9efe9cf1b3960d3607b78ccaeac68b23a97166963da3df1d88fc1efb209185ef68835737794acc6504e307c512723331d099 + languageName: node + linkType: hard + +"@babel/types@npm:7.15.6": version: 7.15.6 resolution: "@babel/types@npm:7.15.6" dependencies: @@ -1704,6 +1717,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.1.6, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.7, @babel/types@npm:^7.15.4, @babel/types@npm:^7.16.0, @babel/types@npm:^7.2.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.16.0 + resolution: "@babel/types@npm:7.16.0" + dependencies: + "@babel/helper-validator-identifier": ^7.15.7 + to-fast-properties: ^2.0.0 + checksum: 85109116bb5f8a5779b1ce900eb076c9035607cf354173eb9af8cfdaacc4892161f795fd062561f680ab4fd09f792db9529b4515e99c9ace2c844b21c9f5d2b0 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -1711,28 +1734,29 @@ __metadata: languageName: node linkType: hard -"@clerk/clerk-js@npm:1.33.0": - version: 1.33.0 - resolution: "@clerk/clerk-js@npm:1.33.0" +"@clerk/clerk-js@npm:2.3.0": + version: 2.3.0 + resolution: "@clerk/clerk-js@npm:2.3.0" dependencies: - "@clerk/types": 1.13.0 + "@clerk/types": 1.16.0 "@popperjs/core": ^2.4.4 browser-tabs-lock: ^1.2.15 classnames: ^2.2.6 - core-js: 3.8.1 + core-js: ^3.18.3 + deepmerge: ^4.2.2 js-cookie: ^2.2.1 qs: ^6.9.4 react: 16.13.1 react-dom: 16.13.1 react-popper: ^2.2.3 regenerator-runtime: ^0.13.7 - checksum: ca188cc8aa320670e0155ff806dcfe121dc9aaa68b612508bf256191d6691c727c075add1cfd22d29e8e4e4b32613f7bbfa7fcf0ced6cd4f93082e40fe7a0a57 + checksum: 3c8cb69d2770c1b4da2c8e685c72fb769c830be0a2dc35df66e6f19b895e4d66987bb655f13e85686b2c1068989e154c677494a06f39634749c7e82d9b4eaa8b languageName: node linkType: hard -"@clerk/clerk-sdk-node@npm:0.5.2": - version: 0.5.2 - resolution: "@clerk/clerk-sdk-node@npm:0.5.2" +"@clerk/clerk-sdk-node@npm:2.1.2": + version: 2.1.2 + resolution: "@clerk/clerk-sdk-node@npm:2.1.2" dependencies: "@types/cookies": ^0.7.6 "@types/jsonwebtoken": ^8.5.4 @@ -1743,14 +1767,14 @@ __metadata: jwks-rsa: ^2.0.4 lodash: ^4.17.21 snakecase-keys: ^3.2.1 - checksum: 81f27f0e617440f8138afdef0006a7cea4309856fad850e69176136e49c4ac44891a9a1337e62f4c201c4813e91e4d1264d924d7c9b72b40f7238bdf1202c4d9 + checksum: 6d7c389a931a3451020c43d4113dfc91c4e28819526e2c31993f847d74ad8df4d4656afab55ba1921081b6d9294a133711f1f53f404358e8b61f27862c78df17 languageName: node linkType: hard -"@clerk/types@npm:1.13.0": - version: 1.13.0 - resolution: "@clerk/types@npm:1.13.0" - checksum: f7c164a4080fd0b83fb3e91a50c3d89d32c6bbc2e4e392115eb4058d845bc9f49decff596998f208413f751e685f2b958cf2633b404a2a459a0ab3e3f3f3d29d +"@clerk/types@npm:1.16.0": + version: 1.16.0 + resolution: "@clerk/types@npm:1.16.0" + checksum: 40704217091a6e4f606381677b80c4e6cd1797d7bac737ab32efa45eedca5d749161b7e2460bb905484b697ea37a3e200e6b55858a00603bd285a103f34bb122 languageName: node linkType: hard @@ -1913,102 +1937,109 @@ __metadata: languageName: node linkType: hard -"@envelop/core@npm:1.3.0": - version: 1.3.0 - resolution: "@envelop/core@npm:1.3.0" +"@envelop/core@npm:1.6.2, @envelop/core@npm:^1.6.1": + version: 1.6.2 + resolution: "@envelop/core@npm:1.6.2" dependencies: - "@envelop/types": 1.2.0 + "@envelop/types": 1.5.1 peerDependencies: - graphql: ^14.0.0 || ^15.0.0 - checksum: 0f955d1e56cad8b07ee9e8806893ca70564c705bc4000237aca0144652ae5b761c1f408da50960d3ded79a8f3cd4f7775b4d53dcc9dda434c4673fc553cdd90f + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 863d1415c91ccb030ff82318143a58850325f6000c0f29afa5f60afe27eb6c4497413319123be1824cfa7d1242ad7b628d55e9a8358632d74a737c4c86ad9c90 languageName: node linkType: hard -"@envelop/depth-limit@npm:1.0.0": - version: 1.0.0 - resolution: "@envelop/depth-limit@npm:1.0.0" +"@envelop/depth-limit@npm:1.2.1": + version: 1.2.1 + resolution: "@envelop/depth-limit@npm:1.2.1" dependencies: + "@envelop/core": ^1.6.1 graphql-depth-limit: ^1.1.0 peerDependencies: - graphql: ^14.0.0 || ^15.0.0 - checksum: ac5f74730fe081af465bba24b99fd721e5ab906f46bc031dc313e1bf8a56295a616f0868adaa39c5861b0beb84746c5181f59a56b24e6aec61d18a5fee4b4042 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 7fc0bb42f9873f060f44c686d24dac5e2c81891a93ae9a245483ff28f75d4de4e763c5a906b8f46257cc1d63f6f8dda06f8d85255b60a655911c7f37de5ff367 languageName: node linkType: hard -"@envelop/disable-introspection@npm:1.0.0": - version: 1.0.0 - resolution: "@envelop/disable-introspection@npm:1.0.0" +"@envelop/disable-introspection@npm:1.2.1": + version: 1.2.1 + resolution: "@envelop/disable-introspection@npm:1.2.1" peerDependencies: - graphql: ^14.0.0 || ^15.0.0 - checksum: 924887583440e9dd82237ce0aa4acd700ce0c3cb7343d277af862def1ce9ba7adee89a62305c986e74d48950d669bf01f268e1dbde097117aa03eb051f05d6ce + "@envelop/core": ^1.6.1 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: b6021c8087e240d957c8b63fda040d53eac9d2754c79b67a3d4edc2528537d4ec2c0b034f8be88f7453d125b0ac60455f9439a03b2a1492c060c4cb02ad55547 languageName: node linkType: hard -"@envelop/filter-operation-type@npm:1.0.0": - version: 1.0.0 - resolution: "@envelop/filter-operation-type@npm:1.0.0" +"@envelop/filter-operation-type@npm:1.2.1": + version: 1.2.1 + resolution: "@envelop/filter-operation-type@npm:1.2.1" peerDependencies: - graphql: ^14.0.0 || ^15.0.0 - checksum: c3f475eff590388e14a48161d72ffa9810eba49de296708ccc595783af60c69bd1efba7d5f4ed7b0022414a2896ae1e7a7acdebfa188a32ec6372f9fd8aec78e + "@envelop/core": ^1.6.1 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 98800860fda9c48d5746c15fb421682e6660692eb7b583906981ae1463a46965522ac47309893cb2681ef1284a0bd8595ef8d48f8e68c4ec926ba015214ea00d languageName: node linkType: hard -"@envelop/parser-cache@npm:2.0.0": - version: 2.0.0 - resolution: "@envelop/parser-cache@npm:2.0.0" +"@envelop/parser-cache@npm:2.2.1": + version: 2.2.1 + resolution: "@envelop/parser-cache@npm:2.2.1" dependencies: tiny-lru: 7.0.6 peerDependencies: - graphql: ^14.0.0 || ^15.0.0 - checksum: b2eff77bd23ae9eb84a0f8dcdd5520b044d16c91edced147512cc3627973a49758af8c21de1843dfa23543941ed5267be7edca994aee5418408d20c71475a819 + "@envelop/core": ^1.6.1 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: acc67b41e269ea4ffc9e441596444a191eac090db15a64ac0a4c9e4e287077044bd05dfea6a0221092d41f98c1ca68421f7047f51d1b382b12f2c27aa84d6742 languageName: node linkType: hard -"@envelop/testing@npm:2.0.0": - version: 2.0.0 - resolution: "@envelop/testing@npm:2.0.0" +"@envelop/testing@npm:2.1.1": + version: 2.1.1 + resolution: "@envelop/testing@npm:2.1.1" + dependencies: + "@graphql-tools/utils": ^8.5.3 peerDependencies: - "@envelop/core": ^1.3.0 - "@envelop/types": ^1.2.0 - graphql: ^14.0.0 || ^15.0.0 - checksum: 1d860e1f790d53b2d3d65aae1be3f0e69712855706588fb81d2d2572a702a71f32bc12e3b48df5336069238554b43324be11ddc206de744a96fa3792ad4943a3 + "@envelop/core": ^1.6.1 + "@envelop/types": ^1.5.1 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 6caec20e435f6f4406d5e1102ac7fc735f77ec5172dadb30edf74c77d17d56e7e1e653825c2f938f85a1efc37561e0f6f78bf93ac7c9f75681942b358faeacd9 languageName: node linkType: hard -"@envelop/types@npm:1.2.0": - version: 1.2.0 - resolution: "@envelop/types@npm:1.2.0" +"@envelop/types@npm:1.5.1": + version: 1.5.1 + resolution: "@envelop/types@npm:1.5.1" peerDependencies: - graphql: ^14.0.0 || ^15.0.0 - checksum: df06d3816e4c981aafb66a7f6be0fa052a7d891fa9c787a41bc75c40cf41e2f82fb9abb0cbb20b204dde482b0f5b29a3ff14c2b830b77151ba15308a4dac91c0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 6693d2b1526ed5fbac4ee735cf62ca0fb50784635c99f806e097b774f93a6f64d6abe64b0835b0faef24d29148a97080d1559480f89261342f31cf257ae3a4c1 languageName: node linkType: hard -"@envelop/validation-cache@npm:2.0.0": - version: 2.0.0 - resolution: "@envelop/validation-cache@npm:2.0.0" +"@envelop/validation-cache@npm:2.2.1": + version: 2.2.1 + resolution: "@envelop/validation-cache@npm:2.2.1" dependencies: tiny-lru: 7.0.6 peerDependencies: - graphql: ^14.0.0 || ^15.0.0 - checksum: 07357fcd174eb2d40e36abd1e7c10521db9fe9ed51c9cef5ca8a3f2dcb61e6ad262f8a8e35f80ce2df1edc46022b6486bc0b31cbd98600c55c5b6b9c78fada7d + "@envelop/core": ^1.6.1 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 4e62932b14a209cad744c564e28dd4f54a2425ed0884bd7d7808c59a247847d928c518c4c97aa6107ee8c116642f77a362aa1f130a0e7b5506fc71db66d299d7 languageName: node linkType: hard -"@eslint/eslintrc@npm:^0.4.3": - version: 0.4.3 - resolution: "@eslint/eslintrc@npm:0.4.3" +"@eslint/eslintrc@npm:^1.0.4": + version: 1.0.4 + resolution: "@eslint/eslintrc@npm:1.0.4" dependencies: ajv: ^6.12.4 - debug: ^4.1.1 - espree: ^7.3.0 + debug: ^4.3.2 + espree: ^9.0.0 globals: ^13.9.0 ignore: ^4.0.6 import-fresh: ^3.2.1 - js-yaml: ^3.13.1 + js-yaml: ^4.1.0 minimatch: ^3.0.4 strip-json-comments: ^3.1.1 - checksum: 0eed93369f72ef044686d07824742121f9b95153ff34f4614e4e69d64332ee68c84eb70da851a9005bb76b3d1d64ad76c2e6293a808edc0f7dfb883689ca136d + checksum: 3e1d5151dea296000bb5406ce10d341fb457fbc99fe717b0bb342298f7b5ae4151288964cac815ed06a507c947addd5aa7a13a034149ef0947672ff3b1812cda languageName: node linkType: hard @@ -2140,18 +2171,18 @@ __metadata: languageName: node linkType: hard -"@firebase/analytics-compat@npm:0.1.3": - version: 0.1.3 - resolution: "@firebase/analytics-compat@npm:0.1.3" +"@firebase/analytics-compat@npm:0.1.5": + version: 0.1.5 + resolution: "@firebase/analytics-compat@npm:0.1.5" dependencies: - "@firebase/analytics": 0.7.2 + "@firebase/analytics": 0.7.4 "@firebase/analytics-types": 0.7.0 - "@firebase/component": 0.5.7 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: 7efa9d4cacdde7310437d9475621038e8a67ef1dd0e666c58bd1c5962eafc0181677b64f54f6aba82187ceedc58313c6df13fe6043e945b87e0f896ab3eacce0 + checksum: 3fc21a8dce9de5c80fc595c2dd9fe8fc6db5249e7b8d9f4bfd6d81df38ea881783534d5cf48884225965a58c0cb4ac236684797ef1b8e624665e305f9676c6aa languageName: node linkType: hard @@ -2162,33 +2193,33 @@ __metadata: languageName: node linkType: hard -"@firebase/analytics@npm:0.7.2": - version: 0.7.2 - resolution: "@firebase/analytics@npm:0.7.2" +"@firebase/analytics@npm:0.7.4": + version: 0.7.4 + resolution: "@firebase/analytics@npm:0.7.4" dependencies: - "@firebase/component": 0.5.7 - "@firebase/installations": 0.5.2 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/installations": 0.5.4 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: 2b9cc9ea55e7159b7505f3583ecf51d58868732983956014573df7fb6d92884597aca0feeda693ff9c83966adf664f745f29627eb9c711c1b3a7e7527f0cd747 + checksum: 65a77e7a1f58a8a2a7a94b85725cfd6041e6159ff611dce65656f6abc32b06db6346143f7fe2836eb945f10116c71773c1dd59f2438b37342eaa03b3ca9ae420 languageName: node linkType: hard -"@firebase/app-check-compat@npm:0.1.3": - version: 0.1.3 - resolution: "@firebase/app-check-compat@npm:0.1.3" +"@firebase/app-check-compat@npm:0.2.2": + version: 0.2.2 + resolution: "@firebase/app-check-compat@npm:0.2.2" dependencies: - "@firebase/app-check": 0.4.2 - "@firebase/component": 0.5.7 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/app-check": 0.5.2 + "@firebase/component": 0.5.9 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: 40f1d125a5ab5ee057604ae9c9ef3b02d66359f7fb938b7bcc271d87938da04690c5aaa56d84890fb677062f5441d1aeeaea7b7a250354755dd889d0ddb0ccf3 + checksum: 4b173593d9675c8a466fff66899db29ef0ab26c721f0fd3430bca005ea08239f32b6ae985dc775e983dc6405e81bd32fbb7ae8d3d0c50c750305c85ac2e054a9 languageName: node linkType: hard @@ -2199,30 +2230,30 @@ __metadata: languageName: node linkType: hard -"@firebase/app-check@npm:0.4.2": - version: 0.4.2 - resolution: "@firebase/app-check@npm:0.4.2" +"@firebase/app-check@npm:0.5.2": + version: 0.5.2 + resolution: "@firebase/app-check@npm:0.5.2" dependencies: - "@firebase/component": 0.5.7 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: 245ea18c4b4c36e1ea291067d7af4a4822ced61e8bb1a79846048ae13ad89399fa5691b16e15fedaa14efd22ad31e27337c026e876c4b87ac1d7f129d1a9b1c4 + checksum: ed265205dac91d4ccad6ac2f001a13a1e9d9b03a0ca61e03afafadfd237e0bf495c1fbeb13bfd6861e9e3b47cf70ac8da755415bd4ebf5ce2b68c9775cb31aa0 languageName: node linkType: hard -"@firebase/app-compat@npm:0.1.5": - version: 0.1.5 - resolution: "@firebase/app-compat@npm:0.1.5" +"@firebase/app-compat@npm:0.1.10": + version: 0.1.10 + resolution: "@firebase/app-compat@npm:0.1.10" dependencies: - "@firebase/app": 0.7.4 - "@firebase/component": 0.5.7 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/app": 0.7.9 + "@firebase/component": 0.5.9 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 tslib: ^2.1.0 - checksum: 49cd41e086e17f6868ac8d2fab9c732044af73d7330d7ab9dd532a57bd7956d20471ebb8e4319143b136529372aecbbbc5106e72707e9e52f61f3fe9c558daed + checksum: 028cc840efc8eeb8bf707950809f0f635388c046ddfa9da1cfefda75a59bf56014e469fe41dd8f4e96b092c3c8601763efaf00be90110a6710b2d6c261e16f82 languageName: node linkType: hard @@ -2240,32 +2271,32 @@ __metadata: languageName: node linkType: hard -"@firebase/app@npm:0.7.4": - version: 0.7.4 - resolution: "@firebase/app@npm:0.7.4" +"@firebase/app@npm:0.7.9": + version: 0.7.9 + resolution: "@firebase/app@npm:0.7.9" dependencies: - "@firebase/component": 0.5.7 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 tslib: ^2.1.0 - checksum: 4d0422f4876ba299fb26fe121eba02c97e5011b35e4a1f548e04dd472e7f367b25e7b711d47a6126fb97dfbabb778d9fe9b5c6bf6897a4736d8727487163d2b8 + checksum: baf1abce4ce759ff6322a8d51d9470f2b139e9fbefdba149e596abd343178c6d57da40531651bd95a1add3abd0be57a73136fa7d8da2d65998eb12b5a55cdd4d languageName: node linkType: hard -"@firebase/auth-compat@npm:0.1.6": - version: 0.1.6 - resolution: "@firebase/auth-compat@npm:0.1.6" +"@firebase/auth-compat@npm:0.2.3": + version: 0.2.3 + resolution: "@firebase/auth-compat@npm:0.2.3" dependencies: - "@firebase/auth": 0.18.3 + "@firebase/auth": 0.19.3 "@firebase/auth-types": 0.11.0 - "@firebase/component": 0.5.7 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/util": 1.4.2 node-fetch: 2.6.5 selenium-webdriver: ^4.0.0-beta.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: 7cd4e1fb13d0edfdc66bbc54c2944b99b8e28d51b3c05d300e460d14c4956c2d90fbefa17911a3b72c940a3f66adeac009a264d5ecfe6388039e7b437f90a8ac + checksum: 9261888d400ecdd29b045c34af2b8022aefae66848df5a1b10f669ac6e33d14531f638f6e190c7c7f7041955fd571de18872731149754201820501a85e3737ee languageName: node linkType: hard @@ -2289,55 +2320,55 @@ __metadata: languageName: node linkType: hard -"@firebase/auth@npm:0.18.3": - version: 0.18.3 - resolution: "@firebase/auth@npm:0.18.3" +"@firebase/auth@npm:0.19.3": + version: 0.19.3 + resolution: "@firebase/auth@npm:0.19.3" dependencies: - "@firebase/component": 0.5.7 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 node-fetch: 2.6.5 selenium-webdriver: 4.0.0-rc-1 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: bd62b41731ba1cb33e64009755e7f8a06cac705edf43c2115b95ad4776efdd084703bf9481fea942a6b75a260062f6f2271989394796c120ba1c6ee64b7a38ac + checksum: ee8602954412df01e750b7ceb936f691d6640fba7d2d1c653fa76c688de43aaa47dbe6e531c61d9d453e53d613b6ceb75e0294646824d7eb9b9bf8975694442a languageName: node linkType: hard -"@firebase/component@npm:0.5.7": - version: 0.5.7 - resolution: "@firebase/component@npm:0.5.7" +"@firebase/component@npm:0.5.9": + version: 0.5.9 + resolution: "@firebase/component@npm:0.5.9" dependencies: - "@firebase/util": 1.4.0 + "@firebase/util": 1.4.2 tslib: ^2.1.0 - checksum: 1b7f2ddf61ad5992ac38e31b04399156ed4cc4fd1138b258afe94d9bc8a1a7194880149d5008bda5d1bc2e9b3d29fa95d24b939a6659bce129f3d7d49a532a0f + checksum: 3d3cf64996998c935b45c022b2474cd962a7c9f812af395ca319586f8b16e8e011b4f05aabba55fc9eb7e36929524865875ecce265825aa50485f319e67b70fc languageName: node linkType: hard -"@firebase/database-compat@npm:0.1.2, @firebase/database-compat@npm:^0.1.1": - version: 0.1.2 - resolution: "@firebase/database-compat@npm:0.1.2" +"@firebase/database-compat@npm:0.1.4, @firebase/database-compat@npm:^0.1.1": + version: 0.1.4 + resolution: "@firebase/database-compat@npm:0.1.4" dependencies: - "@firebase/component": 0.5.7 - "@firebase/database": 0.12.2 - "@firebase/database-types": 0.9.1 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/database": 0.12.4 + "@firebase/database-types": 0.9.3 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: e887aedd44a887e0dac31aec8d7d8718254c03903eba32c45a55dff376648d5aeb6fa5a94bfa01c9ac83f9a3e3a7ff7359c8c5706b9e68e7803e9d5fa85595ec + checksum: 16b663c8e84b78a3b24478ab8e1d113899b24027a6378dc76354628fe122d6f790b27d6a737e9678f369d99766e87b7be715e5137877db391525a883e5fd3c54 languageName: node linkType: hard -"@firebase/database-types@npm:0.9.1": - version: 0.9.1 - resolution: "@firebase/database-types@npm:0.9.1" +"@firebase/database-types@npm:0.9.3": + version: 0.9.3 + resolution: "@firebase/database-types@npm:0.9.3" dependencies: "@firebase/app-types": 0.7.0 - "@firebase/util": 1.4.0 - checksum: b08b0ee6e923b162ea7294847aab7be23ee10c92638be2582c0d122f70f365df359143f586bb9b80ea508a886757bc20c9d22f87859b0e1f6b395f9b30733223 + "@firebase/util": 1.4.2 + checksum: b095044ddca4eb670ce2f6996da2f22b3262935632e3486c0dcc8153346b6a7294d1a6bdcf4c411fe261673596f528dae9124ce967c11b17957404ff4f7340ee languageName: node linkType: hard @@ -2350,32 +2381,32 @@ __metadata: languageName: node linkType: hard -"@firebase/database@npm:0.12.2": - version: 0.12.2 - resolution: "@firebase/database@npm:0.12.2" +"@firebase/database@npm:0.12.4": + version: 0.12.4 + resolution: "@firebase/database@npm:0.12.4" dependencies: "@firebase/auth-interop-types": 0.1.6 - "@firebase/component": 0.5.7 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 faye-websocket: 0.11.4 tslib: ^2.1.0 - checksum: bb56982e85a3da89c5f2c29156fe303d5a42062fd53cdd95ff6d389b43f8c09ae64c6fcc1c7b48a94e9a99d3445aa97760573a236da5e90ca289f8ba6f93803c + checksum: bc8cfb2ce2e99e3358471aed6a8eaa7b3a5599a65b9d1f8f20d321bfc71039a32e804566eacc6ce5a101f015a64effbc8a599c31555edb074114796385323b9a languageName: node linkType: hard -"@firebase/firestore-compat@npm:0.1.4": - version: 0.1.4 - resolution: "@firebase/firestore-compat@npm:0.1.4" +"@firebase/firestore-compat@npm:0.1.8": + version: 0.1.8 + resolution: "@firebase/firestore-compat@npm:0.1.8" dependencies: - "@firebase/component": 0.5.7 - "@firebase/firestore": 3.1.1 + "@firebase/component": 0.5.9 + "@firebase/firestore": 3.3.1 "@firebase/firestore-types": 2.5.0 - "@firebase/util": 1.4.0 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: 55e2ee98ebf4314c9c704803839d8f61894c665b200f53067a436b3179758256e1ee3f4f252e403bea9005f3249b679c35332c48ccd272505bbc413fa060a123 + checksum: f7eec8a63d45f8282e3d96de402d0faaaf437ebce197572baceffbf394e2388c3995d475ee05b8264d1399340d02383ae05d68d8b733c3ee122b3acfea73112f languageName: node linkType: hard @@ -2389,36 +2420,36 @@ __metadata: languageName: node linkType: hard -"@firebase/firestore@npm:3.1.1": - version: 3.1.1 - resolution: "@firebase/firestore@npm:3.1.1" +"@firebase/firestore@npm:3.3.1": + version: 3.3.1 + resolution: "@firebase/firestore@npm:3.3.1" dependencies: - "@firebase/component": 0.5.7 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 - "@firebase/webchannel-wrapper": 0.6.0 + "@firebase/component": 0.5.9 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 + "@firebase/webchannel-wrapper": 0.6.1 "@grpc/grpc-js": ^1.3.2 "@grpc/proto-loader": ^0.6.0 node-fetch: 2.6.5 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: aa170ce0f75f0075734ae2bbe1e3704b791b1abd943ba1d6344df5ac09f1ab64fe3b5b7acba229d78a6811657610d08d23541f6eb87c618ee2a98ab65a00805e + checksum: 925f23d7a6c023546074e226797be9d443621f0f462c249e671da75e48a400dfb2e5f901bfe457f8d87c14da9ec9bb6252118a23e6512daf2509349ac4e4614d languageName: node linkType: hard -"@firebase/functions-compat@npm:0.1.4": - version: 0.1.4 - resolution: "@firebase/functions-compat@npm:0.1.4" +"@firebase/functions-compat@npm:0.1.7": + version: 0.1.7 + resolution: "@firebase/functions-compat@npm:0.1.7" dependencies: - "@firebase/component": 0.5.7 - "@firebase/functions": 0.7.3 + "@firebase/component": 0.5.9 + "@firebase/functions": 0.7.6 "@firebase/functions-types": 0.5.0 - "@firebase/util": 1.4.0 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: cebfcf2c0788b87621f3daaf1af545966e018caae06c9c3aa5a1773ad5984311f61b53afc9be5052215354a194647d3a55f5d513595376f471bf33296ecf6c95 + checksum: e49c5520f3a4227109b427cb39e221d47905811ff8b7752b91e065929c417a053c563e81bae7be22ab5ebf2df92e0290734b8fab6692dc25f5672c745b63c3a1 languageName: node linkType: hard @@ -2429,57 +2460,57 @@ __metadata: languageName: node linkType: hard -"@firebase/functions@npm:0.7.3": - version: 0.7.3 - resolution: "@firebase/functions@npm:0.7.3" +"@firebase/functions@npm:0.7.6": + version: 0.7.6 + resolution: "@firebase/functions@npm:0.7.6" dependencies: "@firebase/app-check-interop-types": 0.1.0 "@firebase/auth-interop-types": 0.1.6 - "@firebase/component": 0.5.7 + "@firebase/component": 0.5.9 "@firebase/messaging-interop-types": 0.1.0 - "@firebase/util": 1.4.0 + "@firebase/util": 1.4.2 node-fetch: 2.6.5 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: 7b98964d3a33c72932ffef6fe919ac402ab767b3d88671e279eef6d957781bab4bff4df1c8917f5a34c4757ab462602ceabcc1a32e75119f58fa8ef7a18a89d9 + checksum: 797aed6ff8538ed38cc4e6feadf45d5fc0817ec49e1604b46d33f14d43d20328610eb96e51e38dd4692cf09730b97a7ac5ad3d52d63b69477abe7161b1f5cccc languageName: node linkType: hard -"@firebase/installations@npm:0.5.2": - version: 0.5.2 - resolution: "@firebase/installations@npm:0.5.2" +"@firebase/installations@npm:0.5.4": + version: 0.5.4 + resolution: "@firebase/installations@npm:0.5.4" dependencies: - "@firebase/component": 0.5.7 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/util": 1.4.2 idb: 3.0.2 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: 1df765d74b367c2276b7d784fc96d10e225280a114e45792590c6afd818c919c936e5a4b590ad44957940237a863d2c034723cae027937e2287dad3de59cc6eb + checksum: 35bc52ce446e5df51f26a6186348f6ad8198c3ac0710af310c86eb08bbcfc07c12d3e1aeb4fd502c597592eda11375535d8bcea31a6aa94f34e6a107d34c1bd1 languageName: node linkType: hard -"@firebase/logger@npm:0.3.0": - version: 0.3.0 - resolution: "@firebase/logger@npm:0.3.0" +"@firebase/logger@npm:0.3.2": + version: 0.3.2 + resolution: "@firebase/logger@npm:0.3.2" dependencies: tslib: ^2.1.0 - checksum: 783f3a976ee5acf9c5552ea66ed44e6a0a068d54a313b3bcefc9616d5c8b4ef3d98bc492ba0e6ef46be1c90a0c102743f60507ec9c75c50034ca8a0c2bb11018 + checksum: 7d62f08de79d7bfd587fd314706dd050c68d4c413d6070c9d9aa3c07adc9f8257700552ce5ab2f6b80d4c9cd7c2ca1972e4fc4766ceffb9fb5a9892c75e66e3f languageName: node linkType: hard -"@firebase/messaging-compat@npm:0.1.2": - version: 0.1.2 - resolution: "@firebase/messaging-compat@npm:0.1.2" +"@firebase/messaging-compat@npm:0.1.4": + version: 0.1.4 + resolution: "@firebase/messaging-compat@npm:0.1.4" dependencies: - "@firebase/component": 0.5.7 - "@firebase/messaging": 0.9.2 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/messaging": 0.9.4 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: 75f9f1c350929cb05222de6ca7fc008be4398c09fbdaede1f12c580e8ad1e2782eb1f9a805cbd3926441865f55685ebdd4e5f72531bfab4b68bd299af4b25b96 + checksum: 86c70a4f4b5ce75d4b77982db65d6d7936921322466430932e82a0dee6dc341ff1bfc4cf4b773ed7286174feba5aa13a6ed83fcb17919463a2ac2826d94ac0bd languageName: node linkType: hard @@ -2490,35 +2521,35 @@ __metadata: languageName: node linkType: hard -"@firebase/messaging@npm:0.9.2": - version: 0.9.2 - resolution: "@firebase/messaging@npm:0.9.2" +"@firebase/messaging@npm:0.9.4": + version: 0.9.4 + resolution: "@firebase/messaging@npm:0.9.4" dependencies: - "@firebase/component": 0.5.7 - "@firebase/installations": 0.5.2 + "@firebase/component": 0.5.9 + "@firebase/installations": 0.5.4 "@firebase/messaging-interop-types": 0.1.0 - "@firebase/util": 1.4.0 + "@firebase/util": 1.4.2 idb: 3.0.2 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: 9d42df4e441c3f5b5048e1f03ea32617506897d6103a3f5498212121672679331a6daefda0f749e9a3298594a3c1cf0aa66b1939dc40efa16a1bac095d995292 + checksum: c3b5d06a13982f5267965b3401c6dea1316fc8e24e6dfb09f9326a32793ab7e5c4d4e97d2255fbcd542bc9212619d1d4becb4d99d752dd24ade49c5c74367102 languageName: node linkType: hard -"@firebase/performance-compat@npm:0.1.2": - version: 0.1.2 - resolution: "@firebase/performance-compat@npm:0.1.2" +"@firebase/performance-compat@npm:0.1.4": + version: 0.1.4 + resolution: "@firebase/performance-compat@npm:0.1.4" dependencies: - "@firebase/component": 0.5.7 - "@firebase/logger": 0.3.0 - "@firebase/performance": 0.5.2 + "@firebase/component": 0.5.9 + "@firebase/logger": 0.3.2 + "@firebase/performance": 0.5.4 "@firebase/performance-types": 0.1.0 - "@firebase/util": 1.4.0 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: b241cd813994f28bd606bd32881064110272d033471ea84f238fda319c103d1472ab43b86a8308e18d18b851753f2bbdc19611956613651fb62f76e8bece3f91 + checksum: 83cf667bab81ad2859a78f65806c4d6caf699cdad8de34e8f54760eea8335630ef8765078b1fa212c827ad8c67c252b49ab0623f454f9bfe54650248159e5c85 languageName: node linkType: hard @@ -2529,18 +2560,18 @@ __metadata: languageName: node linkType: hard -"@firebase/performance@npm:0.5.2": - version: 0.5.2 - resolution: "@firebase/performance@npm:0.5.2" +"@firebase/performance@npm:0.5.4": + version: 0.5.4 + resolution: "@firebase/performance@npm:0.5.4" dependencies: - "@firebase/component": 0.5.7 - "@firebase/installations": 0.5.2 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/installations": 0.5.4 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: 870aa9e69d32c49adffb7369575451c32fb0d8b93de1c930308afaa7b57df9bee5ee07f068711e4230836261e14a7f1fd410dd0b097007d57a43da56e7c41d8a + checksum: f3a3dc9173eb247d2556a42a19c1525d174a7398ffadd55473f039de585248577b2588b5a07d3d68ac22326b5f5f0ca26ab9ababfefe3d49cd9b9657e1f987be languageName: node linkType: hard @@ -2555,19 +2586,19 @@ __metadata: languageName: node linkType: hard -"@firebase/remote-config-compat@npm:0.1.2": - version: 0.1.2 - resolution: "@firebase/remote-config-compat@npm:0.1.2" +"@firebase/remote-config-compat@npm:0.1.4": + version: 0.1.4 + resolution: "@firebase/remote-config-compat@npm:0.1.4" dependencies: - "@firebase/component": 0.5.7 - "@firebase/logger": 0.3.0 - "@firebase/remote-config": 0.3.1 + "@firebase/component": 0.5.9 + "@firebase/logger": 0.3.2 + "@firebase/remote-config": 0.3.3 "@firebase/remote-config-types": 0.2.0 - "@firebase/util": 1.4.0 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: 3913149fc76ef7916a3e65b5b1fe76212182f1fd71a5ffa1fac82ae69acaa9d75023159ea886fe27698e12717e48cdbe427018ce5f7e54011a4d017eb5880a6a + checksum: a10440d2620c9161c2e617e78cb5835a30862f17d3e340828650b8d05d5348dbe35d62c381bd421dcea101ed2331359ab4bb850e510892c9dbbe61011f4981bf languageName: node linkType: hard @@ -2578,33 +2609,33 @@ __metadata: languageName: node linkType: hard -"@firebase/remote-config@npm:0.3.1": - version: 0.3.1 - resolution: "@firebase/remote-config@npm:0.3.1" +"@firebase/remote-config@npm:0.3.3": + version: 0.3.3 + resolution: "@firebase/remote-config@npm:0.3.3" dependencies: - "@firebase/component": 0.5.7 - "@firebase/installations": 0.5.2 - "@firebase/logger": 0.3.0 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/installations": 0.5.4 + "@firebase/logger": 0.3.2 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: b157bf6f09c6df90596425c55b96bb980064a10e6a408cf2802ad0bee34c639369cbce00cd55c6a8968eb00c6be6e7f9c460d1c5ae73b4027c38442c980aac82 + checksum: ed0f0cab762b569e53fc79f5367c5010b9b47dc523da9201d071476161b6fdc3f81d5537da3033e2d69d4e8a63bd6d819bd3ff813bd315bfeb7519f06fa03457 languageName: node linkType: hard -"@firebase/storage-compat@npm:0.1.4": - version: 0.1.4 - resolution: "@firebase/storage-compat@npm:0.1.4" +"@firebase/storage-compat@npm:0.1.8": + version: 0.1.8 + resolution: "@firebase/storage-compat@npm:0.1.8" dependencies: - "@firebase/component": 0.5.7 - "@firebase/storage": 0.8.4 + "@firebase/component": 0.5.9 + "@firebase/storage": 0.9.0 "@firebase/storage-types": 0.6.0 - "@firebase/util": 1.4.0 + "@firebase/util": 1.4.2 tslib: ^2.1.0 peerDependencies: "@firebase/app-compat": 0.x - checksum: b4b92520fb7e6cff09c5adf181304f219b11ea38ee6bb26e09997915b34180d3c3331d25f850ce9e3e25d518eb622743fd37c5e8bd0407500766553ed58f0988 + checksum: 6d88c1676497b7104024906a649ee0c0ea786f086a6e701a12df86ffde3452d04c0bccb2f09d3a204d645efb7be18b690e241ec3a901174687477ccee7da568f languageName: node linkType: hard @@ -2618,33 +2649,33 @@ __metadata: languageName: node linkType: hard -"@firebase/storage@npm:0.8.4": - version: 0.8.4 - resolution: "@firebase/storage@npm:0.8.4" +"@firebase/storage@npm:0.9.0": + version: 0.9.0 + resolution: "@firebase/storage@npm:0.9.0" dependencies: - "@firebase/component": 0.5.7 - "@firebase/util": 1.4.0 + "@firebase/component": 0.5.9 + "@firebase/util": 1.4.2 node-fetch: 2.6.5 tslib: ^2.1.0 peerDependencies: "@firebase/app": 0.x - checksum: 462d339ae53ced8e574e0063f80f518ad1ecd162fb8d04c4780ddda386c7f27e5c81309c83503351d1f7c98fb6255073c69156ec1f7e40cb7c5d802c7d764a21 + checksum: aef54fcfbd71e2fb5feaef1668472494e92119bf602252f41cb1718069ad1a012fa6470b61d02aee256d2f7c6d41b6f648e3710e08ae00edc0688f06c459e5d2 languageName: node linkType: hard -"@firebase/util@npm:1.4.0": - version: 1.4.0 - resolution: "@firebase/util@npm:1.4.0" +"@firebase/util@npm:1.4.2": + version: 1.4.2 + resolution: "@firebase/util@npm:1.4.2" dependencies: tslib: ^2.1.0 - checksum: c63a265c81aa9ebd8601b874d85f725305dfe9e92bdb12086c7c996f36838eda908a4a17b3164f41cff20003d4a618049b50396b95c669f0b1b9f1ce0ecb1d56 + checksum: d491150a99a6d07f515b9b27d8fb45c0004a184ffeb839128528271aa8dc3c7e8effa4dca1b6272945bef6465ece6515868d49d74ff1c7b1df0eadfe03f41eff languageName: node linkType: hard -"@firebase/webchannel-wrapper@npm:0.6.0": - version: 0.6.0 - resolution: "@firebase/webchannel-wrapper@npm:0.6.0" - checksum: 176abbad5feacce9590fdf02b703269e3ee8b83902d9dbbcb0bd474c44e39f2521c62412c9c851e85236a6e7c7aa739b170a317a8731f4e8f3098bd2cb4db988 +"@firebase/webchannel-wrapper@npm:0.6.1": + version: 0.6.1 + resolution: "@firebase/webchannel-wrapper@npm:0.6.1" + checksum: ecdd59320c400cd807688672f4695383cc0994c7292bfd81058ab6eafd9788ff47073b327df5f9410fa65de62625caf2ea9585a42281adb253bd47ee9e18654f languageName: node linkType: hard @@ -2735,12 +2766,12 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/cli@npm:2.2.1": - version: 2.2.1 - resolution: "@graphql-codegen/cli@npm:2.2.1" +"@graphql-codegen/cli@npm:2.3.0": + version: 2.3.0 + resolution: "@graphql-codegen/cli@npm:2.3.0" dependencies: - "@graphql-codegen/core": 2.2.0 - "@graphql-codegen/plugin-helpers": ^2.2.0 + "@graphql-codegen/core": 2.3.0 + "@graphql-codegen/plugin-helpers": ^2.3.0 "@graphql-tools/apollo-engine-loader": ^7.0.5 "@graphql-tools/code-file-loader": ^7.0.6 "@graphql-tools/git-loader": ^7.0.5 @@ -2762,7 +2793,7 @@ __metadata: detect-indent: ^6.0.0 glob: ^7.1.6 globby: ^11.0.4 - graphql-config: ^4.0.1 + graphql-config: ^4.1.0 inquirer: ^7.3.3 is-glob: ^4.0.1 json-to-pretty-yaml: ^1.2.2 @@ -2780,124 +2811,125 @@ __metadata: yaml: ^1.10.0 yargs: ^17.0.0 peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 bin: gql-gen: bin.js graphql-code-generator: bin.js graphql-codegen: bin.js - checksum: 9afdbc4e3a1dd141192adbfe76391a3d424eaa60e689fc1c49e33ca20e0c4aebd19d41b2eb346bb14b7033063dc8290f9d1b10f45bb9fe112fe493ce5a3f9628 + checksum: dc216ea0b203c2a8b342123f56650fffcacf19582b54d5533b164cd0e00e32f49d0af53d2ec5e4ec93d389746b438fea1e0607fceece8448512e74fee1634b33 languageName: node linkType: hard -"@graphql-codegen/core@npm:2.2.0": - version: 2.2.0 - resolution: "@graphql-codegen/core@npm:2.2.0" +"@graphql-codegen/core@npm:2.3.0": + version: 2.3.0 + resolution: "@graphql-codegen/core@npm:2.3.0" dependencies: - "@graphql-codegen/plugin-helpers": ^2.2.0 + "@graphql-codegen/plugin-helpers": ^2.3.0 "@graphql-tools/schema": ^8.1.2 "@graphql-tools/utils": ^8.1.1 tslib: ~2.3.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: 54f80289ef512489afa7d03bf45dfe7b74fa9222d0782ccab033ce75afaed70d75ca2267003645d0332061df4db674bf7e3ab79e8b1f367b64653be585b20613 + checksum: 1c8202d19888365660b45a9f34c9fce680b33f4c8ee00d81d5876e4463238fd796f6263e317f60d0f8ffe7faf328950e089900e36b92e667b07f127fa49469bc languageName: node linkType: hard -"@graphql-codegen/plugin-helpers@npm:^2.1.0, @graphql-codegen/plugin-helpers@npm:^2.2.0": - version: 2.2.0 - resolution: "@graphql-codegen/plugin-helpers@npm:2.2.0" +"@graphql-codegen/plugin-helpers@npm:^2.3.0": + version: 2.3.1 + resolution: "@graphql-codegen/plugin-helpers@npm:2.3.1" dependencies: - "@graphql-tools/utils": ^8.1.1 + "@graphql-tools/utils": ^8.5.2 change-case-all: 1.0.14 common-tags: 1.8.0 import-from: 4.0.0 lodash: ~4.17.0 tslib: ~2.3.0 peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: 3cca0baaa46880686911b8256c30a5ed906988aeab4a7021f45d543701fe8c41d9b2b226575cb230a58f1305f0591b9a3b363fb685cb453e29f5d1530dfe87c8 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 524bfccc57ab34096ef52379d470b55264700987ad963adf08f63fb17f54f7c496f928fd659f67cd8f8c883f524b43e26d6140dd9ea295bc3df0b2983148e263 languageName: node linkType: hard -"@graphql-codegen/schema-ast@npm:2.2.0": - version: 2.2.0 - resolution: "@graphql-codegen/schema-ast@npm:2.2.0" +"@graphql-codegen/schema-ast@npm:2.4.0, @graphql-codegen/schema-ast@npm:^2.4.0": + version: 2.4.0 + resolution: "@graphql-codegen/schema-ast@npm:2.4.0" dependencies: - "@graphql-codegen/plugin-helpers": ^2.1.0 + "@graphql-codegen/plugin-helpers": ^2.3.0 "@graphql-tools/utils": ^8.1.1 tslib: ~2.3.0 peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: 00aeccb2960684034f1ed31b6cf1584d74050e097f8567f9e57a4d42f28d092cf26219e5d260529164d99ca9f3fc27d6817860f454995459f2e2df4696254421 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: f68af710c91d3e0c2c16c1afcbcb5f62860a1c7c3f8fa40547cfd8c7b3da8a412b886155497429c0946f503daa0740d03b67b52a2e9a17f38f2fca2e9d4c217b languageName: node linkType: hard -"@graphql-codegen/typescript-operations@npm:2.1.8": - version: 2.1.8 - resolution: "@graphql-codegen/typescript-operations@npm:2.1.8" +"@graphql-codegen/typescript-operations@npm:2.2.1": + version: 2.2.1 + resolution: "@graphql-codegen/typescript-operations@npm:2.2.1" dependencies: - "@graphql-codegen/plugin-helpers": ^2.2.0 - "@graphql-codegen/typescript": ^2.2.4 - "@graphql-codegen/visitor-plugin-common": 2.4.0 + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-codegen/typescript": ^2.4.1 + "@graphql-codegen/visitor-plugin-common": 2.5.1 auto-bind: ~4.0.0 tslib: ~2.3.0 peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: 0455a5dd7362f0a47214d4526268339f5c0f40e855085d83a906327dbc3a9353ce1cc3916685434a90567d7d8fc496c81e1ddab895b03ee1e34f553086f3d2ad + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 2c187ccf029fc142960499f9d727099f8b03a13ff8cb98562ee4c2bccef830dd464b48d3aa3f80bc8b6148e18c95de29ef6c8c46a4c05f669fd6410b682c0bf1 languageName: node linkType: hard -"@graphql-codegen/typescript-react-apollo@npm:3.1.6": - version: 3.1.6 - resolution: "@graphql-codegen/typescript-react-apollo@npm:3.1.6" +"@graphql-codegen/typescript-react-apollo@npm:3.2.2": + version: 3.2.2 + resolution: "@graphql-codegen/typescript-react-apollo@npm:3.2.2" dependencies: - "@graphql-codegen/plugin-helpers": ^2.2.0 - "@graphql-codegen/visitor-plugin-common": 2.4.0 + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-codegen/visitor-plugin-common": 2.5.1 auto-bind: ~4.0.0 change-case-all: 1.0.14 tslib: ~2.3.0 peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-tag: ^2.0.0 - checksum: 808eb717f634de84210371d4fb91e9fa1aff264b1ee722db21c0834a7395f125a40e70b170ef83dd60ebc763abd0222abc51859381736968da46905bf22700a1 + checksum: c8a6b74a9d32fa386a1b8e199e4266b6ce2bd764b0cb043b004d50d82ee64eb5689269262a86db2cd612f1a4b79bd16dc057a418951a26003d56c5666e254b1a languageName: node linkType: hard -"@graphql-codegen/typescript-resolvers@npm:2.3.2": - version: 2.3.2 - resolution: "@graphql-codegen/typescript-resolvers@npm:2.3.2" +"@graphql-codegen/typescript-resolvers@npm:2.4.2": + version: 2.4.2 + resolution: "@graphql-codegen/typescript-resolvers@npm:2.4.2" dependencies: - "@graphql-codegen/plugin-helpers": ^2.2.0 - "@graphql-codegen/typescript": ^2.2.4 - "@graphql-codegen/visitor-plugin-common": 2.4.0 + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-codegen/typescript": ^2.4.1 + "@graphql-codegen/visitor-plugin-common": 2.5.1 "@graphql-tools/utils": ^8.1.1 auto-bind: ~4.0.0 tslib: ~2.3.0 peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: 34c76a0f08c9f4e7a1d320a83f7d74306fb9e0b84a5a64251eb44a7fd917eefd1cbf2b56afe92aaa67e09c1c7198935fa018c0da9db09296f0c16c936b15aa4d + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 7980e2a23811940b4e84b7305bfd3aa89309f5f3cb3b170346bf6a1b45f147996807e392a40d120902a3cfc447cd65ddf8ed0871bc9fee051983c987ca347b54 languageName: node linkType: hard -"@graphql-codegen/typescript@npm:2.2.4, @graphql-codegen/typescript@npm:^2.2.4": - version: 2.2.4 - resolution: "@graphql-codegen/typescript@npm:2.2.4" +"@graphql-codegen/typescript@npm:2.4.1, @graphql-codegen/typescript@npm:^2.4.1": + version: 2.4.1 + resolution: "@graphql-codegen/typescript@npm:2.4.1" dependencies: - "@graphql-codegen/plugin-helpers": ^2.2.0 - "@graphql-codegen/visitor-plugin-common": 2.4.0 + "@graphql-codegen/plugin-helpers": ^2.3.0 + "@graphql-codegen/schema-ast": ^2.4.0 + "@graphql-codegen/visitor-plugin-common": 2.5.1 auto-bind: ~4.0.0 tslib: ~2.3.0 peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: 17cc30e10417e9a03eab27d82879708031a64fe94ba676b07ec15f5e1a22ea5cc15e7d6fd7929840822a3280c202745bb5fbe160e2b4695ac1409f8418ff9e97 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 02292df9267ab48f62f5af4d06e75e9ddbf2c39bc3eb9c205d74a22ef38bedcbef46b233e67e733be87fc5d2f527e07d11398b1a3c2bf1b91d1b6c0170252d21 languageName: node linkType: hard -"@graphql-codegen/visitor-plugin-common@npm:2.4.0": - version: 2.4.0 - resolution: "@graphql-codegen/visitor-plugin-common@npm:2.4.0" +"@graphql-codegen/visitor-plugin-common@npm:2.5.1": + version: 2.5.1 + resolution: "@graphql-codegen/visitor-plugin-common@npm:2.5.1" dependencies: - "@graphql-codegen/plugin-helpers": ^2.2.0 + "@graphql-codegen/plugin-helpers": ^2.3.0 "@graphql-tools/optimize": ^1.0.1 "@graphql-tools/relay-operation-optimizer": ^6.3.7 "@graphql-tools/utils": ^8.3.0 @@ -2908,8 +2940,8 @@ __metadata: parse-filepath: ^1.0.2 tslib: ~2.3.0 peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: ec26fd941414cd6cc68e97a626a791f7d8e87cdefa703bc6ae996557aa03029d2b4b0cfdd71dd5036eef3304ccf4fb4bbedf9d562585a0c556cbbe484c4ddcbb + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: dfd26c0c83a7aa17bf2112f69d693182acb6c6764902cb86d51412e6c87ff424eb9de42891e5112ff7b4cf47c97e033797da1c303df1a0d4aa5092f72fb6cde3 languageName: node linkType: hard @@ -2927,17 +2959,17 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/batch-execute@npm:^8.1.1": - version: 8.1.1 - resolution: "@graphql-tools/batch-execute@npm:8.1.1" +"@graphql-tools/batch-execute@npm:^8.3.1": + version: 8.3.1 + resolution: "@graphql-tools/batch-execute@npm:8.3.1" dependencies: - "@graphql-tools/utils": ^8.2.4 + "@graphql-tools/utils": ^8.5.1 dataloader: 2.0.0 tslib: ~2.3.0 - value-or-promise: 1.0.10 + value-or-promise: 1.0.11 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 12f853a39d48f524b404ac87ae2a5708242cd2d6cfc5b7ecc5bf882c2edcc9bffd35a34598ab5121a6d5379f3e22ee341ea0b8012c16f9114e66a658e58ea662 + checksum: 02524b26467a27e937924987ab636c769d6c72bfcca3b9070d7190cdd591e6429c7502d7e411179e04a81af252f8143c6cf686b1570f881dd24895dfef1db840 languageName: node linkType: hard @@ -2956,19 +2988,19 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/delegate@npm:^8.2.0": - version: 8.2.2 - resolution: "@graphql-tools/delegate@npm:8.2.2" +"@graphql-tools/delegate@npm:^8.4.1, @graphql-tools/delegate@npm:^8.4.2": + version: 8.4.2 + resolution: "@graphql-tools/delegate@npm:8.4.2" dependencies: - "@graphql-tools/batch-execute": ^8.1.1 - "@graphql-tools/schema": ^8.2.0 - "@graphql-tools/utils": ^8.2.4 + "@graphql-tools/batch-execute": ^8.3.1 + "@graphql-tools/schema": ^8.3.1 + "@graphql-tools/utils": ^8.5.3 dataloader: 2.0.0 tslib: ~2.3.0 - value-or-promise: 1.0.10 + value-or-promise: 1.0.11 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 312b5af9860fed60a92eb384eef2f86aa0166ccadbd727d75099352153417700ba0618b72aeaaff2f6d5902fe74857551fe43e7b2d4421c94c7164a4aae8b907 + checksum: 6b26314ad6319d023af5a8867de7348261771cb1eb2d25b1dd650afcd2c803b69c1a8d632410bd909ef0e9aaf917bb7840579c54e899edb397ca02adca92fc60 languageName: node linkType: hard @@ -3002,18 +3034,18 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/graphql-file-loader@npm:^7.0.1, @graphql-tools/graphql-file-loader@npm:^7.0.5": - version: 7.1.0 - resolution: "@graphql-tools/graphql-file-loader@npm:7.1.0" +"@graphql-tools/graphql-file-loader@npm:^7.0.5, @graphql-tools/graphql-file-loader@npm:^7.3.2": + version: 7.3.3 + resolution: "@graphql-tools/graphql-file-loader@npm:7.3.3" dependencies: - "@graphql-tools/import": ^6.4.0 - "@graphql-tools/utils": ^8.2.0 + "@graphql-tools/import": ^6.5.7 + "@graphql-tools/utils": ^8.5.1 globby: ^11.0.3 tslib: ~2.3.0 unixify: ^1.0.0 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: ad0e202cdfdaae9c67f62f5c630da5ed80fa35daf95a7827dbd24af754c79ca2044028388bd99d6ecfcf9595d066bfcf3b3c71920957373a63df1490d08ca32f + checksum: b7d8a318ccd8c6b156785d89726c1d74706476155f72bb1b260a927614593b978f0defbe9c7e2a83ff3660441d35a9acc0f96eb300aaabccd55b9d341ce89fa4 languageName: node linkType: hard @@ -3032,68 +3064,56 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/import@npm:^6.4.0": - version: 6.4.2 - resolution: "@graphql-tools/import@npm:6.4.2" +"@graphql-tools/import@npm:^6.5.7": + version: 6.6.1 + resolution: "@graphql-tools/import@npm:6.6.1" dependencies: + "@graphql-tools/utils": 8.5.3 resolve-from: 5.0.0 tslib: ~2.3.0 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 17e60843f3426ad288080e17660152a08776754648746db0b1466cf4b16ebe630aa1eaf968718025cd3f062cc869b647d8c2a0ea97cb31a02276da3672035b8d + checksum: 03336eb3d9aa1882ff64334c21e2fcb99bec8f2f86ad704416644833159d5eac9f43745bdd229b35085c9692586b929fe7fa08ceb2e598c5d917dbff7ae8b53e languageName: node linkType: hard -"@graphql-tools/json-file-loader@npm:^7.0.1, @graphql-tools/json-file-loader@npm:^7.1.2": - version: 7.2.0 - resolution: "@graphql-tools/json-file-loader@npm:7.2.0" +"@graphql-tools/json-file-loader@npm:^7.1.2, @graphql-tools/json-file-loader@npm:^7.3.2": + version: 7.3.3 + resolution: "@graphql-tools/json-file-loader@npm:7.3.3" dependencies: - "@graphql-tools/utils": ^8.2.0 + "@graphql-tools/utils": ^8.5.1 globby: ^11.0.3 tslib: ~2.3.0 unixify: ^1.0.0 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 3ea6aaacc457a01bbd2dc20d07782b3c1120e6e8fc3ece655136a4b0fe3c20ae4ef146f9bc88e2d2b457b292b06e92aa0df12a4cc0bde67c6476cefad7116653 + checksum: 5efcc97d8c41d92b73572be712ee344f2ae9f6aa59982750ed60f5898213deed906b4c9d538d913f2fa3be7384bb6e925629d31d280f470cf96dd531e0c537c6 languageName: node linkType: hard -"@graphql-tools/load@npm:^7.1.0, @graphql-tools/load@npm:^7.3.0": - version: 7.3.2 - resolution: "@graphql-tools/load@npm:7.3.2" +"@graphql-tools/load@npm:^7.3.0, @graphql-tools/load@npm:^7.4.1": + version: 7.4.1 + resolution: "@graphql-tools/load@npm:7.4.1" dependencies: - "@graphql-tools/schema": 8.2.0 - "@graphql-tools/utils": ^8.2.3 + "@graphql-tools/schema": 8.3.1 + "@graphql-tools/utils": ^8.5.1 p-limit: 3.1.0 tslib: ~2.3.0 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 8195b6760ff3a3add104eeec3fae50a50498ce89f3522fa83f3d7ec5f9f030960ef6c947c6e4c4c595652cc157b9a28ce73e4997c5e2c090ea3f5eda86c2dfbe + checksum: ae3917e698daafe28861f0270a82d87eb05b786144d6b387ed7c1b0ffbe778e15a8ea9536f6fca7b02709a5137e5d5a612529ade519eae787873690fb98d9398 languageName: node linkType: hard -"@graphql-tools/merge@npm:8.2.0, @graphql-tools/merge@npm:^8.1.0, @graphql-tools/merge@npm:^8.2.0": - version: 8.2.0 - resolution: "@graphql-tools/merge@npm:8.2.0" +"@graphql-tools/merge@npm:8.2.1, @graphql-tools/merge@npm:^8.2.1": + version: 8.2.1 + resolution: "@graphql-tools/merge@npm:8.2.1" dependencies: - "@graphql-tools/utils": ^8.4.0 + "@graphql-tools/utils": ^8.5.1 tslib: ~2.3.0 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 595abf15b215082ee028e5ed62712dfb6e57eb7e232f5c429851ff05c74a2cd5b899fa1a7d2d9a309267e785e0b8b85e45c1e7dedf0235e88fd912ef897a2516 - languageName: node - linkType: hard - -"@graphql-tools/merge@npm:^6.2.16": - version: 6.2.17 - resolution: "@graphql-tools/merge@npm:6.2.17" - dependencies: - "@graphql-tools/schema": ^8.0.2 - "@graphql-tools/utils": 8.0.2 - tslib: ~2.3.0 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 - checksum: 90cd299999bdebef7c0f8160c80bf0e416195c79dd787324892c4885b00067fb15146e77890ae769dc1397eb487bb0a1ca137e88a48d73c5136f6c6b91a3a3b6 + checksum: 369037651ea0b648f6c3b16366de1d89076a2b6ddbaf4b59e18daacb867558ee6da8bc83c5f42fd70ec77010d6e8cb7243743b44dae33138326e053109fc551d languageName: node linkType: hard @@ -3151,101 +3171,72 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/schema@npm:8.2.0": - version: 8.2.0 - resolution: "@graphql-tools/schema@npm:8.2.0" - dependencies: - "@graphql-tools/merge": ^8.1.0 - "@graphql-tools/utils": ^8.2.0 - tslib: ~2.3.0 - value-or-promise: 1.0.10 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 0c05f499c45487ff493e28e6923ee127bae076e2208202dc95ea80aabd2ff564cc221ce804098a78f11da4f3e3ea0e8716f9e92cab2032d8d017e407e9902c6b - languageName: node - linkType: hard - -"@graphql-tools/schema@npm:8.3.0, @graphql-tools/schema@npm:^8.0.2, @graphql-tools/schema@npm:^8.1.2, @graphql-tools/schema@npm:^8.2.0": - version: 8.3.0 - resolution: "@graphql-tools/schema@npm:8.3.0" +"@graphql-tools/schema@npm:8.3.1, @graphql-tools/schema@npm:^8.1.2, @graphql-tools/schema@npm:^8.3.1": + version: 8.3.1 + resolution: "@graphql-tools/schema@npm:8.3.1" dependencies: - "@graphql-tools/merge": ^8.2.0 - "@graphql-tools/utils": ^8.4.0 + "@graphql-tools/merge": ^8.2.1 + "@graphql-tools/utils": ^8.5.1 tslib: ~2.3.0 value-or-promise: 1.0.11 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: d9c204cba0f846ab8530c52487c0e92c33c45f1690901089813891569605e67a051335bee23f1b7943541dc059ad5a91ad12e778de895553418a53faff8447b4 + checksum: d2b8f96a371f174a97d4432beb10adfbbcac7b6ccb5f09f45cc7ecb8c4bc9cdadfe30443af26fa87c2c01ad258f97826e84224ff53d3f3a8cc43ef22928af33c languageName: node linkType: hard -"@graphql-tools/url-loader@npm:^7.0.11, @graphql-tools/url-loader@npm:^7.0.3, @graphql-tools/url-loader@npm:^7.1.0": - version: 7.2.0 - resolution: "@graphql-tools/url-loader@npm:7.2.0" +"@graphql-tools/url-loader@npm:^7.0.11, @graphql-tools/url-loader@npm:^7.1.0, @graphql-tools/url-loader@npm:^7.4.2": + version: 7.5.2 + resolution: "@graphql-tools/url-loader@npm:7.5.2" dependencies: - "@ardatan/fetch-event-source": 2.0.2 - "@graphql-tools/delegate": ^8.2.0 - "@graphql-tools/utils": ^8.2.0 - "@graphql-tools/wrap": ^8.1.0 - "@n1ru4l/graphql-live-query": 0.8.1 + "@graphql-tools/delegate": ^8.4.1 + "@graphql-tools/utils": ^8.5.1 + "@graphql-tools/wrap": ^8.3.1 + "@n1ru4l/graphql-live-query": 0.9.0 "@types/websocket": 1.0.4 - "@types/ws": ^7.4.7 - abort-controller: 3.0.0 - cross-fetch: 3.1.4 + "@types/ws": ^8.0.0 + cross-undici-fetch: ^0.0.20 + dset: ^3.1.0 extract-files: 11.0.0 - form-data: 4.0.0 graphql-sse: ^1.0.1 graphql-ws: ^5.4.1 - is-promise: 4.0.0 isomorphic-ws: 4.0.1 - lodash: 4.17.21 meros: 1.1.4 - subscriptions-transport-ws: ^0.10.0 - sync-fetch: 0.3.0 + subscriptions-transport-ws: ^0.11.0 + sync-fetch: 0.3.1 tslib: ~2.3.0 valid-url: 1.0.9 - value-or-promise: 1.0.10 - ws: 8.2.2 + value-or-promise: 1.0.11 + ws: 8.2.3 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 5d95164eb3a639c6427efe6fb2069f2c5398fac5254058b4b165af6c2dd8fdeadf881f53eb2ffb84802283f857bb23b29ef22d25cd5ab9b7a65b405d0793c3ee - languageName: node - linkType: hard - -"@graphql-tools/utils@npm:8.0.2": - version: 8.0.2 - resolution: "@graphql-tools/utils@npm:8.0.2" - dependencies: - tslib: ~2.3.0 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 - checksum: 6faf11e5aad26f63e10c870b16477bd14880bcdf60d58432ae1c40b56c5eb14bdcacef1651002a8fa6340d14f335167ccf2eaf366956f2e8bd1f40417fbf1dad + checksum: cedccff2302f0d4601e0754696c556b6f5583bdebf68abc3f42d1d01d3ea29741559cb79eadc1d728d58258dfdce742cc8134fd5d1032b4efeda25e37b59db67 languageName: node linkType: hard -"@graphql-tools/utils@npm:8.5.0, @graphql-tools/utils@npm:^8.0.1, @graphql-tools/utils@npm:^8.1.1, @graphql-tools/utils@npm:^8.2.0, @graphql-tools/utils@npm:^8.2.3, @graphql-tools/utils@npm:^8.2.4, @graphql-tools/utils@npm:^8.3.0, @graphql-tools/utils@npm:^8.4.0": - version: 8.5.0 - resolution: "@graphql-tools/utils@npm:8.5.0" +"@graphql-tools/utils@npm:8.5.3, @graphql-tools/utils@npm:^8.1.1, @graphql-tools/utils@npm:^8.2.0, @graphql-tools/utils@npm:^8.3.0, @graphql-tools/utils@npm:^8.5.1, @graphql-tools/utils@npm:^8.5.2, @graphql-tools/utils@npm:^8.5.3": + version: 8.5.3 + resolution: "@graphql-tools/utils@npm:8.5.3" dependencies: tslib: ~2.3.0 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: d92180c02fb88e9eafa32bc0aa36d3482f08d94cbb3c4712f4e1687c26f5d3f530689a095111283f3c7b94a0d52489c7f28c2d832f66e336cc70a59df7db01da + checksum: 795967e72b8ead3182766392e37286864c450f47c2b28b43cb7005e8aff3c2ce68a30fb04fdaf0cb9c02b43cacb8a8008de614ab809020651705102fe017c754 languageName: node linkType: hard -"@graphql-tools/wrap@npm:^8.1.0": - version: 8.1.1 - resolution: "@graphql-tools/wrap@npm:8.1.1" +"@graphql-tools/wrap@npm:^8.3.1": + version: 8.3.2 + resolution: "@graphql-tools/wrap@npm:8.3.2" dependencies: - "@graphql-tools/delegate": ^8.2.0 - "@graphql-tools/schema": ^8.2.0 - "@graphql-tools/utils": ^8.2.0 + "@graphql-tools/delegate": ^8.4.2 + "@graphql-tools/schema": ^8.3.1 + "@graphql-tools/utils": ^8.5.3 tslib: ~2.3.0 - value-or-promise: 1.0.10 + value-or-promise: 1.0.11 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 08facfa3ee9081f6a325378fbf53a6ff47e925a5012fc68623d4208e1b406526871ab74e0e68636ab2a33878f789398f1402cacea69e31097cb0e72a499222b8 + checksum: 494d370a411b9cf2e81ec2510a382d05157e5b944a28dbc598b52fcd9d757074d7174357088c44dd6c820cb866784b19e7f90e909d6639818a9c43494b65a516 languageName: node linkType: hard @@ -3282,14 +3273,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.5.0": - version: 0.5.0 - resolution: "@humanwhocodes/config-array@npm:0.5.0" +"@humanwhocodes/config-array@npm:^0.6.0": + version: 0.6.0 + resolution: "@humanwhocodes/config-array@npm:0.6.0" dependencies: "@humanwhocodes/object-schema": ^1.2.0 debug: ^4.1.1 minimatch: ^3.0.4 - checksum: 217fac9e03492361825a2bf761d4bb7ec6d10002a10f7314142245eb13ac9d123523d24d5619c3c4159af215c7b3e583ed386108e227014bef4efbf9caca8ccc + checksum: 318607caa7c2c4fafb8d5c1126ae8d0a603164897199eb465efba28662212fbfb0af27b937e6fa196b095e35e0459e1ba7e4d7dfd585e6d5474d99204d4dffe8 languageName: node linkType: hard @@ -3541,26 +3532,26 @@ __metadata: languageName: node linkType: hard -"@magic-sdk/commons@npm:^2.2.0": - version: 2.2.0 - resolution: "@magic-sdk/commons@npm:2.2.0" +"@magic-sdk/commons@npm:^2.2.1": + version: 2.2.1 + resolution: "@magic-sdk/commons@npm:2.2.1" peerDependencies: "@magic-sdk/provider": ">=4.3.0" "@magic-sdk/types": ">=3.1.1" - checksum: 4d7be0c52047a4793eb33f8c7c685d8df2e1a1badeda7669ee551b07276fa791386b111e5f845dde8034d863744b995d83f706feb42b357c3d952e2c517955bf + checksum: 23e86b9e1610dd7485eb92be7234b73818d49c3310be1b49a31c3c975ab2a21b0c44c23cb1949bd3d2c1e371e19ecec9b4298800e8dc212dd05238372963d0db languageName: node linkType: hard -"@magic-sdk/provider@npm:^6.2.0": - version: 6.2.0 - resolution: "@magic-sdk/provider@npm:6.2.0" +"@magic-sdk/provider@npm:^6.2.1": + version: 6.2.1 + resolution: "@magic-sdk/provider@npm:6.2.1" dependencies: "@magic-sdk/types": ^5.2.0 eventemitter3: ^4.0.4 web3-core: 1.5.2 peerDependencies: localforage: ^1.7.4 - checksum: 3ac2d001ed53215a803abbc2f1d73e83a91ba746c0eeeb5fe618ef6a57b489783f25ca81d5bb549a5f46150f9daa42e7970b9a9fb63c8ff460d0f66092946097 + checksum: 5302787dcb20bb33f610e2f5461171ca16638135465be92434ccfbce999abedd5fbbfebeab9ced1fdc4f9f7299f249d55b9a110bd122ce439d857443002b7289 languageName: node linkType: hard @@ -3639,12 +3630,12 @@ __metadata: languageName: node linkType: hard -"@n1ru4l/graphql-live-query@npm:0.8.1": - version: 0.8.1 - resolution: "@n1ru4l/graphql-live-query@npm:0.8.1" +"@n1ru4l/graphql-live-query@npm:0.9.0": + version: 0.9.0 + resolution: "@n1ru4l/graphql-live-query@npm:0.9.0" peerDependencies: - graphql: ^15.4.0 - checksum: c6a8167fd03345695ab065f4e53403dd7e4f8f74b073c11aa94f8f0d640c4ec3a7b56814869b9a1e91d5a3ca51171d69d8c2636520f3d6f9d5a742b80226c623 + graphql: ^15.4.0 || ^16.0.0 + checksum: 680383b0234b57f0237d35a78c5716821b67e2f2e8d9942b9f9cbcbca21b5d8390cb7e1b5f0b70cbc7820fd15225f922e8dbd9eac9906d7851cba6838fee44b8 languageName: node linkType: hard @@ -3723,11 +3714,11 @@ __metadata: languageName: node linkType: hard -"@pmmmwh/react-refresh-webpack-plugin@npm:0.5.0-rc.6": - version: 0.5.0-rc.6 - resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.0-rc.6" +"@pmmmwh/react-refresh-webpack-plugin@npm:0.5.3": + version: 0.5.3 + resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.3" dependencies: - ansi-html: ^0.0.7 + ansi-html-community: ^0.0.8 common-path-prefix: ^3.0.0 core-js-pure: ^3.8.1 error-stack-parser: ^2.0.6 @@ -3738,11 +3729,11 @@ __metadata: source-map: ^0.7.3 peerDependencies: "@types/webpack": 4.x || 5.x - react-refresh: ^0.10.0 + react-refresh: ">=0.10.0 <1.0.0" sockjs-client: ^1.4.0 - type-fest: ">=0.17.0 <2.0.0" + type-fest: ">=0.17.0 <3.0.0" webpack: ">=4.43.0 <6.0.0" - webpack-dev-server: 3.x || >=4.0.0-beta.0 + webpack-dev-server: 3.x || 4.x webpack-hot-middleware: 2.x webpack-plugin-serve: 0.x || 1.x peerDependenciesMeta: @@ -3758,7 +3749,7 @@ __metadata: optional: true webpack-plugin-serve: optional: true - checksum: 16ba04a16a96730d90ec860db8e1f8a7b0f40f7aac2f041d4e0338f65eca3d3045cbe285c334e76e782e438535a1c899ecf23448c692c67d9354e212f57b4fef + checksum: b33fc7c02c7f45682407813c747ba5fce44d14f05eac48724b8a910abace0a4774bbb9c090fc75d10779a77368581d7d22e30ac39ee2c8186e1aafddf5f28208 languageName: node linkType: hard @@ -3812,49 +3803,48 @@ __metadata: languageName: node linkType: hard -"@prisma/client@npm:3.3.0": - version: 3.3.0 - resolution: "@prisma/client@npm:3.3.0" +"@prisma/client@npm:3.5.0": + version: 3.5.0 + resolution: "@prisma/client@npm:3.5.0" dependencies: - "@prisma/engines-version": 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c + "@prisma/engines-version": 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e peerDependencies: prisma: "*" peerDependenciesMeta: prisma: optional: true - checksum: 0797eebc9475085f5cd8865e85c5e36cf52f8a35a8f47a3d1a7899318f4234fc468581bcc470e3f4aa9aac35ae1c95075f5fe461fab071db69574328484ecfbe + checksum: ee109139952f5615ed038d32c65694d850b9d3efaeed5179d01db8a76592fa705e9abdb0a0bf41d1b64508ab656ee38adb67f34177e8220ba3dfe5a592ac5b45 languageName: node linkType: hard -"@prisma/debug@npm:3.2.1": - version: 3.2.1 - resolution: "@prisma/debug@npm:3.2.1" +"@prisma/debug@npm:3.4.2": + version: 3.4.2 + resolution: "@prisma/debug@npm:3.4.2" dependencies: "@types/debug": 4.1.7 - debug: 4.3.2 ms: 2.1.3 - checksum: 0a2986df9f10ee93b6ea96e0a28a8412eeb086d1df78c23e9f76cebccc6db101194ae6cd207837b32879541889373ad365c1b24012cd108f672fca1d343a4319 + checksum: 7615e05a09a534406ded1d5be0aaed7de8908361cc37521f0c7e3d5aef360e343c098d01750484eb97bfc8f8fe281694872dc7f3c313d371bc4f0d6d951f8727 languageName: node linkType: hard -"@prisma/debug@npm:3.3.0": - version: 3.3.0 - resolution: "@prisma/debug@npm:3.3.0" +"@prisma/debug@npm:3.5.0": + version: 3.5.0 + resolution: "@prisma/debug@npm:3.5.0" dependencies: "@types/debug": 4.1.7 ms: 2.1.3 - checksum: b31c6d27b490301ca1d4dc0c883e4aa5951501b0f25b532fe9ba0b34397b1694bc1ac71aebf426356ef22d515fa465022a111f7c46736fa07f34d8994de814cb + checksum: 574b6034eb9a61e7fea257de5cc5babf3c465a13355a826c3e54ec0899074ec5f56bea70294f2e4aa5ab77aa8d6475563ea352d4e690a954b7de2f19d11f25c9 languageName: node linkType: hard -"@prisma/engine-core@npm:3.3.0": - version: 3.3.0 - resolution: "@prisma/engine-core@npm:3.3.0" +"@prisma/engine-core@npm:3.5.0": + version: 3.5.0 + resolution: "@prisma/engine-core@npm:3.5.0" dependencies: - "@prisma/debug": 3.3.0 - "@prisma/engines": 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c - "@prisma/generator-helper": 3.3.0 - "@prisma/get-platform": 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c + "@prisma/debug": 3.5.0 + "@prisma/engines": 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e + "@prisma/generator-helper": 3.5.0 + "@prisma/get-platform": 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e chalk: 4.1.2 execa: 5.1.1 get-stream: 6.0.1 @@ -3863,30 +3853,30 @@ __metadata: p-retry: 4.6.1 terminal-link: 2.1.1 undici: 3.3.6 - checksum: 076bc0303d2dafbe63607e70193db083a55565003bcc317d995ebf8aa3b0d9e68acbe97ce70bf95b037f0e16738663c7e69ccb8ca4fc6d829c06a014d1801208 + checksum: 99894b2bf91ab46f0b4a97311c785af743973f525e5a608a9bb7cc19a43b41a01ac38dff033122d37f8d0aee8bded16eda7066af00c15f9865fbd0bf457f963e languageName: node linkType: hard -"@prisma/engines-version@npm:3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c": - version: 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c - resolution: "@prisma/engines-version@npm:3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c" - checksum: f90595ba084e62e00699147753c4d51d82f7e370e21f8527d831f9adc8e5948944006185aaf13c7a7bea9864eaf8330dba3d508c5f5304c9113cfdd60d565d41 +"@prisma/engines-version@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e": + version: 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e + resolution: "@prisma/engines-version@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e" + checksum: e1dc8757c27f73967d2ef395da226f33ab1e6cf7d08563690918f03dcad1edbac7b4c24e5e6de2a9fcfa1c58abfc73cdc1d146f7e691d40d692de757f2a1cb02 languageName: node linkType: hard -"@prisma/engines@npm:3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c": - version: 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c - resolution: "@prisma/engines@npm:3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c" - checksum: 91a8d47858cf3de711aaf47bc75bbd3b80f1b61d25218b0ec168de74a63228cc815306799e4c04facdb5bfb048bea8f7d5dd8874da4b589fa4fc8ef65d2cbdcc +"@prisma/engines@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e": + version: 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e + resolution: "@prisma/engines@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e" + checksum: 053bc15cb2fd32df5f82bc11993248593272c7cbaf41d67fb08094a33ed8bd8ad41eef7e2ede3bcd0379e70ec3c1277d354bdd812ceca77f2edc5e90a473bef3 languageName: node linkType: hard -"@prisma/fetch-engine@npm:3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c": - version: 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c - resolution: "@prisma/fetch-engine@npm:3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c" +"@prisma/fetch-engine@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e": + version: 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e + resolution: "@prisma/fetch-engine@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e" dependencies: - "@prisma/debug": 3.2.1 - "@prisma/get-platform": 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c + "@prisma/debug": 3.4.2 + "@prisma/get-platform": 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e chalk: ^4.0.0 execa: ^5.0.0 find-cache-dir: ^3.3.1 @@ -3902,41 +3892,41 @@ __metadata: rimraf: ^3.0.2 temp-dir: ^2.0.0 tempy: ^1.0.0 - checksum: 1bfd4c5a383ef4071fca0076bf7720e39887a25082702b8c91d0816cbcf4df200f1b93bd791ad62142b3e281dfa108a7f8050235047dddc5e8d1b741d56b0270 + checksum: 8c7378e6601025a956f64c1660aa01d4d69a3ccae9d2ec502291453805707fa2d742ec7d33cebc7845478328d8ce1f68c07176d1510fc7fa99dd1bd54c7e08ad languageName: node linkType: hard -"@prisma/generator-helper@npm:3.3.0": - version: 3.3.0 - resolution: "@prisma/generator-helper@npm:3.3.0" +"@prisma/generator-helper@npm:3.5.0": + version: 3.5.0 + resolution: "@prisma/generator-helper@npm:3.5.0" dependencies: - "@prisma/debug": 3.3.0 + "@prisma/debug": 3.5.0 "@types/cross-spawn": 6.0.2 chalk: 4.1.2 cross-spawn: 7.0.3 - checksum: b6c8d9c3f906557ee47fc73e5d10070f155c1449433ae8af9ea82764ebe1360445d6d3ccc0f1214591695725572e3fcbd0ad9993b5bb764d285bfee023e5056a + checksum: 78d66e9a4114341ebaf9591f65ca2acc6db64c037cf45b441e2ea47ed1446047e1ae56d6fae7a5d47245073a3042545937cfae9be681dad215cea3699361b1a0 languageName: node linkType: hard -"@prisma/get-platform@npm:3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c": - version: 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c - resolution: "@prisma/get-platform@npm:3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c" +"@prisma/get-platform@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e": + version: 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e + resolution: "@prisma/get-platform@npm:3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e" dependencies: - "@prisma/debug": 3.2.1 - checksum: 31e8a6832ad3688a8bba797101a7f539ac9097806361cd584376d7d3d024c644dce57ff6a3f04c395ad23d272c3567a63ff35c6f643cc24bd655793f2343985a + "@prisma/debug": 3.4.2 + checksum: 68d9ba8f99e0021f9f359d39b61f39a71f9f64e633c27ba1d4bc4e84c8191ddab0953a46e4fb268d52c013d3c146bdb8ba73a7cc70f0565eb37aceb2d4c5be5c languageName: node linkType: hard -"@prisma/sdk@npm:3.3.0": - version: 3.3.0 - resolution: "@prisma/sdk@npm:3.3.0" - dependencies: - "@prisma/debug": 3.3.0 - "@prisma/engine-core": 3.3.0 - "@prisma/engines": 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c - "@prisma/fetch-engine": 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c - "@prisma/generator-helper": 3.3.0 - "@prisma/get-platform": 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c +"@prisma/sdk@npm:3.5.0": + version: 3.5.0 + resolution: "@prisma/sdk@npm:3.5.0" + dependencies: + "@prisma/debug": 3.5.0 + "@prisma/engine-core": 3.5.0 + "@prisma/engines": 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e + "@prisma/fetch-engine": 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e + "@prisma/generator-helper": 3.5.0 + "@prisma/get-platform": 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e "@timsuchanek/copy": 1.4.5 archiver: 4.0.2 arg: 5.0.1 @@ -3950,14 +3940,14 @@ __metadata: global-dirs: 3.0.0 globby: 11.0.4 has-yarn: 2.1.0 - is-ci: 3.0.0 + is-ci: 3.0.1 make-dir: 3.1.0 - node-fetch: 2.6.5 + node-fetch: 2.6.6 p-map: 4.0.0 read-pkg-up: 7.0.1 resolve: 1.20.0 rimraf: 3.0.2 - shell-quote: 1.7.2 + shell-quote: 1.7.3 string-width: 4.2.3 strip-ansi: 6.0.1 strip-indent: 3.0.0 @@ -3967,7 +3957,7 @@ __metadata: tempy: 1.0.1 terminal-link: 2.1.1 tmp: 0.2.1 - checksum: eef1ec16a575ffaa5caf1b8e3ab955ec754477359866cbd1d83aab8d4cc18fe2ce415360786a415ed65755f815686efd6e779b39bf3a9ecbe371df347adea80f + checksum: 0593745f62a6a673ec60797e38d0385accf6ab6daa1b01374ee0fd520936ca9225b3d0b6362cbde764a54129326da6e922bef75fd3fb8848d9505b26e6442895 languageName: node linkType: hard @@ -4085,27 +4075,27 @@ __metadata: languageName: node linkType: hard -"@redwoodjs/api-server@0.38.1, @redwoodjs/api-server@workspace:packages/api-server": +"@redwoodjs/api-server@0.39.2, @redwoodjs/api-server@workspace:packages/api-server": version: 0.0.0-use.local resolution: "@redwoodjs/api-server@workspace:packages/api-server" dependencies: - "@babel/cli": 7.15.7 - "@babel/plugin-transform-runtime": 7.15.8 - "@types/aws-lambda": 8.10.84 + "@babel/cli": 7.16.0 + "@babel/plugin-transform-runtime": 7.16.4 + "@types/aws-lambda": 8.10.85 "@types/lodash.escape": 4.0.6 "@types/qs": 6.9.7 ansi-colors: 4.1.1 - aws-lambda: 1.0.6 + aws-lambda: 1.0.7 chokidar: 3.5.2 - fastify: 3.23.0 + fastify: 3.24.1 fastify-http-proxy: 6.2.1 - fastify-raw-body: 3.1.0 + fastify-raw-body: 3.2.0 fastify-static: 4.5.0 fastify-url-data: 3.0.3 jest: 27.3.1 lodash.escape: 4.0.1 qs: 6.10.1 - typescript: 4.4.4 + typescript: 4.5.2 yargs: 16.2.0 bin: rw-api-server: ./dist/index.js @@ -4113,80 +4103,81 @@ __metadata: languageName: unknown linkType: soft -"@redwoodjs/api@0.38.1, @redwoodjs/api@workspace:packages/api": +"@redwoodjs/api@0.39.2, @redwoodjs/api@workspace:packages/api": version: 0.0.0-use.local resolution: "@redwoodjs/api@workspace:packages/api" dependencies: - "@babel/cli": 7.15.7 - "@prisma/client": 3.3.0 - "@redwoodjs/auth": 0.38.1 + "@babel/cli": 7.16.0 + "@babel/runtime-corejs3": 7.16.3 + "@prisma/client": 3.5.0 + "@redwoodjs/auth": 0.39.2 "@types/crypto-js": 4.0.2 - "@types/jsonwebtoken": 8.5.5 + "@types/jsonwebtoken": 8.5.6 "@types/md5": 2.3.1 - aws-lambda: 1.0.6 - core-js: 3.18.3 + aws-lambda: 1.0.7 crypto-js: 4.1.1 jest: 27.3.1 jsonwebtoken: 8.5.1 jwks-rsa: 2.0.5 md5: 2.3.0 pascalcase: 1.0.0 - pino: 7.0.3 - pino-pretty: 7.1.0 - split2: 4.0.0 - typescript: 4.4.4 + pino: 7.3.0 + pino-pretty: 7.2.0 + split2: 4.1.0 + typescript: 4.5.2 uuid: 8.3.2 languageName: unknown linkType: soft -"@redwoodjs/auth@0.38.1, @redwoodjs/auth@workspace:packages/auth": +"@redwoodjs/auth@0.39.2, @redwoodjs/auth@workspace:packages/auth": version: 0.0.0-use.local resolution: "@redwoodjs/auth@workspace:packages/auth" dependencies: "@auth0/auth0-spa-js": 1.19.2 - "@azure/msal-browser": 2.18.0 - "@babel/cli": 7.15.7 - "@clerk/clerk-js": 1.33.0 - "@clerk/clerk-sdk-node": 0.5.2 - "@clerk/types": 1.13.0 - "@supabase/supabase-js": 1.25.0 + "@azure/msal-browser": 2.19.0 + "@babel/cli": 7.16.0 + "@clerk/clerk-js": 2.3.0 + "@clerk/clerk-sdk-node": 2.1.2 + "@clerk/types": 1.16.0 + "@supabase/supabase-js": 1.28.2 "@types/netlify-identity-widget": 1.9.2 - "@types/react": 17.0.31 - firebase: 9.1.3 + "@types/react": 17.0.35 + firebase: 9.5.0 firebase-admin: 10.0.0 gotrue-js: 0.9.29 jest: 27.3.1 - magic-sdk: 6.2.0 + magic-sdk: 6.2.1 netlify-identity-widget: 1.9.2 nhost-js-sdk: 3.1.0 react: 17.0.2 - typescript: 4.4.4 + typescript: 4.5.2 languageName: unknown linkType: soft -"@redwoodjs/cli@0.38.1, @redwoodjs/cli@workspace:packages/cli": +"@redwoodjs/cli@0.39.2, @redwoodjs/cli@workspace:packages/cli": version: 0.0.0-use.local resolution: "@redwoodjs/cli@workspace:packages/cli" dependencies: - "@babel/cli": 7.15.7 - "@prisma/sdk": 3.3.0 - "@redwoodjs/api-server": 0.38.1 - "@redwoodjs/internal": 0.38.1 - "@redwoodjs/prerender": 0.38.1 - "@redwoodjs/structure": 0.38.1 + "@babel/cli": 7.16.0 + "@prisma/sdk": 3.5.0 + "@redwoodjs/api-server": 0.39.2 + "@redwoodjs/internal": 0.39.2 + "@redwoodjs/prerender": 0.39.2 + "@redwoodjs/structure": 0.39.2 "@types/listr": 0.14.4 "@types/node-fetch": 2.5.12 boxen: 5.1.2 - camelcase: 6.2.0 + camelcase: 6.2.1 chalk: 4.1.2 - concurrently: 6.3.0 + concurrently: 6.4.0 configstore: 3.1.5 - core-js: 3.18.3 + core-js: 3.19.1 cross-env: 7.0.3 decamelize: 5.0.0 dotenv-defaults: 3.0.0 envinfo: 7.8.1 execa: 5.1.1 + fast-glob: 3.2.7 fs-extra: 10.0.0 humanize-string: 2.1.0 jest: 27.3.1 @@ -4198,19 +4189,17 @@ __metadata: pascalcase: 1.0.0 pluralize: 8.0.0 prettier: 2.4.1 - prisma: 3.3.0 + prisma: 3.5.0 prompts: 2.4.2 rimraf: 3.0.2 secure-random-password: 0.2.3 terminal-link: 2.1.1 - typescript: 4.4.4 + typescript: 4.5.2 yargs: 16.2.0 bin: redwood: ./dist/index.js - redwood-tools: ./dist/redwood-tools.js rw: ./dist/index.js rwfw: ./dist/rwfw.js - rwt: ./dist/redwood-tools.js languageName: unknown linkType: soft @@ -4218,17 +4207,19 @@ __metadata: version: 0.0.0-use.local resolution: "@redwoodjs/codemods@workspace:packages/codemods" dependencies: - "@babel/cli": 7.15.7 - "@babel/core": 7.15.8 - "@babel/plugin-transform-typescript": 7.15.8 - "@types/babel__core": 7 + "@babel/cli": 7.16.0 + "@babel/core": 7.16.0 + "@babel/plugin-transform-typescript": 7.16.1 + "@babel/runtime-corejs3": 7.16.3 + "@types/babel__core": 7.1.16 + "@types/fs-extra": 9.0.13 "@types/jscodeshift": 0.11.2 - "@types/prettier": 2 - core-js: 3.18.3 + "@types/prettier": 2.4.2 + core-js: 3.19.1 deepmerge: 4.2.2 - execa: 5.1.1 fast-glob: 3.2.7 - findup-sync: 4.0.0 + findup-sync: 5.0.0 + fs-extra: 10.0.0 jest: 27.3.1 jscodeshift: 0.13.0 node-fetch: 2.6.1 @@ -4247,84 +4238,85 @@ __metadata: version: 0.0.0-use.local resolution: "@redwoodjs/core@workspace:packages/core" dependencies: - "@babel/cli": 7.15.7 - "@babel/core": 7.15.8 + "@babel/cli": 7.16.0 + "@babel/core": 7.16.0 "@babel/eslint-plugin": 7.14.5 - "@babel/node": 7.15.8 - "@babel/plugin-proposal-class-properties": 7.14.5 - "@babel/plugin-proposal-decorators": 7.15.8 - "@babel/plugin-proposal-private-methods": 7.14.5 - "@babel/plugin-proposal-private-property-in-object": 7.15.4 - "@babel/plugin-transform-runtime": 7.15.8 - "@babel/preset-env": 7.15.8 - "@babel/preset-react": 7.14.5 - "@babel/preset-typescript": 7.15.0 - "@babel/runtime-corejs3": 7.15.4 - "@pmmmwh/react-refresh-webpack-plugin": 0.5.0-rc.6 - "@redwoodjs/cli": 0.38.1 - "@redwoodjs/eslint-config": 0.38.1 - "@redwoodjs/internal": 0.38.1 - "@redwoodjs/testing": 0.38.1 + "@babel/node": 7.16.0 + "@babel/plugin-proposal-class-properties": 7.16.0 + "@babel/plugin-proposal-decorators": 7.16.4 + "@babel/plugin-proposal-private-methods": 7.16.0 + "@babel/plugin-proposal-private-property-in-object": 7.16.0 + "@babel/plugin-transform-runtime": 7.16.4 + "@babel/preset-env": 7.16.4 + "@babel/preset-react": 7.16.0 + "@babel/preset-typescript": 7.16.0 + "@babel/runtime-corejs3": 7.16.3 + "@pmmmwh/react-refresh-webpack-plugin": 0.5.3 + "@redwoodjs/cli": 0.39.2 + "@redwoodjs/eslint-config": 0.39.2 + "@redwoodjs/internal": 0.39.2 + "@redwoodjs/testing": 0.39.2 babel-loader: 8.2.3 babel-plugin-auto-import: 1.1.0 babel-plugin-graphql-tag: 3.3.0 babel-plugin-inline-react-svg: 2.0.1 babel-plugin-module-resolver: 4.1.0 babel-timing: 0.9.1 - copy-webpack-plugin: 9.0.1 - core-js: 3.18.3 - css-loader: 6.4.0 - css-minimizer-webpack-plugin: 3.1.1 + copy-webpack-plugin: 10.0.0 + core-js: 3.19.1 + css-loader: 6.5.1 + css-minimizer-webpack-plugin: 3.1.4 dotenv-webpack: 7.0.3 - esbuild: 0.13.8 + esbuild: 0.13.14 esbuild-loader: 2.16.0 fast-glob: 3.2.7 file-loader: 6.2.0 - graphql: 15.6.1 - graphql-tag: 2.12.5 - html-webpack-plugin: 5.4.0 + graphql: 16.0.1 + graphql-tag: 2.12.6 + html-webpack-plugin: 5.5.0 lodash.escaperegexp: 4.1.2 - mini-css-extract-plugin: 2.4.3 - nodemon: 2.0.14 + mini-css-extract-plugin: 2.4.5 + nodemon: 2.0.15 null-loader: 4.0.1 - react-refresh: 0.10.0 + react-refresh: 0.11.0 style-loader: 3.3.1 svg-react-loader: 0.4.6 - typescript: 4.4.4 + typescript: 4.5.2 url-loader: 4.1.1 - webpack: 5.59.1 + webpack: 5.64.1 webpack-bundle-analyzer: 4.5.0 webpack-cli: 4.9.1 - webpack-dev-server: 4.3.1 + webpack-dev-server: 4.5.0 webpack-manifest-plugin: 4.0.2 webpack-merge: 5.8.0 webpack-retry-chunk-load-plugin: 2.2.0 languageName: unknown linkType: soft -"@redwoodjs/eslint-config@0.38.1, @redwoodjs/eslint-config@workspace:packages/eslint-config": +"@redwoodjs/eslint-config@0.39.2, @redwoodjs/eslint-config@workspace:packages/eslint-config": version: 0.0.0-use.local resolution: "@redwoodjs/eslint-config@workspace:packages/eslint-config" dependencies: - "@babel/cli": 7.15.7 - "@babel/core": 7.15.8 - "@babel/eslint-parser": 7.15.8 + "@babel/cli": 7.16.0 + "@babel/core": 7.16.0 + "@babel/eslint-parser": 7.16.3 "@babel/eslint-plugin": 7.14.5 - "@typescript-eslint/eslint-plugin": 5.1.0 - "@typescript-eslint/parser": 5.1.0 - eslint: 7.32.0 + "@redwoodjs/internal": 0.39.2 + "@typescript-eslint/eslint-plugin": 5.4.0 + "@typescript-eslint/parser": 5.4.0 + eslint: 8.2.0 eslint-config-prettier: 8.3.0 eslint-import-resolver-babel-module: 5.3.1 eslint-plugin-babel: 5.3.1 - eslint-plugin-import: 2.25.2 + eslint-plugin-import: 2.25.3 eslint-plugin-jest-dom: 3.9.2 - eslint-plugin-jsx-a11y: 6.4.1 + eslint-plugin-jsx-a11y: 6.5.1 eslint-plugin-prettier: 4.0.0 - eslint-plugin-react: 7.26.1 - eslint-plugin-react-hooks: 4.2.0 + eslint-plugin-react: 7.27.1 + eslint-plugin-react-hooks: 4.3.0 jest: 27.3.1 prettier: 2.4.1 - typescript: 4.4.4 + typescript: 4.5.2 languageName: unknown linkType: soft @@ -4332,164 +4324,176 @@ __metadata: version: 0.0.0-use.local resolution: "@redwoodjs/forms@workspace:packages/forms" dependencies: - "@babel/cli": 7.15.7 + "@babel/cli": 7.16.0 "@types/pascalcase": 1.0.1 - core-js: 3.18.3 + core-js: 3.19.1 jest: 27.3.1 pascalcase: 1.0.0 - react-hook-form: 7.17.5 - typescript: 4.4.4 + react-hook-form: 7.19.5 + typescript: 4.5.2 languageName: unknown linkType: soft -"@redwoodjs/graphql-server@0.38.1, @redwoodjs/graphql-server@workspace:packages/graphql-server": +"@redwoodjs/graphql-server@0.39.2, @redwoodjs/graphql-server@workspace:packages/graphql-server": version: 0.0.0-use.local resolution: "@redwoodjs/graphql-server@workspace:packages/graphql-server" dependencies: - "@babel/cli": 7.15.7 - "@envelop/core": 1.3.0 - "@envelop/depth-limit": 1.0.0 - "@envelop/disable-introspection": 1.0.0 - "@envelop/filter-operation-type": 1.0.0 - "@envelop/parser-cache": 2.0.0 - "@envelop/testing": 2.0.0 - "@envelop/types": 1.2.0 - "@envelop/validation-cache": 2.0.0 - "@graphql-tools/merge": 8.2.0 - "@graphql-tools/schema": 8.3.0 - "@graphql-tools/utils": 8.5.0 - "@prisma/client": 3.3.0 - "@redwoodjs/api": 0.38.1 - "@redwoodjs/auth": 0.38.1 + "@babel/cli": 7.16.0 + "@envelop/core": 1.6.2 + "@envelop/depth-limit": 1.2.1 + "@envelop/disable-introspection": 1.2.1 + "@envelop/filter-operation-type": 1.2.1 + "@envelop/parser-cache": 2.2.1 + "@envelop/testing": 2.1.1 + "@envelop/types": 1.5.1 + "@envelop/validation-cache": 2.2.1 + "@graphql-tools/merge": 8.2.1 + "@graphql-tools/schema": 8.3.1 + "@graphql-tools/utils": 8.5.3 + "@prisma/client": 3.5.0 + "@redwoodjs/api": 0.39.2 + "@redwoodjs/auth": 0.39.2 "@types/lodash.merge": 4.6.6 "@types/lodash.omitby": 4.6.6 - "@types/uuid": 8.3.1 - aws-lambda: 1.0.6 - core-js: 3.18.3 - graphql: 15.6.1 - graphql-helix: 1.8.3 - graphql-playground-html: 1.6.29 - graphql-scalars: 1.12.0 - graphql-tag: 2.12.5 + "@types/uuid": 8.3.3 + aws-lambda: 1.0.7 + core-js: 3.19.1 + graphql: 16.0.1 + graphql-helix: 1.10.2 + graphql-playground-html: 1.6.30 + graphql-scalars: 1.13.6 + graphql-tag: 2.12.6 jest: 27.3.1 lodash.merge: 4.6.2 lodash.omitby: 4.6.0 node-fetch: 2.6.1 - typescript: 4.4.4 + typescript: 4.5.2 uuid: 8.3.2 languageName: unknown linkType: soft -"@redwoodjs/internal@0.38.1, @redwoodjs/internal@workspace:packages/internal": +"@redwoodjs/internal@0.39.2, @redwoodjs/internal@workspace:packages/internal": version: 0.0.0-use.local resolution: "@redwoodjs/internal@workspace:packages/internal" dependencies: - "@babel/cli": 7.15.7 - "@babel/parser": 7.15.8 - "@babel/plugin-transform-typescript": 7.15.8 - "@babel/register": 7.15.3 - "@babel/runtime-corejs3": 7.15.4 - "@babel/traverse": 7.15.4 - "@graphql-codegen/cli": 2.2.1 - "@graphql-codegen/core": 2.2.0 - "@graphql-codegen/schema-ast": 2.2.0 - "@graphql-codegen/typescript": 2.2.4 - "@graphql-codegen/typescript-operations": 2.1.8 - "@graphql-codegen/typescript-react-apollo": 3.1.6 - "@graphql-codegen/typescript-resolvers": 2.3.2 - "@redwoodjs/graphql-server": 0.38.1 + "@babel/cli": 7.16.0 + "@babel/parser": 7.16.4 + "@babel/plugin-transform-typescript": 7.16.1 + "@babel/register": 7.16.0 + "@babel/runtime-corejs3": 7.16.3 + "@babel/traverse": 7.16.3 + "@graphql-codegen/cli": 2.3.0 + "@graphql-codegen/core": 2.3.0 + "@graphql-codegen/schema-ast": 2.4.0 + "@graphql-codegen/typescript": 2.4.1 + "@graphql-codegen/typescript-operations": 2.2.1 + "@graphql-codegen/typescript-react-apollo": 3.2.2 + "@graphql-codegen/typescript-resolvers": 2.4.2 + "@redwoodjs/graphql-server": 0.39.2 "@types/babel-plugin-tester": 9.0.4 "@types/babel__core": 7.1.16 "@types/findup-sync": 4.0.1 "@types/fs-extra": 9.0.13 "@types/rimraf": 3.0.2 babel-plugin-graphql-tag: 3.3.0 - babel-plugin-polyfill-corejs3: 0.2.5 + babel-plugin-polyfill-corejs3: 0.4.0 babel-plugin-tester: 10.1.0 chalk: 4.1.2 - core-js: 3.18.3 + core-js: 3.19.1 deepmerge: 4.2.2 - esbuild: 0.13.8 + esbuild: 0.13.14 fast-glob: 3.2.7 - findup-sync: 4.0.0 + findup-sync: 5.0.0 fs-extra: 10.0.0 glob: 7.2.0 - graphql: 15.6.1 - graphql-tag: 2.12.5 + graphql: 16.0.1 + graphql-tag: 2.12.6 jest: 27.3.1 kill-port: 1.6.1 prettier: 2.4.1 rimraf: 3.0.2 string-env-interpolation: 1.0.1 toml: 3.0.0 - typescript: 4.4.4 + typescript: 4.5.2 bin: rw-gen: ./dist/generate/generate.js rw-gen-watch: ./dist/generate/watch.js languageName: unknown linkType: soft -"@redwoodjs/prerender@0.38.1, @redwoodjs/prerender@workspace:packages/prerender": +"@redwoodjs/prerender@0.39.2, @redwoodjs/prerender@workspace:packages/prerender": version: 0.0.0-use.local resolution: "@redwoodjs/prerender@workspace:packages/prerender" dependencies: - "@babel/cli": 7.15.7 - "@redwoodjs/auth": 0.38.1 - "@redwoodjs/internal": 0.38.1 - "@redwoodjs/router": 0.38.1 - "@redwoodjs/structure": 0.38.1 - "@redwoodjs/web": 0.38.1 + "@babel/cli": 7.16.0 + "@redwoodjs/auth": 0.39.2 + "@redwoodjs/internal": 0.39.2 + "@redwoodjs/router": 0.39.2 + "@redwoodjs/structure": 0.39.2 + "@redwoodjs/web": 0.39.2 "@types/mime-types": 2.1.1 babel-plugin-ignore-html-and-css-imports: 0.1.0 babel-plugin-tester: 10.1.0 cheerio: 1.0.0-rc.10 jest: 27.3.1 - mime-types: 2.1.33 + mime-types: 2.1.34 node-fetch: 2.6.1 - typescript: 4.4.4 + typescript: 4.5.2 peerDependencies: react: 17.0.2 react-dom: 17.0.2 languageName: unknown linkType: soft -"@redwoodjs/router@0.38.1, @redwoodjs/router@workspace:packages/router": +"@redwoodjs/record@workspace:packages/record": + version: 0.0.0-use.local + resolution: "@redwoodjs/record@workspace:packages/record" + dependencies: + "@babel/cli": 7.16.0 + "@prisma/client": 3.5.0 + "@prisma/sdk": 3.5.0 + core-js: 3.19.1 + jest: 27.3.1 + languageName: unknown + linkType: soft + +"@redwoodjs/router@0.39.2, @redwoodjs/router@workspace:packages/router": version: 0.0.0-use.local resolution: "@redwoodjs/router@workspace:packages/router" dependencies: - "@babel/cli": 7.15.7 + "@babel/cli": 7.16.0 "@reach/skip-nav": 0.16.0 - "@redwoodjs/auth": 0.38.1 + "@redwoodjs/auth": 0.39.2 "@types/lodash.isequal": 4.5.5 - core-js: 3.18.3 + core-js: 3.19.1 jest: 27.3.1 lodash.isequal: 4.5.0 prop-types: 15.7.2 react: 17.0.2 react-dom: 17.0.2 - typescript: 4.4.4 + typescript: 4.5.2 languageName: unknown linkType: soft -"@redwoodjs/structure@0.38.1, @redwoodjs/structure@workspace:packages/structure": +"@redwoodjs/structure@0.39.2, @redwoodjs/structure@workspace:packages/structure": version: 0.0.0-use.local resolution: "@redwoodjs/structure@workspace:packages/structure" dependencies: - "@babel/cli": 7.15.7 - "@prisma/sdk": 3.3.0 - "@redwoodjs/internal": 0.38.1 + "@babel/cli": 7.16.0 + "@prisma/sdk": 3.5.0 + "@redwoodjs/internal": 0.39.2 "@types/fs-extra": 9.0.13 "@types/line-column": 1.0.0 - "@types/lodash": 4.14.176 + "@types/lodash": 4.14.177 "@types/lru-cache": 5.1.1 - "@types/node": 16.11.4 - "@types/vscode": 1.61.0 - camelcase: 6.2.0 + "@types/node": 16.11.9 + "@types/vscode": 1.62.0 + camelcase: 6.2.1 deepmerge: 4.2.2 dotenv-defaults: 3.0.0 enquirer: 2.3.6 - findup-sync: 4.0.0 - graphql: 15.6.1 + findup-sync: 5.0.0 + graphql: 16.0.1 jest: 27.3.1 lazy-get-decorator: 2.2.0 line-column: 1.0.2 @@ -4498,8 +4502,8 @@ __metadata: lru-cache: 6.0.0 proxyquire: 2.1.3 toml: 3.0.0 - ts-morph: 12.0.0 - typescript: 4.4.4 + ts-morph: 12.2.0 + typescript: 4.5.2 vscode-languageserver: 6.1.1 vscode-languageserver-textdocument: 1.0.2 vscode-languageserver-types: 3.16.0 @@ -4507,28 +4511,28 @@ __metadata: languageName: unknown linkType: soft -"@redwoodjs/testing@0.38.1, @redwoodjs/testing@workspace:packages/testing": +"@redwoodjs/testing@0.39.2, @redwoodjs/testing@workspace:packages/testing": version: 0.0.0-use.local resolution: "@redwoodjs/testing@workspace:packages/testing" dependencies: - "@babel/cli": 7.15.7 - "@redwoodjs/auth": 0.38.1 - "@redwoodjs/graphql-server": 0.38.1 - "@redwoodjs/internal": 0.38.1 - "@redwoodjs/router": 0.38.1 - "@redwoodjs/web": 0.38.1 + "@babel/cli": 7.16.0 + "@redwoodjs/auth": 0.39.2 + "@redwoodjs/graphql-server": 0.39.2 + "@redwoodjs/internal": 0.39.2 + "@redwoodjs/router": 0.39.2 + "@redwoodjs/web": 0.39.2 "@storybook/addon-a11y": 6.3.12 "@storybook/builder-webpack5": 6.3.12 "@storybook/manager-webpack5": 6.3.12 "@storybook/react": 6.3.12 - "@testing-library/jest-dom": 5.14.1 + "@testing-library/jest-dom": 5.15.1 "@testing-library/react": 12.1.2 "@testing-library/user-event": 13.5.0 "@types/babel-core": 6.25.7 - "@types/jest": 27.0.2 - "@types/node": 16.11.4 - "@types/react": 17.0.31 - "@types/react-dom": 17.0.10 + "@types/jest": 27.0.3 + "@types/node": 16.11.9 + "@types/react": 17.0.35 + "@types/react-dom": 17.0.11 "@types/webpack": 5.28.0 babel-jest: 27.3.1 babel-plugin-inline-react-svg: 2.0.1 @@ -4536,26 +4540,26 @@ __metadata: jest-watch-typeahead: 1.0.0 msw: 0.35.0 ts-toolbelt: 9.6.0 - typescript: 4.4.4 + typescript: 4.5.2 whatwg-fetch: 3.6.2 languageName: unknown linkType: soft -"@redwoodjs/web@0.38.1, @redwoodjs/web@workspace:packages/web": +"@redwoodjs/web@0.39.2, @redwoodjs/web@workspace:packages/web": version: 0.0.0-use.local resolution: "@redwoodjs/web@workspace:packages/web" dependencies: - "@apollo/client": 3.4.16 - "@babel/cli": 7.15.7 - "@redwoodjs/auth": 0.38.1 - "@types/react": 17.0.31 - core-js: 3.18.3 - graphql: 15.6.1 + "@apollo/client": 3.5.5 + "@babel/cli": 7.16.0 + "@redwoodjs/auth": 0.39.2 + "@types/react": 17.0.35 + core-js: 3.19.1 + graphql: 16.0.1 jest: 27.3.1 proptypes: 1.1.0 react-helmet-async: 1.1.2 react-hot-toast: 2.1.1 - typescript: 4.4.4 + typescript: 4.5.2 peerDependencies: react: 17.0.2 languageName: unknown @@ -5422,52 +5426,52 @@ __metadata: languageName: node linkType: hard -"@supabase/gotrue-js@npm:^1.18.0": - version: 1.18.0 - resolution: "@supabase/gotrue-js@npm:1.18.0" +"@supabase/gotrue-js@npm:^1.21.0": + version: 1.21.7 + resolution: "@supabase/gotrue-js@npm:1.21.7" dependencies: cross-fetch: ^3.0.6 - checksum: 5bd1635e906bbe8495b11380781fa0d1378f363cd335e653969f73343ea7b6cc6ff9b672597ef229f78741021be6fd85b2617c7977e73e1f2b5a18081bc768f8 + checksum: 18ef68b2fedb9e22ff92a30fea5c29dc21697a62a14ebbce1c9566f1f3981dc9b794e5e3cb76d954002acfa3c09745746756f250538defae3c7e04b5bafa2263 languageName: node linkType: hard -"@supabase/postgrest-js@npm:^0.34.0": - version: 0.34.1 - resolution: "@supabase/postgrest-js@npm:0.34.1" +"@supabase/postgrest-js@npm:^0.35.0": + version: 0.35.0 + resolution: "@supabase/postgrest-js@npm:0.35.0" dependencies: cross-fetch: ^3.0.6 - checksum: 8e4488be16a14ffa52bab58bbb7a270600d17344f44257a19566200fe6c836e9541be1848c7a60fc84593771d6af2b7b47e24f985eb9a1043b54e5463d77d148 + checksum: 6a6c8a7fe7bfdf669e8e6adb5a9377c265e6bb6103b0b971a9d0fe017b0a0cb9f3471c0dae402430bd8083efc3f8816c86f596045a2cb1dc592dbc7182828377 languageName: node linkType: hard -"@supabase/realtime-js@npm:^1.2.0": - version: 1.2.0 - resolution: "@supabase/realtime-js@npm:1.2.0" +"@supabase/realtime-js@npm:^1.2.1": + version: 1.3.0 + resolution: "@supabase/realtime-js@npm:1.3.0" dependencies: "@types/websocket": ^1.0.3 websocket: ^1.0.34 - checksum: fff84260d0e889a4f118c0fdafbf06d56c9a8bb4d16ddb2683a9db47f51637a17eee7abe0381bf185fa97be8626005b8ea7254fdc8353badab68719503dab5fe + checksum: da03502789b63112f2ee5aca4fbcf5be0db1abe2347926eefe2338adb304acd5db3e6ac06d4d24081c9ef9480fd67bcac653fddfaf7316d0c8075d6d65fd2501 languageName: node linkType: hard -"@supabase/storage-js@npm:^1.4.0": - version: 1.4.1 - resolution: "@supabase/storage-js@npm:1.4.1" +"@supabase/storage-js@npm:^1.5.0": + version: 1.5.0 + resolution: "@supabase/storage-js@npm:1.5.0" dependencies: cross-fetch: ^3.1.0 - checksum: d31871b69616e6ab59df3a11acaa066df7721b61839babe0506397bce38006953340aa7b48827921f6f176068e6ad2c9dcf4237edb3478ea19c5bf06f9405bd6 + checksum: 80783589b9af3e7960ecac1799bcd4e19a5dbb6a8418c4b2045009d58c456b6de39bfe57d9b91d4ec863595c2a31ad4d3ed1628956cfb0b154954a5d7bd87ff0 languageName: node linkType: hard -"@supabase/supabase-js@npm:1.25.0": - version: 1.25.0 - resolution: "@supabase/supabase-js@npm:1.25.0" +"@supabase/supabase-js@npm:1.28.2": + version: 1.28.2 + resolution: "@supabase/supabase-js@npm:1.28.2" dependencies: - "@supabase/gotrue-js": ^1.18.0 - "@supabase/postgrest-js": ^0.34.0 - "@supabase/realtime-js": ^1.2.0 - "@supabase/storage-js": ^1.4.0 - checksum: 30f0876843c454dd15771a2b1f250a48f449a4abe4d144b7be3616fc6164512f9887814c69bb215a619d6cf3a404641b66d3dd0d14d68227127f14485e855e04 + "@supabase/gotrue-js": ^1.21.0 + "@supabase/postgrest-js": ^0.35.0 + "@supabase/realtime-js": ^1.2.1 + "@supabase/storage-js": ^1.5.0 + checksum: f284bdcc53b385ca94e7c98a5617fa984746ba21dfa0b6fdcf2e89fc0431de594224132416a01dd9d18753c594d5afe6da2b22e49bebd0a05a08def8d52b5677 languageName: node linkType: hard @@ -5521,9 +5525,9 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:5.14.1": - version: 5.14.1 - resolution: "@testing-library/jest-dom@npm:5.14.1" +"@testing-library/jest-dom@npm:5.15.1": + version: 5.15.1 + resolution: "@testing-library/jest-dom@npm:5.15.1" dependencies: "@babel/runtime": ^7.9.2 "@types/testing-library__jest-dom": ^5.9.1 @@ -5534,7 +5538,7 @@ __metadata: dom-accessibility-api: ^0.5.6 lodash: ^4.17.15 redent: ^3.0.0 - checksum: f373bcbc1daa872fa56d316ede8dfa4728d47414fe15ada6f91fd69ce4ab7eae776d3536186e211ff631c85ed56600133b90fe9c0429256df5609bb27c516d46 + checksum: 39b8ddcbb98d0e22418b879c75ee6b2ec89a302e720c0007cf630c6f345985010b8ca2f8f2f1326c84fac7800d5364961c5412da9ac5058e78538918f856badb languageName: node linkType: hard @@ -5604,15 +5608,15 @@ __metadata: languageName: node linkType: hard -"@ts-morph/common@npm:~0.11.0": - version: 0.11.0 - resolution: "@ts-morph/common@npm:0.11.0" +"@ts-morph/common@npm:~0.11.1": + version: 0.11.1 + resolution: "@ts-morph/common@npm:0.11.1" dependencies: fast-glob: ^3.2.7 minimatch: ^3.0.4 mkdirp: ^1.0.4 path-browserify: ^1.0.1 - checksum: dfe6fefbff58e09a2712704cdc645d64fc3e8e1a7567ef445d079d1c72294a25eb5862c66f02ed43f54fa7c19de85a0360a08fdfaf07b31930b19c58423bbe21 + checksum: 436c4eb553a8e9fef6c632a8ca31e9bc21a0855b67b284ffeb6697fa9778a70a0c20fe92f379e289ccb1490799accf1cc5e99ff401be49ebcfcaa8b0cbdef554 languageName: node linkType: hard @@ -5623,10 +5627,10 @@ __metadata: languageName: node linkType: hard -"@types/aws-lambda@npm:8.10.84": - version: 8.10.84 - resolution: "@types/aws-lambda@npm:8.10.84" - checksum: 63d3f6d24b0c23226224efbffed7d0be054f6b4a95be19a30e3588a0611691631f6a774d83a80821094d8cbc64e1e14f3ad99bbaf5f00cdf2c9a052a69bd3488 +"@types/aws-lambda@npm:8.10.85": + version: 8.10.85 + resolution: "@types/aws-lambda@npm:8.10.85" + checksum: 76979193719bc1c35bcb6a1a219b49b7640e665c9592cb646bb6e0fb52280e839c940cac9039030348b5e86053b3027eb307de839300aa8aa5b9f80abc2cfe4c languageName: node linkType: hard @@ -5688,7 +5692,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:*, @types/babel__core@npm:7, @types/babel__core@npm:7.1.16, @types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14": +"@types/babel__core@npm:*, @types/babel__core@npm:7.1.16, @types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14": version: 7.1.16 resolution: "@types/babel__core@npm:7.1.16" dependencies: @@ -6048,13 +6052,13 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:*, @types/jest@npm:27.0.2": - version: 27.0.2 - resolution: "@types/jest@npm:27.0.2" +"@types/jest@npm:*, @types/jest@npm:27.0.3": + version: 27.0.3 + resolution: "@types/jest@npm:27.0.3" dependencies: jest-diff: ^27.0.0 pretty-format: ^27.0.0 - checksum: 5fa123f05bf003fd5fea92878168ea720fbc6dab5ae9648fa883d0b2d427a1dd70a288c1a10e431df83ab4ff8b03e08e2aa4e77b0238c506d044567c994ad72b + checksum: 14a28483206cf57a6f2880ec8f4be7e37795cfa57c01e725edf52c551506705d970e3dce1787a9f5cf31e9f4a68eecb33cd684dbfcad69be525b2b603dd0bfe7 languageName: node linkType: hard @@ -6103,12 +6107,12 @@ __metadata: languageName: node linkType: hard -"@types/jsonwebtoken@npm:8.5.5, @types/jsonwebtoken@npm:^8.5.0, @types/jsonwebtoken@npm:^8.5.4": - version: 8.5.5 - resolution: "@types/jsonwebtoken@npm:8.5.5" +"@types/jsonwebtoken@npm:8.5.6, @types/jsonwebtoken@npm:^8.5.0, @types/jsonwebtoken@npm:^8.5.4": + version: 8.5.6 + resolution: "@types/jsonwebtoken@npm:8.5.6" dependencies: "@types/node": "*" - checksum: 21832eaa1ea9dd903b96b79ee4f8876fbc162620fe0c2261a4a7e7e660ef374e67a07405a3677c765e810b884d37736c514c2ef716e3b19b7db2777a46eb3ec4 + checksum: 8ae0932c1ec2c6b2566fbaa0116777175c5b97c25b8d0c5adc0fe4c383aa62c77c01dfc55c2f88c7b34978ede9bc5116a4ba1703e038f6555b1e3d1f59fe6bb4 languageName: node linkType: hard @@ -6188,10 +6192,10 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:*, @types/lodash@npm:4.14.176": - version: 4.14.176 - resolution: "@types/lodash@npm:4.14.176" - checksum: 43dcc9fff1a42d53cd41fcd1904ea72551cafc7c7ef72fadc0f212ac8297a151472c3e7f212cf81622b6062cf37039cb805b555eafe4e6d7729f5314c69a88e0 +"@types/lodash@npm:*, @types/lodash@npm:4.14.177": + version: 4.14.177 + resolution: "@types/lodash@npm:4.14.177" + checksum: b411e2fcf3cf6a97a96bd1f06b2d059c413530bfec6f3cc4ff14e627ab8dafe8fb22c192bcfd2f1334eed6efe09b9903696da1aff35fa6f9f66b21fb54feb4fa languageName: node linkType: hard @@ -6290,10 +6294,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:16.11.4, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 16.11.4 - resolution: "@types/node@npm:16.11.4" - checksum: 77c0d4b599fd49397411be06700c67bca8900ed0cd5fb00c86d90c15b34ccdab77cde4d3ccf1335b11fd720375a712607078dd8b13e2d3fcfe3d254ce62748b5 +"@types/node@npm:*, @types/node@npm:16.11.9, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": + version: 16.11.9 + resolution: "@types/node@npm:16.11.9" + checksum: 704c4ef42a005a22ac5b06554a28a3956a089545891ec949d87e4760de2c8f6d325d5883d449b312e0f54f13495655c1acd6c1bd6deeb677fc6b583ca6423d8a languageName: node linkType: hard @@ -6362,10 +6366,10 @@ __metadata: languageName: node linkType: hard -"@types/prettier@npm:*, @types/prettier@npm:2, @types/prettier@npm:^2.1.5": - version: 2.4.1 - resolution: "@types/prettier@npm:2.4.1" - checksum: 083103aa2fc29e8916760d87789bf2bfc0a61832fdb60a3be82325088f4dfeb45d944737dc817bc322575787a7221bb5677169ef0a712883b13803343106d966 +"@types/prettier@npm:*, @types/prettier@npm:2.4.2, @types/prettier@npm:^2.1.5": + version: 2.4.2 + resolution: "@types/prettier@npm:2.4.2" + checksum: 76cb69d0142e6007b7c1bcb7d4ff413e1bac3a9123abcb3a6fc773beb194e0cfbb1df5e3a3c5920eee6c1ed2382165219a7e1c4606187584b4e86aaaa94940c9 languageName: node linkType: hard @@ -6406,12 +6410,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:17.0.10": - version: 17.0.10 - resolution: "@types/react-dom@npm:17.0.10" +"@types/react-dom@npm:17.0.11": + version: 17.0.11 + resolution: "@types/react-dom@npm:17.0.11" dependencies: "@types/react": "*" - checksum: d5a27ece214388a6641b72b519910a838092fdf34cddc38dd7f7a6b298ecea633d3a764a800a4b67283046fc3371333c989ca19341ddcf06e4a453fa0120fe50 + checksum: afd57cfd7c6ffbd5f71e6fbfb130323e938cc914b699513be7e69d7d59d3b0e332b15e5379c1e58b9f7f71fc48c0cbdcd5301e1a0017540b53c6152e150e2fee languageName: node linkType: hard @@ -6424,14 +6428,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:17.0.31": - version: 17.0.31 - resolution: "@types/react@npm:17.0.31" +"@types/react@npm:17.0.35": + version: 17.0.35 + resolution: "@types/react@npm:17.0.35" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 5bb2d8819195757a3f889d69ab773694f6520fe8549aad06705605e6718bb0508e6ca895869582f2d778e27ca3744c50efe9eb85a6c049b21a29661a12bfc09f + checksum: c24aeae3ca1b2621e30d98b28b9cfd3bcb3971ab3fc2273547543fa2bd98f9d5bffda841953297aaee6fe946ad0c22df6516258e00bb47f4b5e41a23164839ed languageName: node linkType: hard @@ -6551,17 +6555,17 @@ __metadata: languageName: node linkType: hard -"@types/uuid@npm:8.3.1": - version: 8.3.1 - resolution: "@types/uuid@npm:8.3.1" - checksum: 3f7adf2bf15a805044e2b30e40247008a0b3b2d0795ad0d2de57c91ff55c69c340e1e4d9fc6959e330f1a8844f584a8f0b9c73b813986430b8e7ac2b38c87d81 +"@types/uuid@npm:8.3.3": + version: 8.3.3 + resolution: "@types/uuid@npm:8.3.3" + checksum: 9ee8d21a9f11fd4dbd217d43ae7336afe3799bbe19d1aad8d1a08a493b1b57f5a333577968c646a464cee8f7d839f997f3f7ae2c2a7bc43d2d34a950a79b5a88 languageName: node linkType: hard -"@types/vscode@npm:1.61.0": - version: 1.61.0 - resolution: "@types/vscode@npm:1.61.0" - checksum: 5a88a8f5e101153ae549cc6463feadb6139e9024fdcc39d28f209130d74e6a4f44c5785fb8f507f5c03a58c69b0074216db83b565c24f542098329558fa995b8 +"@types/vscode@npm:1.62.0": + version: 1.62.0 + resolution: "@types/vscode@npm:1.62.0" + checksum: 5664fcabdb59bc15eaeb239162b970c02d6a6cf296142c520a6cd03049f2da3c265ca7d778b10c4ffadf756c01419517b219a9500619912bfda1ef91078389ca languageName: node linkType: hard @@ -6617,12 +6621,12 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^7.4.7": - version: 7.4.7 - resolution: "@types/ws@npm:7.4.7" +"@types/ws@npm:^8.0.0": + version: 8.2.0 + resolution: "@types/ws@npm:8.2.0" dependencies: "@types/node": "*" - checksum: f1f53febd8623a85cef2652949acd19d83967e350ea15a851593e3033501750a1e04f418552e487db90a3d48611a1cff3ffcf139b94190c10f2fd1e1dc95ff10 + checksum: c15360ae193a4f76d78fc3d3f1511d06fc321e6bfb8d2b0b3227f08e96cf68035e206572fec230e61c7b97035d8078bb9526bc73afee0df5d4b58d1f7f9fc4bb languageName: node linkType: hard @@ -6658,19 +6662,12 @@ __metadata: languageName: node linkType: hard -"@types/zen-observable@npm:0.8.3": - version: 0.8.3 - resolution: "@types/zen-observable@npm:0.8.3" - checksum: c0605d109e58a32c9b47ab9becb4ee4bcd8ed54f452ccdcfbb025a60eb8abb1341f00fb045caaa6f1a72f1299f2cdf7b7918023aef34bd9bfdfdbae0e21e66eb - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.1.0" +"@typescript-eslint/eslint-plugin@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.4.0" dependencies: - "@typescript-eslint/experimental-utils": 5.1.0 - "@typescript-eslint/scope-manager": 5.1.0 + "@typescript-eslint/experimental-utils": 5.4.0 + "@typescript-eslint/scope-manager": 5.4.0 debug: ^4.3.2 functional-red-black-tree: ^1.0.1 ignore: ^5.1.8 @@ -6683,66 +6680,66 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 406cea9d45c2e5397c71ec4701a1ae5cadb088748ceca76b4f7d6befe4c607da05ca790b376f34dddc782c9b9319c20a341688c852e9e326eaa217380ef6c93d + checksum: 3bd03dfeb72f89d26aeabe5ff7b816d126d899f6829c96b7366b7715daf170887aec58dd53e275e9bac3c5de1d5ace569ad4a16455c1d59a562e0d7d855f2afc languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/experimental-utils@npm:5.1.0" +"@typescript-eslint/experimental-utils@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/experimental-utils@npm:5.4.0" dependencies: "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.1.0 - "@typescript-eslint/types": 5.1.0 - "@typescript-eslint/typescript-estree": 5.1.0 + "@typescript-eslint/scope-manager": 5.4.0 + "@typescript-eslint/types": 5.4.0 + "@typescript-eslint/typescript-estree": 5.4.0 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 peerDependencies: eslint: "*" - checksum: 115a43e4f5c19dc1f538eb51833af70dfb32fe6302e6b69c154c675398b358d0fc1023e15503448ea6b98a67c4612c4789a9a257093be3ad8633987646cd3784 + checksum: 125ee4008942d1ee7194442998a239930dae8bb8d191463cc8b9516360f24f51af168873c4da46ce5e49b4a64ee3b47af2c635747bf8267656a096174848318d languageName: node linkType: hard -"@typescript-eslint/parser@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/parser@npm:5.1.0" +"@typescript-eslint/parser@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/parser@npm:5.4.0" dependencies: - "@typescript-eslint/scope-manager": 5.1.0 - "@typescript-eslint/types": 5.1.0 - "@typescript-eslint/typescript-estree": 5.1.0 + "@typescript-eslint/scope-manager": 5.4.0 + "@typescript-eslint/types": 5.4.0 + "@typescript-eslint/typescript-estree": 5.4.0 debug: ^4.3.2 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 23829fd519c3cbb767e6f093d395d14884866d91e09061454c42fcdd2ef43c0e0f514f9a5b780622edfef6911064e3c5614e354efc367be81cc2db998cd2411e + checksum: 7729fe589f376235f4883ffdc79c2998a598ed2bd857b4c371e32eb6c902340a570f61ad85f29deec408b9ae1519135b9ed07d8c39a1f97b93cf32dff9b7896f languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/scope-manager@npm:5.1.0" +"@typescript-eslint/scope-manager@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/scope-manager@npm:5.4.0" dependencies: - "@typescript-eslint/types": 5.1.0 - "@typescript-eslint/visitor-keys": 5.1.0 - checksum: 62bbaf152d251362153fb83ce4b81d238cd612e0aaa43369e3293e587bd711f7c9be05a2237221fa65297fda40c636ef9eb38111b1f4c227291d261d5e5a200d + "@typescript-eslint/types": 5.4.0 + "@typescript-eslint/visitor-keys": 5.4.0 + checksum: 2971fc96fb078a276c88fe4fee95e55d5cb2cdd764489f3ef0b999c07d9fbc600e934f871b5690c332cc56a437529a46a5414589a8c72392b13db99af30ad596 languageName: node linkType: hard -"@typescript-eslint/types@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/types@npm:5.1.0" - checksum: a320e9b33261a8469d45cfc37f48b74feb56309122205e7497b7b5fb1e2e4dc0d8a1f4aad79334721d798ce0e0cde410bb498a83e153537212ae5a2fcda77312 +"@typescript-eslint/types@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/types@npm:5.4.0" + checksum: 46f4a71b9495652ac176b60b340d18de9c62f2856d5c5785ebaaab9dbe4d04378c16f65da26b3cc389634def8e004329d28c3cdbd7e952c3ada1def545a94f1d languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.1.0" +"@typescript-eslint/typescript-estree@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.4.0" dependencies: - "@typescript-eslint/types": 5.1.0 - "@typescript-eslint/visitor-keys": 5.1.0 + "@typescript-eslint/types": 5.4.0 + "@typescript-eslint/visitor-keys": 5.4.0 debug: ^4.3.2 globby: ^11.0.4 is-glob: ^4.0.3 @@ -6751,17 +6748,17 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: e6b02953febe134fd7b720fde653651f20fc52501be534d1380f3de9abb11c2e450c5437e4fa533555fdf6793f7bacfcf88ff98fee3cab61c48bdb1b2bd43c1c + checksum: 350459149cab5fe1fe8b537a62a0356ca7a81bb5f07a1a6db49b6e1cd06c51708acde7d49879008f8fef6f2bad6044e2b00440dd5ef7356ddb62226745f95f3d languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.1.0": - version: 5.1.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.1.0" +"@typescript-eslint/visitor-keys@npm:5.4.0": + version: 5.4.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.4.0" dependencies: - "@typescript-eslint/types": 5.1.0 + "@typescript-eslint/types": 5.4.0 eslint-visitor-keys: ^3.0.0 - checksum: ead1d4708acef688a7842a35b7e0fb8833b21a5d5bb14172f5d0142f5cab0e97c25bd95fe2a0a81ea0c4ad3b7ff9c6eceed818dec6820c65d10daf8a0abb218f + checksum: 050185bb86126966dc10260694127fe0e0be54ae70905872d7828b0977eddfebada3ba4fde5cd1f94329b92950e755e1ab214b6c2803787f813d97a4340c40dd languageName: node linkType: hard @@ -7192,7 +7189,7 @@ __metadata: languageName: node linkType: hard -"abort-controller@npm:3.0.0, abort-controller@npm:^3.0.0": +"abort-controller@npm:^3.0.0": version: 3.0.0 resolution: "abort-controller@npm:3.0.0" dependencies: @@ -7276,7 +7273,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^7.1.1, acorn@npm:^7.4.0": +"acorn@npm:^7.1.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" bin: @@ -7285,12 +7282,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.4, acorn@npm:^8.2.4, acorn@npm:^8.4.1": - version: 8.5.0 - resolution: "acorn@npm:8.5.0" +"acorn@npm:^8.0.4, acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.5.0": + version: 8.6.0 + resolution: "acorn@npm:8.6.0" bin: acorn: bin/acorn - checksum: a0cd0009d215df0c5a6c69ea40a5e784114f1b89d5649d663264ccbb855d4c6b6da6936fed607078b7d681bd8d8f2e730dad25931edbdef709bc4b520c0caa80 + checksum: 88c40e80571d6d2e1680e69313cbc8bf275c9558f25d441ea5a00c2693e88f63d8cc3c536127abdc892e9b87f387aad16c1a1902b7935b5a523455e68dde6249 languageName: node linkType: hard @@ -7372,6 +7369,20 @@ __metadata: languageName: node linkType: hard +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: ^8.0.0 + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662 + languageName: node + linkType: hard + "ajv-keywords@npm:^3.1.0, ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": version: 3.5.2 resolution: "ajv-keywords@npm:3.5.2" @@ -7381,6 +7392,17 @@ __metadata: languageName: node linkType: hard +"ajv-keywords@npm:^5.0.0": + version: 5.0.0 + resolution: "ajv-keywords@npm:5.0.0" + dependencies: + fast-deep-equal: ^3.1.3 + peerDependencies: + ajv: ^8.0.0 + checksum: 68573520c0e3320d9c76cafd65bbfd4cc36c330ed710f6b42b19eb8a5b55196c32ff44f86317cbee2831b509cec3d6396fa902d5973bd5f51c6ddd9c70b4266f + languageName: node + linkType: hard + "ajv@npm:^6.1.0, ajv@npm:^6.10.0, ajv@npm:^6.10.2, ajv@npm:^6.11.0, ajv@npm:^6.12.2, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:^6.12.6": version: 6.12.6 resolution: "ajv@npm:6.12.6" @@ -7393,15 +7415,15 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.1, ajv@npm:^8.1.0": - version: 8.6.3 - resolution: "ajv@npm:8.6.3" +"ajv@npm:^8.0.0, ajv@npm:^8.1.0, ajv@npm:^8.8.0": + version: 8.8.1 + resolution: "ajv@npm:8.8.1" dependencies: fast-deep-equal: ^3.1.1 json-schema-traverse: ^1.0.0 require-from-string: ^2.0.2 uri-js: ^4.2.2 - checksum: 94f8e39f3ab971e17d81b1335fbd67bb4b628b6bad8e96b0699af49dca991d7b1c89e53f7bf0823953c01ad36de915400ad4aad4728523a188914726f5805619 + checksum: 45e52e708f1335486671a008629ed973e0d729e12f00e9ff6e2c5dcab4d207dc4d198440ee17f48a94649bd40f5dd50fc6ca133b3e7d04e7ea5b64dad93f95fc languageName: node linkType: hard @@ -7738,7 +7760,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.0.3, array-includes@npm:^3.1.1, array-includes@npm:^3.1.3, array-includes@npm:^3.1.4": +"array-includes@npm:^3.0.3, array-includes@npm:^3.1.3, array-includes@npm:^3.1.4": version: 3.1.4 resolution: "array-includes@npm:3.1.4" dependencies: @@ -7767,6 +7789,13 @@ __metadata: languageName: node linkType: hard +"array-union@npm:^3.0.1": + version: 3.0.1 + resolution: "array-union@npm:3.0.1" + checksum: b5271d7e5688d2d1932928b271796dbbddc422448557ab05ef6f34a9f84fb645eb855384feec6234bf59c226053a0e21b8a00b0e6cd588874b90a5c13dbeb64e + languageName: node + linkType: hard + "array-uniq@npm:^1.0.1": version: 1.0.3 resolution: "array-uniq@npm:1.0.3" @@ -7792,7 +7821,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.2.1, array.prototype.flatmap@npm:^1.2.4": +"array.prototype.flatmap@npm:^1.2.1, array.prototype.flatmap@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.flatmap@npm:1.2.5" dependencies: @@ -7994,23 +8023,23 @@ __metadata: languageName: node linkType: hard -"aws-lambda@npm:1.0.6": - version: 1.0.6 - resolution: "aws-lambda@npm:1.0.6" +"aws-lambda@npm:1.0.7": + version: 1.0.7 + resolution: "aws-lambda@npm:1.0.7" dependencies: - aws-sdk: "*" + aws-sdk: ^2.814.0 commander: ^3.0.2 - js-yaml: ^3.13.1 + js-yaml: ^3.14.1 watchpack: ^2.0.0-beta.10 bin: - lambda: ./bin/lambda - checksum: dac0185e1c0c311fd567ca699038434d334f96cab0aad0ec6afa2ecfe9057c91a0cc21c2da135bbf5bf01dd610f90b37a2ec2e7b299510d9b3587dd8c1833633 + lambda: bin/lambda + checksum: cf017d4a0b92e14c7361afde48f40a77523fd8f9d911bbd951b65a453bc0aa54219a03d95c11fcad0f707994b67f691c6764215497f13178688e9efd17212b91 languageName: node linkType: hard -"aws-sdk@npm:*": - version: 2.1013.0 - resolution: "aws-sdk@npm:2.1013.0" +"aws-sdk@npm:^2.814.0": + version: 2.1033.0 + resolution: "aws-sdk@npm:2.1033.0" dependencies: buffer: 4.9.2 events: 1.1.1 @@ -8021,23 +8050,23 @@ __metadata: url: 0.10.3 uuid: 3.3.2 xml2js: 0.4.19 - checksum: 7339366f8a6b36d58dc3a037cf33dd04495e4a02115dbe6b3c7d148d2332ed03e9ccfdd3478b906860a81d6b6ed4be41d520ec089d88747c5e18b3502d9d8252 + checksum: 4c0f1e84d63a60bb5468cb505696165cbf215381d43685c074a835602e3fc5ec978d6154c46cd29fc3196ace93c3e47e7f0b5cd630b3539ae8130d49b6b81e30 languageName: node linkType: hard -"axe-core@npm:^4.0.2, axe-core@npm:^4.2.0": - version: 4.3.3 - resolution: "axe-core@npm:4.3.3" - checksum: 567c752b5fa6462931bab54826412a20642e80559570c9708f9654ccc4c531cff324bd9bd1de0e35903e9f1b8d63ce39bff3d7415b2382a379fbdd2739ce857a +"axe-core@npm:^4.2.0, axe-core@npm:^4.3.5": + version: 4.3.5 + resolution: "axe-core@npm:4.3.5" + checksum: 48c08748271964b9a09e523cd5739cc3b8be8982ffffda30269b7e4f75af35b56ba951467a0e37eb213380f7b3544b7503e1a213660aadc00b990d6427e11b1e languageName: node linkType: hard -"axios@npm:0.23.0": - version: 0.23.0 - resolution: "axios@npm:0.23.0" +"axios@npm:0.24.0": + version: 0.24.0 + resolution: "axios@npm:0.24.0" dependencies: follow-redirects: ^1.14.4 - checksum: cbc30b027003c0a2695911ac2617a2869f954a442b3e95a0a8017677e6246e2b8c69126c57683a5124ff8fbcf434a4e8832b450c0ba650f85e1c6389bd055d84 + checksum: d106561e761bf48633633073626eafb80289eb7c7c27f9fae4fb796939b6ecd2c9f63b596e3b3d872f7c0bec6b2fb117c58456d387e4ca2da7fc07c795a979c3 languageName: node linkType: hard @@ -8283,28 +8312,28 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.2.2": - version: 0.2.2 - resolution: "babel-plugin-polyfill-corejs2@npm:0.2.2" +"babel-plugin-polyfill-corejs2@npm:^0.3.0": + version: 0.3.0 + resolution: "babel-plugin-polyfill-corejs2@npm:0.3.0" dependencies: "@babel/compat-data": ^7.13.11 - "@babel/helper-define-polyfill-provider": ^0.2.2 + "@babel/helper-define-polyfill-provider": ^0.3.0 semver: ^6.1.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7fb5129204c31d46474b78f7ceaa117b6e740edc8dfc7a32aeb82d766f8815b06bcee09b95d0ddcfd71dbf9b237887b16adf06d18e1ef0e4689213bb2b2bf9ee + checksum: e3d86452139d3fd5e385644b429e8de6f9f70673294dba070c2dcd09a2075372e2f0e8837edbfae4e862c4ff891c5a1aebbc9e92adf6ee10798a42bc6ee9e505 languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:0.2.5, babel-plugin-polyfill-corejs3@npm:^0.2.5": - version: 0.2.5 - resolution: "babel-plugin-polyfill-corejs3@npm:0.2.5" +"babel-plugin-polyfill-corejs3@npm:0.4.0, babel-plugin-polyfill-corejs3@npm:^0.4.0": + version: 0.4.0 + resolution: "babel-plugin-polyfill-corejs3@npm:0.4.0" dependencies: - "@babel/helper-define-polyfill-provider": ^0.2.2 - core-js-compat: ^3.16.2 + "@babel/helper-define-polyfill-provider": ^0.3.0 + core-js-compat: ^3.18.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 370d9039235d63b72d1c2addd5674c44c6e28d876ccc4600d4c4d83877b73b58aced87f43a150cc76685cba4c05544b1969c079afb9faf5ee75d1bcc9f2510b1 + checksum: 1b18ba8925b42a70f14f64be825664ddd11cd5f53b50c2cb859d2f8eb00d62b292c5cac78cbeeb0bc7ba621826aa8674e6d9cdf7a32cece4b0d76c8263f92966 languageName: node linkType: hard @@ -8320,14 +8349,14 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.2.2": - version: 0.2.2 - resolution: "babel-plugin-polyfill-regenerator@npm:0.2.2" +"babel-plugin-polyfill-regenerator@npm:^0.3.0": + version: 0.3.0 + resolution: "babel-plugin-polyfill-regenerator@npm:0.3.0" dependencies: - "@babel/helper-define-polyfill-provider": ^0.2.2 + "@babel/helper-define-polyfill-provider": ^0.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 87ca62b1bcb67cd4d9b0076683203bca985a7e5a9702533a60363d2fef8a5471aa0e2411555fb9623d3a1a0987315199a99221bcf07fa2c89cf444a7aac5fd32 + checksum: 2d4b83c7ae734cf1b1a41170dfa6d044e41f2c5262c0b9d41ee1195caa61f56cd85bad2d80cfe49f4d729be45f0d03276fa33b7433379fc4f39f82eb4fad865d languageName: node linkType: hard @@ -8860,18 +8889,18 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.12.0, browserslist@npm:^4.14.5, browserslist@npm:^4.16.0, browserslist@npm:^4.16.6, browserslist@npm:^4.17.1": - version: 4.17.3 - resolution: "browserslist@npm:4.17.3" +"browserslist@npm:^4.0.0, browserslist@npm:^4.12.0, browserslist@npm:^4.14.5, browserslist@npm:^4.16.0, browserslist@npm:^4.16.6, browserslist@npm:^4.17.5, browserslist@npm:^4.17.6": + version: 4.18.1 + resolution: "browserslist@npm:4.18.1" dependencies: - caniuse-lite: ^1.0.30001264 - electron-to-chromium: ^1.3.857 + caniuse-lite: ^1.0.30001280 + electron-to-chromium: ^1.3.896 escalade: ^3.1.1 - node-releases: ^1.1.77 - picocolors: ^0.2.1 + node-releases: ^2.0.1 + picocolors: ^1.0.0 bin: browserslist: cli.js - checksum: 936863a2e8539d697d3c45297de82df4cd896be5bec53a24b0969d9c788e8eee0c6e6421a9a2f46e5cb5804c49762cd532f781e1c117c07727be6dda613cea07 + checksum: e92013f0ff6034e7660ac16d6fbad8313882d139abfd05168406e5d950fc98a8c604d580212b044cc503e111aacc189113497f104a8855429db8654895e773d9 languageName: node linkType: hard @@ -9206,10 +9235,10 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:6.2.0, camelcase@npm:^6.2.0": - version: 6.2.0 - resolution: "camelcase@npm:6.2.0" - checksum: d9f403a6153394c5bc68ec9c2672df1d04f00a7847708be12641b483b936cbfaaf14d891f92bb0026184e03923be24acd15a0476761e1286eec484d68f615fe5 +"camelcase@npm:6.2.1, camelcase@npm:^6.2.0": + version: 6.2.1 + resolution: "camelcase@npm:6.2.1" + checksum: df7fc7ad9e6b76040e88708336d24bb43890f97745dec3002f11a97138d98dc9ed971cf872d23e48f735d45dbbd9c7863072a3ce0fd7e897a11c31e58d8c6e78 languageName: node linkType: hard @@ -9232,10 +9261,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001125, caniuse-lite@npm:^1.0.30001264": - version: 1.0.30001264 - resolution: "caniuse-lite@npm:1.0.30001264" - checksum: 54e97b692cf1299d0a572f687e743e1260292f2350ba76ab193158272952e8c47030535ab5126618aba0fc52952ac3e94efbd8db2b4597e03ed52dad0f04d3b0 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001125, caniuse-lite@npm:^1.0.30001280": + version: 1.0.30001282 + resolution: "caniuse-lite@npm:1.0.30001282" + checksum: fdfcf4fbedc66e26f7dd8a856f5bfc60c2c303a99cf14a6f9519943710dfad98cc85357bcec13adea81ce0a5c08a9c4c5f1f50346e72f910b24c02078dbe633b languageName: node linkType: hard @@ -9395,9 +9424,9 @@ __metadata: languageName: node linkType: hard -"check-node-version@npm:4.1.0": - version: 4.1.0 - resolution: "check-node-version@npm:4.1.0" +"check-node-version@npm:4.2.1": + version: 4.2.1 + resolution: "check-node-version@npm:4.2.1" dependencies: chalk: ^3.0.0 map-values: ^1.0.1 @@ -9407,7 +9436,7 @@ __metadata: semver: ^6.3.0 bin: check-node-version: bin.js - checksum: fea1a5ed7f4a83ebe43425c1223b7ddae5655a09f974397d1088af3521da0b9b3e1edd14c5c7b8a2590d6d7a4fa22da69ea0347fdde985164f97b847cc78e09f + checksum: 7778e04d240710c64d952181d45c1efe21c2a032da529d8eafced5811652137bd24d53b0a850fac27cb75de8041f40fa268df66e8f57fbeeff82813215eefab7 languageName: node linkType: hard @@ -9454,7 +9483,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:3.5.2, chokidar@npm:^3.2.2, chokidar@npm:^3.4.0, chokidar@npm:^3.4.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.1, chokidar@npm:^3.5.2": +"chokidar@npm:3.5.2, chokidar@npm:^3.4.0, chokidar@npm:^3.4.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.2": version: 3.5.2 resolution: "chokidar@npm:3.5.2" dependencies: @@ -9531,7 +9560,7 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^3.1.1, ci-info@npm:^3.2.0": +"ci-info@npm:^3.2.0": version: 3.2.0 resolution: "ci-info@npm:3.2.0" checksum: 9479fb1d835c277b388f02b6f46f1a9355c8dbc07b33b896552949ed0d4708b317bf7221ef9a3c86e975549982f76d3b84b2c7c99a8b26220218c2f3a9b657d4 @@ -9981,9 +10010,9 @@ __metadata: languageName: node linkType: hard -"concurrently@npm:6.3.0": - version: 6.3.0 - resolution: "concurrently@npm:6.3.0" +"concurrently@npm:6.4.0": + version: 6.4.0 + resolution: "concurrently@npm:6.4.0" dependencies: chalk: ^4.1.0 date-fns: ^2.16.1 @@ -9995,7 +10024,7 @@ __metadata: yargs: ^16.2.0 bin: concurrently: bin/concurrently.js - checksum: 2035a9710c116899fd03042bb2d903d36ecca8af436acab9b1b598c55562ffeedbd3939a11bdaab7130d24481e1d0f29d457113a9a1944a01ad776cf7ecb2a51 + checksum: 43e742977f2a29eb562d78e321bc7a5b468c2d0e2f74e9a9a78234b05be5484723ec741c8354f84fb807b815f4cec07237c48a4149b6526b1eca9742e88b8c35 languageName: node linkType: hard @@ -10159,44 +10188,43 @@ __metadata: languageName: node linkType: hard -"copy-webpack-plugin@npm:9.0.1": - version: 9.0.1 - resolution: "copy-webpack-plugin@npm:9.0.1" +"copy-webpack-plugin@npm:10.0.0": + version: 10.0.0 + resolution: "copy-webpack-plugin@npm:10.0.0" dependencies: - fast-glob: ^3.2.5 - glob-parent: ^6.0.0 - globby: ^11.0.3 + fast-glob: ^3.2.7 + glob-parent: ^6.0.1 + globby: ^12.0.2 normalize-path: ^3.0.0 - p-limit: ^3.1.0 - schema-utils: ^3.0.0 + schema-utils: ^4.0.0 serialize-javascript: ^6.0.0 peerDependencies: webpack: ^5.1.0 - checksum: 9f4feea20795433156e462e655d9ee443ef4c3bf0d27aefd40885e0df91be31ae49db3fbab28cca3f5354607cf745f789462084851aa34c384964bc8aced2882 + checksum: 754640044df6ec4c67058dcdf892f73caded48da017b1eea41a046db7b2a1cf6f0537e5c34a9f469c7c953ed56dd5f6d90824c0673d23c5cb46279ffb3aa382c languageName: node linkType: hard -"core-js-compat@npm:^3.16.0, core-js-compat@npm:^3.16.2, core-js-compat@npm:^3.8.1": - version: 3.18.1 - resolution: "core-js-compat@npm:3.18.1" +"core-js-compat@npm:^3.18.0, core-js-compat@npm:^3.19.1, core-js-compat@npm:^3.8.1": + version: 3.19.1 + resolution: "core-js-compat@npm:3.19.1" dependencies: - browserslist: ^4.17.1 + browserslist: ^4.17.6 semver: 7.0.0 - checksum: 993c8ccc4ec942ef31104755d18f3702130bf42696ac621948896c7ec1f51052d49a530562c000d9dab259971f2eba6fcfcd10630edc8899acd44687d0f62638 + checksum: 114a4f38a6270bf1a066ac301045502feb0835b36e342e0b09bb3ff505ddbd29e0c55cf4cc7205d7fdd2a2f28ad9fb6ed950ea7f7a2a98486bbfa83df1d759f8 languageName: node linkType: hard -"core-js-pure@npm:^3.16.0, core-js-pure@npm:^3.8.1, core-js-pure@npm:^3.8.2": - version: 3.18.1 - resolution: "core-js-pure@npm:3.18.1" - checksum: 25509f7b3e33b99033d720636ffe63cf397fcc6715e8781add8a665dd5802a11d7f343147237670050197981cedee1343c6ba509671f2d29beb363de43e8b287 +"core-js-pure@npm:^3.19.0, core-js-pure@npm:^3.8.1, core-js-pure@npm:^3.8.2": + version: 3.19.1 + resolution: "core-js-pure@npm:3.19.1" + checksum: acc7f9c56f501e7d0223410327e11e3b70357261641e1258f8e022e2f04040d058fab9a793f387a353008e1ece644d7293b03ec7f018418313e2fdf3fb646a30 languageName: node linkType: hard -"core-js@npm:3.18.3, core-js@npm:^3.0.4, core-js@npm:^3.16.0, core-js@npm:^3.18.2, core-js@npm:^3.6.5, core-js@npm:^3.8.2": - version: 3.18.3 - resolution: "core-js@npm:3.18.3" - checksum: 22e9b24bc7518bc4514fe5daef4e7f277d4e4b4949f1c228dd3e1dcf087b5e2b562fd075c2506494922d0e99f0392e2f3b759a872b7cd5508b70aafa3d0914fa +"core-js@npm:3.19.1, core-js@npm:^3.0.4, core-js@npm:^3.18.2, core-js@npm:^3.18.3, core-js@npm:^3.19.0, core-js@npm:^3.6.5, core-js@npm:^3.8.2": + version: 3.19.1 + resolution: "core-js@npm:3.19.1" + checksum: 9f24df1cecb2f605d445e858a2bd67ccb433c001b0d50511e4e092d762a6df215094da928c424e4a63656a53fa8c50eba36eeff1df1e29d91a2ec2e9d9feb75a languageName: node linkType: hard @@ -10207,13 +10235,6 @@ __metadata: languageName: node linkType: hard -"core-js@npm:3.8.1": - version: 3.8.1 - resolution: "core-js@npm:3.8.1" - checksum: 1fb5e026973749cf6fb34158c3e800353ae67bc61d3beaa220584fe756b2f7ff8b10659667a71c313da4299897880e1c5dd2b3b24c147204e4a997ee8d5d0558 - languageName: node - linkType: hard - "core-util-is@npm:~1.0.0": version: 1.0.3 resolution: "core-util-is@npm:1.0.3" @@ -10230,16 +10251,16 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:7.0.0": - version: 7.0.0 - resolution: "cosmiconfig@npm:7.0.0" +"cosmiconfig@npm:7.0.1, cosmiconfig@npm:^7.0.0": + version: 7.0.1 + resolution: "cosmiconfig@npm:7.0.1" dependencies: "@types/parse-json": ^4.0.0 import-fresh: ^3.2.1 parse-json: ^5.0.0 path-type: ^4.0.0 yaml: ^1.10.0 - checksum: 532cb7fc3690afb00fa989d8127a824439e2e926a3d40b4e07c3e563fe1910b91ed19d611143267fa607538f324f07eeb79e917aea85859786e6e1c0c00b1cda + checksum: 3cd38525ba22e13da0ef9f4be131df226c94f5b96fb50f6297eb17baeedefe15cf5819f8c73cde69f71cc5034e712c86bd20c7756883dd8094087680ecc25932 languageName: node linkType: hard @@ -10256,19 +10277,6 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^7.0.0": - version: 7.0.1 - resolution: "cosmiconfig@npm:7.0.1" - dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.2.1 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.10.0 - checksum: 3cd38525ba22e13da0ef9f4be131df226c94f5b96fb50f6297eb17baeedefe15cf5819f8c73cde69f71cc5034e712c86bd20c7756883dd8094087680ecc25932 - languageName: node - linkType: hard - "cp-file@npm:^7.0.0": version: 7.0.0 resolution: "cp-file@npm:7.0.0" @@ -10383,20 +10391,20 @@ __metadata: version: 0.0.0-use.local resolution: "create-redwood-app@workspace:packages/create-redwood-app" dependencies: - "@babel/cli": 7.15.7 - "@babel/node": 7.15.8 - "@babel/runtime-corejs3": 7.15.4 - "@redwoodjs/internal": 0.38.1 - axios: 0.23.0 + "@babel/cli": 7.16.0 + "@babel/node": 7.16.0 + "@babel/runtime-corejs3": 7.16.3 + "@redwoodjs/internal": 0.39.2 + axios: 0.24.0 chalk: 4.1.2 - check-node-version: 4.1.0 + check-node-version: 4.2.1 decompress: 4.2.1 execa: 5.1.1 fs-extra: 10.0.0 jest: 27.3.1 listr: 0.14.3 tmp: 0.2.1 - typescript: 4.4.4 + typescript: 4.5.2 yargs: 16.2.0 bin: create-redwood-app: ./dist/create-redwood-app.js @@ -10442,6 +10450,18 @@ __metadata: languageName: node linkType: hard +"cross-undici-fetch@npm:^0.0.20": + version: 0.0.20 + resolution: "cross-undici-fetch@npm:0.0.20" + dependencies: + abort-controller: ^3.0.0 + form-data: ^4.0.0 + node-fetch: ^2.6.5 + undici: ^4.9.3 + checksum: f04a2a74ad8cea21d27802b05a8a2bf7c7a87374420aa903af5bb77fc33ffc53e5463771e2fab6f17e5e5f8d5d9d7555fcc1b7a4120a014a063f6b6fb43bae3f + languageName: node + linkType: hard + "crypt@npm:0.0.2": version: 0.0.2 resolution: "crypt@npm:0.0.2" @@ -10507,9 +10527,9 @@ __metadata: languageName: node linkType: hard -"css-loader@npm:6.4.0": - version: 6.4.0 - resolution: "css-loader@npm:6.4.0" +"css-loader@npm:6.5.1": + version: 6.5.1 + resolution: "css-loader@npm:6.5.1" dependencies: icss-utils: ^5.1.0 postcss: ^8.2.15 @@ -10521,7 +10541,7 @@ __metadata: semver: ^7.3.5 peerDependencies: webpack: ^5.0.0 - checksum: 1ca7e43addf205aba9a0c2b556c30012bdc7eb86ecf2a8592fa1c760c05abb39c976de9e5c1f1030ca7305a7ee7a819ef21f4e27919e5ed9428cf12bf1ad0837 + checksum: 06fbc837b2961b14f02fd54cb870b1646f64c1380896c1ad48199afdb49cac50aec714398d114ac9ef2b6f806aa3f3c528479d152d0ee5907f30bfc41e0a9922 languageName: node linkType: hard @@ -10568,15 +10588,14 @@ __metadata: languageName: node linkType: hard -"css-minimizer-webpack-plugin@npm:3.1.1": - version: 3.1.1 - resolution: "css-minimizer-webpack-plugin@npm:3.1.1" +"css-minimizer-webpack-plugin@npm:3.1.4": + version: 3.1.4 + resolution: "css-minimizer-webpack-plugin@npm:3.1.4" dependencies: cssnano: ^5.0.6 jest-worker: ^27.0.2 - p-limit: ^3.0.2 postcss: ^8.3.5 - schema-utils: ^3.1.0 + schema-utils: ^4.0.0 serialize-javascript: ^6.0.0 source-map: ^0.6.1 peerDependencies: @@ -10588,7 +10607,7 @@ __metadata: optional: true esbuild: optional: true - checksum: 78ebf65522044a1f859afaca9924904d6cff63cbb0b9063d30667673dd67f722a79c25e647da919f2f6ddab3ee716044b4d4fd84f3e89eed0d8e7af3d54b9ef2 + checksum: 5cdab7abbb0e52a1b4df16ef524d02c3a5003b5650cf4a656356ce7f7a8c2f3747475065445ffcb580743a2c70726c2388da1931068e7952e4b72c63814af79e languageName: node linkType: hard @@ -10793,7 +10812,7 @@ __metadata: languageName: node linkType: hard -"damerau-levenshtein@npm:^1.0.6": +"damerau-levenshtein@npm:^1.0.7": version: 1.0.7 resolution: "damerau-levenshtein@npm:1.0.7" checksum: 05083ca068c3d126191a7bd9392e313117010166540bb3018b40e63cd24c376fe323161c46b1a1dd73e482f323416eaee4430352c69207d6a968b33f4af66217 @@ -10862,7 +10881,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.3.2, debug@npm:^4.0.0, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2": version: 4.3.2 resolution: "debug@npm:4.3.2" dependencies: @@ -10874,7 +10893,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.0.0, debug@npm:^3.1.1, debug@npm:^3.2.6, debug@npm:^3.2.7": +"debug@npm:^3.0.0, debug@npm:^3.1.1, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -11550,6 +11569,13 @@ __metadata: languageName: node linkType: hard +"dset@npm:^3.1.0": + version: 3.1.1 + resolution: "dset@npm:3.1.1" + checksum: b26e14f364b2b849f4a4f779fe0f14d9e3e6224ed0c4139f5592c4f253ba44768ecd689b1cf04b920f0a6f88c64d959ef332745d1564c2d18e8496a1e7262a43 + languageName: node + linkType: hard + "duplexer3@npm:^0.1.4": version: 0.1.4 resolution: "duplexer3@npm:0.1.4" @@ -11604,10 +11630,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.3.564, electron-to-chromium@npm:^1.3.857": - version: 1.3.858 - resolution: "electron-to-chromium@npm:1.3.858" - checksum: 6301cd9db7bfeeec224dc7f9b4f7d72ba7ed99a6eb32a1a0c418ffb389dbb46c9f11b5abf4514e64532b5f12e7ce4c17f74e39ce5b3ccdfc9b89cc4b5fe4c112 +"electron-to-chromium@npm:^1.3.564, electron-to-chromium@npm:^1.3.896": + version: 1.3.903 + resolution: "electron-to-chromium@npm:1.3.903" + checksum: 9f7409def8f36ecb5df6ad0d3fb9b79a77541a6619fcc8a6f8fe2b961d1ba1efc2bd51026fe708349ff4b4e2b0203ff8dd5a5a718ae7018eec2b92b39db40d78 languageName: node linkType: hard @@ -11656,7 +11682,7 @@ __metadata: languageName: node linkType: hard -"emoji-regex@npm:^9.0.0": +"emoji-regex@npm:^9.2.2": version: 9.2.2 resolution: "emoji-regex@npm:9.2.2" checksum: af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 @@ -11830,7 +11856,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.18.0-next.2, es-abstract@npm:^1.18.2, es-abstract@npm:^1.18.5, es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1": +"es-abstract@npm:^1.18.0-next.2, es-abstract@npm:^1.18.5, es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1": version: 1.19.1 resolution: "es-abstract@npm:1.19.1" dependencies: @@ -11952,80 +11978,80 @@ __metadata: languageName: node linkType: hard -"esbuild-android-arm64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-android-arm64@npm:0.13.8" - checksum: e717760941dc403ef24bc02026b042f4d08a2efe03350b7f0a220eb95f1c8e73ea5f9ce8e0a13b0d17a0e375f276a0f0b978d1d46c254badb676e1861ea56d0c +"esbuild-android-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-android-arm64@npm:0.13.14" + checksum: a2a880c598e6ecb8b82f6cee97897e1bc9b4244f4202af68b2d870fd00706a61176493da4b925bfca0acb55a4db4a9826907df12ba81d1d1fcb1c5db9a6e043a languageName: node linkType: hard -"esbuild-darwin-64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-darwin-64@npm:0.13.8" - checksum: ab0641fd40fd301abd867f7978d76bf9596eb97df5b7b9d0ddf3a8da0e82581ef97f9e669db9e6899bf66ea05f610b95b5bc58efe8b77d42e1062fede479891e +"esbuild-darwin-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-darwin-64@npm:0.13.14" + checksum: 4e979632a782aec8611e5ae56151c4792b2909d17868b12092dd9853436e414bff7f753715480fffbdcb78403f0be01f88876b6c6f8ccc612be8bfd7ff9e0bb6 languageName: node linkType: hard -"esbuild-darwin-arm64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-darwin-arm64@npm:0.13.8" - checksum: 5ea9d2224457fa1b16ae582236f18f18f47cda87105c3937f523e2860c9730fbf01814ce7ad0e44642608b385fa55e6020b57c765b437d6d173e327dcf88c551 +"esbuild-darwin-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-darwin-arm64@npm:0.13.14" + checksum: ede7ec0217d39d8c84e568362d3957db40e7efbfc426e35ac53ed4cb901bed8f715e9af7eac788ce4ba11f45fef0c127e8cf878d809138c4027036bbddc4ae66 languageName: node linkType: hard -"esbuild-freebsd-64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-freebsd-64@npm:0.13.8" - checksum: 5410c298bc8f49ca253bd65fbebc4e1703330c5fcd08e5ff7b77a998492d65ea77f2d0f926163ffe6b2ca656069046748089f202e3d10915e1662c2f51e118d4 +"esbuild-freebsd-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-freebsd-64@npm:0.13.14" + checksum: f2ecef6f13daf049e33310dff1edf97e1de28570b8e1e6bb75c63ee6a979e905135ac28b3084eb9a9430981867d7f50764138a4ef9a5ea754bdb9e37153b74e1 languageName: node linkType: hard -"esbuild-freebsd-arm64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-freebsd-arm64@npm:0.13.8" - checksum: 61e86acb1ec1eef9f887736f5b3c45cae84064cece27ddef337f96ac97957765325504dc15aa0b45451a6c5214533b67264cc02c4cb203ba944f45a02dc163d5 +"esbuild-freebsd-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-freebsd-arm64@npm:0.13.14" + checksum: 14e4c5871ca3c85d0a8e4f32c7444249d13091a3dd66d6ad6efa460bef6410cd4a318ea673d5de461b956656b90324593e988c882f1662765dcef48b58cf2883 languageName: node linkType: hard -"esbuild-linux-32@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-linux-32@npm:0.13.8" - checksum: f444882a9649c8358c4682e9f16fc30bf64b92c89e15ed78c1a090b38ca65a233d8c57d03c34882fb540d1c9686fb227ae372fcb42c2a818e72a22a532a731ba +"esbuild-linux-32@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-32@npm:0.13.14" + checksum: 2bd768e434c203880f6b812aeb7e4c7926a10db55b638f9f2e6660534fc2e3feb2ee6b39196db72783c7798ca3435215fe1b3d4e3b3aaeaff23722e77891b73a languageName: node linkType: hard -"esbuild-linux-64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-linux-64@npm:0.13.8" - checksum: 3774452cb370e41240a99d2f2ac9e3a25736ca9b6eb04c06379456d929798ab966455951006ad81d080aefebbddf68ec2d03bf901a3f238b6fe44f60ef278b23 +"esbuild-linux-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-64@npm:0.13.14" + checksum: ca48f8308960a39da6054f94e227ec7cab9583dab5b0312762fb724d4d7823e914dace67e6ab0b02f39e17319ddce51cf6ed14f08757af6a4419ec9e1b6c21ee languageName: node linkType: hard -"esbuild-linux-arm64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-linux-arm64@npm:0.13.8" - checksum: 5ebe5cd23c02dc17ab80a2c128c2ce186c14e49bca450f9710613be67d74e12f7f535b036b66ceb59bfac6d9400b739ff5423bf91fdb3206b22a9f9e2c6056f7 +"esbuild-linux-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-arm64@npm:0.13.14" + checksum: dfcccdbf1d9011016e4e1aa566b1be372b34279b5713c411b133b98188eb693fa983b79a582aaef0142eebcb77b9d0c46d5b342ed8264469a4953c0cb8abb347 languageName: node linkType: hard -"esbuild-linux-arm@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-linux-arm@npm:0.13.8" - checksum: 9c7e815dfa0e82203f26397a0b5baf7f33ca74185d4b0d63e720125902642c1f6c93f13d9ff80774e8bc635bfc231f6797887820fd678844e6a55dd52136a3e8 +"esbuild-linux-arm@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-arm@npm:0.13.14" + checksum: d3aa936bda80bd88785123691ce017a77208df7cc365f669a5c35c1e9034a5d5bcdd2c86ef2e216d5a101d6980c3f2e9c0070f4fdcd602e38fb81e35f2deb493 languageName: node linkType: hard -"esbuild-linux-mips64le@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-linux-mips64le@npm:0.13.8" - checksum: 755984eeb3e13808902cad0447b1a0567c0cb0c969d408592093a08123218f492864761e7cd08ea84d2eaacfebfd35ef80e80d62f1b80f799d860c75ef40977d +"esbuild-linux-mips64le@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-mips64le@npm:0.13.14" + checksum: 23236ef3f7824cd039247bf62e1ac8339d260c8228aadcf0afadd4c4cc34e1741530c74e4ef85b113500426eb6d1b5ea3ef7bea1c820025e12a6dbe02f87f58c languageName: node linkType: hard -"esbuild-linux-ppc64le@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-linux-ppc64le@npm:0.13.8" - checksum: 8621ac4ba75944e5f805cc4341162401e627092c9e96ca8e825d608b3002e72a964a06a91f10089864d45a13428b3666855fac5aae5135741ba82c1cac6b9300 +"esbuild-linux-ppc64le@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-linux-ppc64le@npm:0.13.14" + checksum: 2d0c1aaa934ecc1b95fbbf1f09c600f0cc2f9da286905c2e996d3480d0fed24bf320a7508b9697a20414bce998efab5084f717aa3fbd56ead2765b0082e249ef languageName: node linkType: hard @@ -12046,69 +12072,69 @@ __metadata: languageName: node linkType: hard -"esbuild-netbsd-64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-netbsd-64@npm:0.13.8" - checksum: c6689f0e9175fded93d7edb8bef98ebf8f95df3ceb4a7b034dd6ec42abd1f850ccfe5ef81e41d170ab6eb23e22b40c6fad77e06d8929d5b0e5c6567744bae96b +"esbuild-netbsd-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-netbsd-64@npm:0.13.14" + checksum: 5e91b2765c502ef31e44122e6cd165635e6b13b8b0dacdf335d4dacc68bfe09d5da3d8b3996871918981517b2726d4fec920e8011911c449b1a051290b1afe58 languageName: node linkType: hard -"esbuild-openbsd-64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-openbsd-64@npm:0.13.8" - checksum: 3fff1454efcbe56e7461efb1124f93b60c5e91afad902d5f4de984eaff5c0b538afcac9e91440f1f7c7c92b0184fcb0aede0a4ee407ce519b85262dc4e89c5be +"esbuild-openbsd-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-openbsd-64@npm:0.13.14" + checksum: a05dc78972d6dbbcfb918c782e5154f950c6ef7d0991cbd0d0624f81363d9a4a5cd96f9217257df92c7570ee8e048a852decda1c3390399aff45860d2e165e0c languageName: node linkType: hard -"esbuild-sunos-64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-sunos-64@npm:0.13.8" - checksum: 72fcf4e417e0a30626266dfc150612219c2e3d306427520acf600b20fdbd6daab571c738cc157790e0b3355f6ca0cce5d5b20d86c76b497149f3bd5be83d58bf +"esbuild-sunos-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-sunos-64@npm:0.13.14" + checksum: 521b6140c0c3d168f9da3ab26dc5da7004394b48530ad5984230b8cff1975becd5a277dee9e0d4a60b102b64ff36546c4aea8c4cb1188a1cfd468f3117f67a60 languageName: node linkType: hard -"esbuild-windows-32@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-windows-32@npm:0.13.8" - checksum: ccc5fb3779b631d6baca48161526517a2a16716505f468b27c0842a28c40895fce8b6682f699a0405895cfcef71a95b115ea42498dcb5b36fcc6f19536523c24 +"esbuild-windows-32@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-windows-32@npm:0.13.14" + checksum: 3e70be78ac7eed20d21d1f24712ed853134826494a16701acec345807cad7dfaecc6c7c1c31b6841ca11e28a4f5b8d4cf5ac73a932549d9c738f27f17ab0a5da languageName: node linkType: hard -"esbuild-windows-64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-windows-64@npm:0.13.8" - checksum: b4b308765622d1217924b0ad9bf96b6920a611a1b0d572b00d0e636a1101789504c053037609f959def67519c1400de15c9043eef44f8936df463ecd422feb1f +"esbuild-windows-64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-windows-64@npm:0.13.14" + checksum: f854ab89f94b148635d24eaef9e87893e4db8d3924be10e286cc7a61663a66497a04225c7cc67b433b0489bdb27af61593f71559f5b850ea151572964d510bf4 languageName: node linkType: hard -"esbuild-windows-arm64@npm:0.13.8": - version: 0.13.8 - resolution: "esbuild-windows-arm64@npm:0.13.8" - checksum: 5f14117a4cf7183267c7bd50f2f918937ce75ccc71dd3a540560da1058b22bf8322c83e20b4261b58b97b0659b67bea51922731eb415dfc58521007eb10e9cfe +"esbuild-windows-arm64@npm:0.13.14": + version: 0.13.14 + resolution: "esbuild-windows-arm64@npm:0.13.14" + checksum: 7441499c6e1ea4fb2e8168300084d063891dff570eb1e178057fd19bee9ffbaa40f7acdca7250ec0b2efa8bc5cf79304a097e24e1490d79afeaccdf6ff587af4 languageName: node linkType: hard -"esbuild@npm:0.13.8, esbuild@npm:^0.13.4": - version: 0.13.8 - resolution: "esbuild@npm:0.13.8" +"esbuild@npm:0.13.14, esbuild@npm:^0.13.4": + version: 0.13.14 + resolution: "esbuild@npm:0.13.14" dependencies: - esbuild-android-arm64: 0.13.8 - esbuild-darwin-64: 0.13.8 - esbuild-darwin-arm64: 0.13.8 - esbuild-freebsd-64: 0.13.8 - esbuild-freebsd-arm64: 0.13.8 - esbuild-linux-32: 0.13.8 - esbuild-linux-64: 0.13.8 - esbuild-linux-arm: 0.13.8 - esbuild-linux-arm64: 0.13.8 - esbuild-linux-mips64le: 0.13.8 - esbuild-linux-ppc64le: 0.13.8 - esbuild-netbsd-64: 0.13.8 - esbuild-openbsd-64: 0.13.8 - esbuild-sunos-64: 0.13.8 - esbuild-windows-32: 0.13.8 - esbuild-windows-64: 0.13.8 - esbuild-windows-arm64: 0.13.8 + esbuild-android-arm64: 0.13.14 + esbuild-darwin-64: 0.13.14 + esbuild-darwin-arm64: 0.13.14 + esbuild-freebsd-64: 0.13.14 + esbuild-freebsd-arm64: 0.13.14 + esbuild-linux-32: 0.13.14 + esbuild-linux-64: 0.13.14 + esbuild-linux-arm: 0.13.14 + esbuild-linux-arm64: 0.13.14 + esbuild-linux-mips64le: 0.13.14 + esbuild-linux-ppc64le: 0.13.14 + esbuild-netbsd-64: 0.13.14 + esbuild-openbsd-64: 0.13.14 + esbuild-sunos-64: 0.13.14 + esbuild-windows-32: 0.13.14 + esbuild-windows-64: 0.13.14 + esbuild-windows-arm64: 0.13.14 dependenciesMeta: esbuild-android-arm64: optional: true @@ -12146,7 +12172,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 349ff552e8a3886791be9ce0376e436c74c573e62ea685c7852ec310d0f6f39f6d37f0101d720f5034d8b697c9b81a8cab30b08f0d5d7f035cc26f951d0bce91 + checksum: fefe9819cdd49d6553b1b99861c0734892ef4bf59391b1fc3640283a80d34a3565c538403d081b28681f751ccdca244b9ef716096d76dea957a594c1911715fb languageName: node linkType: hard @@ -12245,7 +12271,7 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.0": +"eslint-module-utils@npm:^2.7.1": version: 2.7.1 resolution: "eslint-module-utils@npm:2.7.1" dependencies: @@ -12267,18 +12293,18 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:2.25.2": - version: 2.25.2 - resolution: "eslint-plugin-import@npm:2.25.2" +"eslint-plugin-import@npm:2.25.3": + version: 2.25.3 + resolution: "eslint-plugin-import@npm:2.25.3" dependencies: array-includes: ^3.1.4 array.prototype.flat: ^1.2.5 debug: ^2.6.9 doctrine: ^2.1.0 eslint-import-resolver-node: ^0.3.6 - eslint-module-utils: ^2.7.0 + eslint-module-utils: ^2.7.1 has: ^1.0.3 - is-core-module: ^2.7.0 + is-core-module: ^2.8.0 is-glob: ^4.0.3 minimatch: ^3.0.4 object.values: ^1.1.5 @@ -12286,7 +12312,7 @@ __metadata: tsconfig-paths: ^3.11.0 peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 617fc9be96f58ef2f71deb7c8095557eea1474d938b53cf9ad26689034f75cc92264070e97be76eb705617b51c848a5a9d8e2719c79e05c294365822100eef63 + checksum: cf163c289238032975a0d17c3382a7e7b96b1be13730f0f55a983d4c26891e17c6cebc917e0fcfec2e5b7fa0dcf5b0693aa36f65305e3f975803017f54071474 languageName: node linkType: hard @@ -12303,24 +12329,25 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:6.4.1": - version: 6.4.1 - resolution: "eslint-plugin-jsx-a11y@npm:6.4.1" +"eslint-plugin-jsx-a11y@npm:6.5.1": + version: 6.5.1 + resolution: "eslint-plugin-jsx-a11y@npm:6.5.1" dependencies: - "@babel/runtime": ^7.11.2 + "@babel/runtime": ^7.16.3 aria-query: ^4.2.2 - array-includes: ^3.1.1 + array-includes: ^3.1.4 ast-types-flow: ^0.0.7 - axe-core: ^4.0.2 + axe-core: ^4.3.5 axobject-query: ^2.2.0 - damerau-levenshtein: ^1.0.6 - emoji-regex: ^9.0.0 + damerau-levenshtein: ^1.0.7 + emoji-regex: ^9.2.2 has: ^1.0.3 - jsx-ast-utils: ^3.1.0 + jsx-ast-utils: ^3.2.1 language-tags: ^1.0.5 + minimatch: ^3.0.4 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 - checksum: 04aa10e995bb37fffba1b28d83202f520df21f895dfcd3a01cf156bd1a47cdf06bb5d19b32bb8f5b610ec162f2bff10c694e8082b80b565783feea49591b446b + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: 320bafc9d27279b72b8c25db4d188690d9b334f69cfa3bd33ff17f7c7dfe89dc31b463c57e79a932a218dba771137c541f88af93cdb36ae7552bc051cef8a591 languageName: node linkType: hard @@ -12339,36 +12366,36 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:4.2.0": - version: 4.2.0 - resolution: "eslint-plugin-react-hooks@npm:4.2.0" +"eslint-plugin-react-hooks@npm:4.3.0": + version: 4.3.0 + resolution: "eslint-plugin-react-hooks@npm:4.3.0" peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - checksum: 981f6fc09a2cad298574eeab265e9c7de672dc975f7c249ef8079bdcf491241ecce02a45897c0e561a277d63762c80c7319a182492a544a9c61e9c25569e9f51 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: fdf491b182fd0815c95af6b5a9ef9de0640cbf0e446b2886899769470276c9a69be35a2aac42b2ada3e26b73cefee23b1eb4a93f27ee984b5763ee4718509629 languageName: node linkType: hard -"eslint-plugin-react@npm:7.26.1": - version: 7.26.1 - resolution: "eslint-plugin-react@npm:7.26.1" +"eslint-plugin-react@npm:7.27.1": + version: 7.27.1 + resolution: "eslint-plugin-react@npm:7.27.1" dependencies: - array-includes: ^3.1.3 - array.prototype.flatmap: ^1.2.4 + array-includes: ^3.1.4 + array.prototype.flatmap: ^1.2.5 doctrine: ^2.1.0 - estraverse: ^5.2.0 + estraverse: ^5.3.0 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.0.4 - object.entries: ^1.1.4 - object.fromentries: ^2.0.4 - object.hasown: ^1.0.0 - object.values: ^1.1.4 + object.entries: ^1.1.5 + object.fromentries: ^2.0.5 + object.hasown: ^1.1.0 + object.values: ^1.1.5 prop-types: ^15.7.2 resolve: ^2.0.0-next.3 semver: ^6.3.0 - string.prototype.matchall: ^4.0.5 + string.prototype.matchall: ^4.0.6 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 - checksum: a14a98135d4f7926787c30461f396dc6a7912f2551142be7b675229c7abe032b183d1d4bbdcbb92ed2c0f7cf5595c9ab87d2fe64b4c5e4aa5d7a6fe3d85c0886 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: 7ee0cf33034fb5927f169ec45057dbc8b2c528682fe6c33716bf4b790e10fe2a0cc50bb91c4b78e7abf6e04536e44ff2e67c70b3bacc936defdbb05fb74e3a06 languageName: node linkType: hard @@ -12399,12 +12426,13 @@ __metadata: languageName: node linkType: hard -"eslint-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "eslint-utils@npm:2.1.0" +"eslint-scope@npm:^6.0.0": + version: 6.0.0 + resolution: "eslint-scope@npm:6.0.0" dependencies: - eslint-visitor-keys: ^1.1.0 - checksum: 69521c5d6569384b24093125d037ba238d3d6e54367f7143af9928f5286369e912c26cad5016d730c0ffb9797ac9e83831059d7f1d863f7dc84330eb02414611 + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: 50edb78549c710fffbb168f8a84baa14a0418b1343d6e3e22dde39ff38afee9138a044b39778ab72ae6f00b7bfd02ce6dbe6eadab7004139e3403e58c4751ad2 languageName: node linkType: hard @@ -12419,13 +12447,6 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 10c91fdbbe36810dd4308e57f9a8bc7177188b2a70247e54e3af1fa05ebc66414ae6fd4ce3c6c6821591f43a556e9037bc6b071122e099b5f8b7d2f76df553e3 - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^2.0.0, eslint-visitor-keys@npm:^2.1.0": version: 2.1.0 resolution: "eslint-visitor-keys@npm:2.1.0" @@ -12440,36 +12461,35 @@ __metadata: languageName: node linkType: hard -"eslint@npm:7.32.0": - version: 7.32.0 - resolution: "eslint@npm:7.32.0" +"eslint@npm:8.2.0": + version: 8.2.0 + resolution: "eslint@npm:8.2.0" dependencies: - "@babel/code-frame": 7.12.11 - "@eslint/eslintrc": ^0.4.3 - "@humanwhocodes/config-array": ^0.5.0 + "@eslint/eslintrc": ^1.0.4 + "@humanwhocodes/config-array": ^0.6.0 ajv: ^6.10.0 chalk: ^4.0.0 cross-spawn: ^7.0.2 - debug: ^4.0.1 + debug: ^4.3.2 doctrine: ^3.0.0 enquirer: ^2.3.5 escape-string-regexp: ^4.0.0 - eslint-scope: ^5.1.1 - eslint-utils: ^2.1.0 - eslint-visitor-keys: ^2.0.0 - espree: ^7.3.1 + eslint-scope: ^6.0.0 + eslint-utils: ^3.0.0 + eslint-visitor-keys: ^3.0.0 + espree: ^9.0.0 esquery: ^1.4.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 file-entry-cache: ^6.0.1 functional-red-black-tree: ^1.0.1 - glob-parent: ^5.1.2 + glob-parent: ^6.0.1 globals: ^13.6.0 ignore: ^4.0.6 import-fresh: ^3.0.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 - js-yaml: ^3.13.1 + js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 levn: ^0.4.1 lodash.merge: ^4.6.2 @@ -12477,27 +12497,26 @@ __metadata: natural-compare: ^1.4.0 optionator: ^0.9.1 progress: ^2.0.0 - regexpp: ^3.1.0 + regexpp: ^3.2.0 semver: ^7.2.1 - strip-ansi: ^6.0.0 + strip-ansi: ^6.0.1 strip-json-comments: ^3.1.0 - table: ^6.0.9 text-table: ^0.2.0 v8-compile-cache: ^2.0.3 bin: eslint: bin/eslint.js - checksum: 84409f7767556179cb11529f1215f335c7dfccf90419df6147f949f14c347a960c7b569e80ed84011a0b6d10da1ef5046edbbb9b11c3e59aa6696d5217092e93 + checksum: 88e8f375bd49264fca9c868f1c4c09d8ab94351e2606bef8ae56380b10c4f91b8f494f34bea6bed98a35dde4992b663c0355a72c655053ad26d0422c800ac2f9 languageName: node linkType: hard -"espree@npm:^7.3.0, espree@npm:^7.3.1": - version: 7.3.1 - resolution: "espree@npm:7.3.1" +"espree@npm:^9.0.0": + version: 9.0.0 + resolution: "espree@npm:9.0.0" dependencies: - acorn: ^7.4.0 + acorn: ^8.5.0 acorn-jsx: ^5.3.1 - eslint-visitor-keys: ^1.3.0 - checksum: f4e81b903f03eaf0e6925cea20571632da427deb6e14ca37e481f72c11f36d7bb4945fe8a2ff15ab22d078d3cd93ee65355fa94de9c27485c356481775f25d85 + eslint-visitor-keys: ^3.0.0 + checksum: c882e3fa2c23d684742115309418aa95297dd1e399b6e2c02590aa9719e03f28a674946498b073bc416b58092b3b5c8be63f6564a8857af1c8658eaf551f0b5f languageName: node linkType: hard @@ -12536,10 +12555,10 @@ __metadata: languageName: node linkType: hard -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": - version: 5.2.0 - resolution: "estraverse@npm:5.2.0" - checksum: 76a07411841ddf30a6a75afc93e8c00bbfe255a62dee7e1dc90b06ce0d7b939a00cf816ae94566ab5bc1cfde773a49387a35650287840b842143fff46f8f9ae3 +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 languageName: node linkType: hard @@ -12902,7 +12921,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:3.2.7, fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.5, fast-glob@npm:^3.2.7": +"fast-glob@npm:3.2.7, fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.7": version: 3.2.7 resolution: "fast-glob@npm:3.2.7" dependencies: @@ -13030,14 +13049,14 @@ __metadata: languageName: node linkType: hard -"fastify-raw-body@npm:3.1.0": - version: 3.1.0 - resolution: "fastify-raw-body@npm:3.1.0" +"fastify-raw-body@npm:3.2.0": + version: 3.2.0 + resolution: "fastify-raw-body@npm:3.2.0" dependencies: fastify-plugin: ^2.0.0 raw-body: ^2.4.1 secure-json-parse: ^2.1.0 - checksum: 69dcd2c209b8e834688b74b4038b760a333a875e4e97888814796598823c5012f9511ef48c8e0640a8843f9879beceb84f242c47707e292fb2146205819d7e55 + checksum: 47d2ae02fe1d2648e63b97506c742f684e800ec6789d616cc6c1590b00b52cfea2a39d14ef2f14295290a3fd238b950db4c2f6b768773791ce869117a7052b81 languageName: node linkType: hard @@ -13088,9 +13107,9 @@ __metadata: languageName: node linkType: hard -"fastify@npm:3.23.0": - version: 3.23.0 - resolution: "fastify@npm:3.23.0" +"fastify@npm:3.24.1": + version: 3.24.1 + resolution: "fastify@npm:3.24.1" dependencies: "@fastify/ajv-compiler": ^1.0.0 abstract-logging: ^2.0.0 @@ -13107,7 +13126,7 @@ __metadata: secure-json-parse: ^2.0.0 semver: ^7.3.2 tiny-lru: ^7.0.0 - checksum: bdd4556b23a993d82b6b958dba593402b3cdbcb74f062999d1d6d6b92fa06bb8ac056ff5c1de19fe354cd6ade04de5f6573ef3c16128a618f4d31b95501bc847 + checksum: 033227139594cb442298d0481eef27f13e1b57d410a3482984d78e2b9aa550ab9a6b629857dcf950204c68609e7b5db74ce7326281770d71a17fcd73a5c7aaa8 languageName: node linkType: hard @@ -13422,15 +13441,15 @@ __metadata: languageName: node linkType: hard -"findup-sync@npm:4.0.0": - version: 4.0.0 - resolution: "findup-sync@npm:4.0.0" +"findup-sync@npm:5.0.0": + version: 5.0.0 + resolution: "findup-sync@npm:5.0.0" dependencies: detect-file: ^1.0.0 - is-glob: ^4.0.0 - micromatch: ^4.0.2 + is-glob: ^4.0.3 + micromatch: ^4.0.4 resolve-dir: ^1.0.1 - checksum: 3e7de4d0afda35ecdd6260ce9d31524161817466ad6218b092dc73554848ce9618b69ec0f841dc82e320a4b3bfaba19c71c154f5b249ffed28143ba95a743d37 + checksum: bbdb8af8c86a0bde4445e2f738003b92e4cd2a4539a5b45199d0252f2f504aeaf19aeca1fac776c3632c60657b2659151e72c8ead29a79617459a57419a0920b languageName: node linkType: hard @@ -13456,37 +13475,37 @@ __metadata: languageName: node linkType: hard -"firebase@npm:9.1.3": - version: 9.1.3 - resolution: "firebase@npm:9.1.3" +"firebase@npm:9.5.0": + version: 9.5.0 + resolution: "firebase@npm:9.5.0" dependencies: - "@firebase/analytics": 0.7.2 - "@firebase/analytics-compat": 0.1.3 - "@firebase/app": 0.7.4 - "@firebase/app-check": 0.4.2 - "@firebase/app-check-compat": 0.1.3 - "@firebase/app-compat": 0.1.5 + "@firebase/analytics": 0.7.4 + "@firebase/analytics-compat": 0.1.5 + "@firebase/app": 0.7.9 + "@firebase/app-check": 0.5.2 + "@firebase/app-check-compat": 0.2.2 + "@firebase/app-compat": 0.1.10 "@firebase/app-types": 0.7.0 - "@firebase/auth": 0.18.3 - "@firebase/auth-compat": 0.1.6 - "@firebase/database": 0.12.2 - "@firebase/database-compat": 0.1.2 - "@firebase/firestore": 3.1.1 - "@firebase/firestore-compat": 0.1.4 - "@firebase/functions": 0.7.3 - "@firebase/functions-compat": 0.1.4 - "@firebase/installations": 0.5.2 - "@firebase/messaging": 0.9.2 - "@firebase/messaging-compat": 0.1.2 - "@firebase/performance": 0.5.2 - "@firebase/performance-compat": 0.1.2 + "@firebase/auth": 0.19.3 + "@firebase/auth-compat": 0.2.3 + "@firebase/database": 0.12.4 + "@firebase/database-compat": 0.1.4 + "@firebase/firestore": 3.3.1 + "@firebase/firestore-compat": 0.1.8 + "@firebase/functions": 0.7.6 + "@firebase/functions-compat": 0.1.7 + "@firebase/installations": 0.5.4 + "@firebase/messaging": 0.9.4 + "@firebase/messaging-compat": 0.1.4 + "@firebase/performance": 0.5.4 + "@firebase/performance-compat": 0.1.4 "@firebase/polyfill": 0.3.36 - "@firebase/remote-config": 0.3.1 - "@firebase/remote-config-compat": 0.1.2 - "@firebase/storage": 0.8.4 - "@firebase/storage-compat": 0.1.4 - "@firebase/util": 1.4.0 - checksum: 562abbcfc8fe70275cda084dd8ef87c299b06799c0056b9161a483f2a9c2561937b949aaf093c9f9d2c097ef39fed35d2dcb9708926b2e42608b5fb5676dfc0e + "@firebase/remote-config": 0.3.3 + "@firebase/remote-config-compat": 0.1.4 + "@firebase/storage": 0.9.0 + "@firebase/storage-compat": 0.1.8 + "@firebase/util": 1.4.2 + checksum: f32fbe360444c941de8f09833f263041ca7a31f730c56bea61f4e94d8741ebd5af83d370172b0584318bcb446ebf555267bea0e8e24b9383df1952d35fcca612 languageName: node linkType: hard @@ -13601,25 +13620,25 @@ __metadata: languageName: node linkType: hard -"form-data@npm:4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" +"form-data@npm:^3.0.0": + version: 3.0.1 + resolution: "form-data@npm:3.0.1" dependencies: asynckit: ^0.4.0 combined-stream: ^1.0.8 mime-types: ^2.1.12 - checksum: cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e + checksum: 1ccc3ae064a080a799923f754d49fcebdd90515a8924f0f54de557540b50e7f1fe48ba5f2bd0435a5664aa2d49729107e6aaf2155a9abf52339474c5638b4485 languageName: node linkType: hard -"form-data@npm:^3.0.0": - version: 3.0.1 - resolution: "form-data@npm:3.0.1" +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" dependencies: asynckit: ^0.4.0 combined-stream: ^1.0.8 mime-types: ^2.1.12 - checksum: 1ccc3ae064a080a799923f754d49fcebdd90515a8924f0f54de557540b50e7f1fe48ba5f2bd0435a5664aa2d49729107e6aaf2155a9abf52339474c5638b4485 + checksum: cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e languageName: node linkType: hard @@ -14011,7 +14030,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"glob-parent@npm:^6.0.0": +"glob-parent@npm:^6.0.1": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" dependencies: @@ -14175,6 +14194,20 @@ fsevents@^1.2.7: languageName: node linkType: hard +"globby@npm:^12.0.2": + version: 12.0.2 + resolution: "globby@npm:12.0.2" + dependencies: + array-union: ^3.0.1 + dir-glob: ^3.0.1 + fast-glob: ^3.2.7 + ignore: ^5.1.8 + merge2: ^1.4.1 + slash: ^4.0.0 + checksum: 61057effcc7edc7ca7ba9e27a435f08e05b2b8d80c13d2a18e14804936efcc7b1fae528536b6e6f85969f0a76fb0c86d65b3003f39e060457a2e524a3016b704 + languageName: node + linkType: hard + "globby@npm:^9.2.0": version: 9.2.0 resolution: "globby@npm:9.2.0" @@ -14305,24 +14338,24 @@ fsevents@^1.2.7: languageName: node linkType: hard -"graphql-config@npm:^4.0.1": - version: 4.0.1 - resolution: "graphql-config@npm:4.0.1" +"graphql-config@npm:^4.1.0": + version: 4.1.0 + resolution: "graphql-config@npm:4.1.0" dependencies: "@endemolshinegroup/cosmiconfig-typescript-loader": 3.0.2 - "@graphql-tools/graphql-file-loader": ^7.0.1 - "@graphql-tools/json-file-loader": ^7.0.1 - "@graphql-tools/load": ^7.1.0 - "@graphql-tools/merge": ^6.2.16 - "@graphql-tools/url-loader": ^7.0.3 - "@graphql-tools/utils": ^8.0.1 - cosmiconfig: 7.0.0 + "@graphql-tools/graphql-file-loader": ^7.3.2 + "@graphql-tools/json-file-loader": ^7.3.2 + "@graphql-tools/load": ^7.4.1 + "@graphql-tools/merge": ^8.2.1 + "@graphql-tools/url-loader": ^7.4.2 + "@graphql-tools/utils": ^8.5.1 + cosmiconfig: 7.0.1 cosmiconfig-toml-loader: 1.0.0 minimatch: 3.0.4 string-env-interpolation: 1.0.1 peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: c1bcfb0a88e79bba2deb148120911b843886e228684c7bfa11ab5d4a4478dc1d97391682b4fe9f06b7a15c1e604e9c860b1c2f3504b571699328b9322885b383 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: fe9f4e3aa2985cd181ce8b7065ac46a69ca2cb1c83f31549c9fd8144bd5bb187366304a9439940175eb1f18a98802bba13ba4eb0b8edfb4311fba64ac7bae71b languageName: node linkType: hard @@ -14337,21 +14370,21 @@ fsevents@^1.2.7: languageName: node linkType: hard -"graphql-helix@npm:1.8.3": - version: 1.8.3 - resolution: "graphql-helix@npm:1.8.3" +"graphql-helix@npm:1.10.2": + version: 1.10.2 + resolution: "graphql-helix@npm:1.10.2" peerDependencies: - graphql: ^15.3.0 - checksum: d220c5dac006fd1619f7a0d8150093b8b1d936f3407f1692c2ae73f258d4ea4cf5f5dbb38ecdc85a2a58068fdb4d87c9f4064dcf7ef688f2dfd7a6b77c3a32e3 + graphql: ^15.3.0 || ^16.0.0 + checksum: 7ef41a2b365e3bedfa19cc7036aee8161deebb76907a78f974e50e00584e5c451244cb549e9f68ce1b5d74c842517ff4d42c38b1f8d2b6094e3a258831d16f80 languageName: node linkType: hard -"graphql-playground-html@npm:1.6.29": - version: 1.6.29 - resolution: "graphql-playground-html@npm:1.6.29" +"graphql-playground-html@npm:1.6.30": + version: 1.6.30 + resolution: "graphql-playground-html@npm:1.6.30" dependencies: xss: ^1.0.6 - checksum: 377feb60f661c4a96901aab34ef47b38d2c5c471deb476adc919b83831ed1231d02d0d45f0070ed8b2785fb4b3527eecfa9a8ba1e66893fb242599903d89a7f7 + checksum: 32c87615b221610e57db41b68788bccf1e548ae66f38489521d4cfd2abf35666c76acf8250ce178f86b2bd825c2a9b083d496684abede1085847ca2dc7e71fb6 languageName: node linkType: hard @@ -14368,14 +14401,14 @@ fsevents@^1.2.7: languageName: node linkType: hard -"graphql-scalars@npm:1.12.0": - version: 1.12.0 - resolution: "graphql-scalars@npm:1.12.0" +"graphql-scalars@npm:1.13.6": + version: 1.13.6 + resolution: "graphql-scalars@npm:1.13.6" dependencies: tslib: ~2.3.0 peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: 82d5f303491cf7c31be56cae4d5b30f274fef4aacbf53e355d581db2c04629f0295402c276ea558b4112c199d12e6ea884679bb24f79fe526d439d28ca8a9963 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: e3ffc97b0d99d2f0f520eac3ea04a82829d69fd40886182aac6e104c83cacd2dd87beed96f13e793dee3c07cf108277baeb0d68cdfeca5f0673f79786169cf90 languageName: node linkType: hard @@ -14388,14 +14421,14 @@ fsevents@^1.2.7: languageName: node linkType: hard -"graphql-tag@npm:2.12.5, graphql-tag@npm:^2.11.0, graphql-tag@npm:^2.12.3": - version: 2.12.5 - resolution: "graphql-tag@npm:2.12.5" +"graphql-tag@npm:2.12.6, graphql-tag@npm:^2.11.0, graphql-tag@npm:^2.12.3": + version: 2.12.6 + resolution: "graphql-tag@npm:2.12.6" dependencies: tslib: ^2.1.0 peerDependencies: - graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - checksum: 44c38d4ae642d8f983485e0e39bfa5fdcbad3e6f02c0cded3efa0d4cff709aab85432f36fffd28beab14ee010205f4a398098fcba9248eb7d0adb6098e63ba2d + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 7763a72011bda454ed8ff1a0d82325f43ca6478e4ce4ab8b7910c4c651dd00db553132171c04d80af5d5aebf1ef6a8a9fd53ccfa33b90ddc00aa3d4be6114419 languageName: node linkType: hard @@ -14408,10 +14441,17 @@ fsevents@^1.2.7: languageName: node linkType: hard -"graphql@npm:15.6.1, graphql@npm:^15.5.1": - version: 15.6.1 - resolution: "graphql@npm:15.6.1" - checksum: fbdffa2f43466e1cf57df16bbb0f40d5d4def000028f484f87080397ab2559529f053f4b0890bfaa0b09ec21dc6649f7af71bad1100dacdc2f4b5b21dad36960 +"graphql@npm:16.0.1": + version: 16.0.1 + resolution: "graphql@npm:16.0.1" + checksum: b8599a98c78ac5fe3371540d58f415df460420d69998fe8c94a6c29365b518847df76acb64a241033eea97a3163a0a848d5795209caffbeef7156bc91c2c76c4 + languageName: node + linkType: hard + +"graphql@npm:^15.5.1": + version: 15.7.0 + resolution: "graphql@npm:15.7.0" + checksum: 1418095b0ab7d10627935442b3a08edd5ac786e6edcafe60e432dfdc929b860015054300d858a2872dcd503523ba6fd97bf71af86ab4be230175bb625114e4a7 languageName: node linkType: hard @@ -14846,18 +14886,18 @@ fsevents@^1.2.7: languageName: node linkType: hard -"html-webpack-plugin@npm:5.4.0, html-webpack-plugin@npm:^5.0.0": - version: 5.4.0 - resolution: "html-webpack-plugin@npm:5.4.0" +"html-webpack-plugin@npm:5.5.0, html-webpack-plugin@npm:^5.0.0": + version: 5.5.0 + resolution: "html-webpack-plugin@npm:5.5.0" dependencies: "@types/html-minifier-terser": ^6.0.0 html-minifier-terser: ^6.0.2 lodash: ^4.17.21 - pretty-error: ^3.0.4 + pretty-error: ^4.0.0 tapable: ^2.0.0 peerDependencies: webpack: ^5.20.0 - checksum: 26ac9ef10b1b8cc9b60effb1a0a5122c7fa1f8a74f20438b31d0954ced4eb1e5b54198c95784fc197aa20bd881a7cd4cef67764776f42efea3f1cbc2d6fcc26a + checksum: d10fa5888db9ee2afe1d8544107d3d8eb0f30fd88a3304842725e91f9b86cd70fae9954342e6d513bdf9bb13f345c5f51c09421dbd96285593ea7ee8444b188e languageName: node linkType: hard @@ -15547,14 +15587,14 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-ci@npm:3.0.0": - version: 3.0.0 - resolution: "is-ci@npm:3.0.0" +"is-ci@npm:3.0.1": + version: 3.0.1 + resolution: "is-ci@npm:3.0.1" dependencies: - ci-info: ^3.1.1 + ci-info: ^3.2.0 bin: is-ci: bin.js - checksum: 151a9cc5907a61d0b6805692d24fb55db5741ed073371f445ba7d0efd8c0a752f6a78734ef45580025288e026e15bfcbc03fc575e20ae07de624a39188ed866f + checksum: 0e81caa62f4520d4088a5bef6d6337d773828a88610346c4b1119fb50c842587ed8bef1e5d9a656835a599e7209405b5761ddf2339668f2d0f4e889a92fe6051 languageName: node linkType: hard @@ -15569,7 +15609,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-core-module@npm:^2.2.0, is-core-module@npm:^2.7.0": +"is-core-module@npm:^2.2.0, is-core-module@npm:^2.8.0": version: 2.8.0 resolution: "is-core-module@npm:2.8.0" dependencies: @@ -15945,13 +15985,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-promise@npm:4.0.0": - version: 4.0.0 - resolution: "is-promise@npm:4.0.0" - checksum: ebd5c672d73db781ab33ccb155fb9969d6028e37414d609b115cc534654c91ccd061821d5b987eefaa97cf4c62f0b909bb2f04db88306de26e91bfe8ddc01503 - languageName: node - linkType: hard - "is-promise@npm:^2.1.0": version: 2.2.2 resolution: "is-promise@npm:2.2.2" @@ -16868,7 +16901,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"js-yaml@npm:^3.13.1": +"js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.1": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" dependencies: @@ -16880,7 +16913,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"js-yaml@npm:^4.0.0": +"js-yaml@npm:^4.0.0, js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" dependencies: @@ -17047,13 +17080,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"json-stringify-safe@npm:^5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 - languageName: node - linkType: hard - "json-to-pretty-yaml@npm:^1.2.2": version: 1.2.2 resolution: "json-to-pretty-yaml@npm:1.2.2" @@ -17145,7 +17171,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.1.0": +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.2.1": version: 3.2.1 resolution: "jsx-ast-utils@npm:3.2.1" dependencies: @@ -17819,13 +17845,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"lodash.truncate@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.truncate@npm:4.4.2" - checksum: 4e870d54e8a6c86c8687e057cec4069d2e941446ccab7f40b4d9555fa5872d917d0b6aa73bece7765500a3123f1723bcdba9ae881b679ef120bba9e1a0b0ed70 - languageName: node - linkType: hard - "lodash.union@npm:^4.6.0": version: 4.6.0 resolution: "lodash.union@npm:4.6.0" @@ -17991,15 +18010,15 @@ fsevents@^1.2.7: languageName: node linkType: hard -"magic-sdk@npm:6.2.0": - version: 6.2.0 - resolution: "magic-sdk@npm:6.2.0" +"magic-sdk@npm:6.2.1": + version: 6.2.1 + resolution: "magic-sdk@npm:6.2.1" dependencies: - "@magic-sdk/commons": ^2.2.0 - "@magic-sdk/provider": ^6.2.0 + "@magic-sdk/commons": ^2.2.1 + "@magic-sdk/provider": ^6.2.1 "@magic-sdk/types": ^5.2.0 localforage: ^1.7.4 - checksum: a50b577e771a335ceb40d317fe637cfa3331fa9029a03248456c4e044912ee04198c7f6650573405df22d83e515997c3ac5351299c11c823d75497782910e856 + checksum: ed61124c7bc7d7bf4d5bdb532987b518799ce049150f5bfb4d7f2b79c3ff39dcf2390e8814bc2e02d524bb6ef8324bdd22e58a792c0594d744d6b9c8667f6428 languageName: node linkType: hard @@ -18283,7 +18302,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"merge2@npm:^1.2.3, merge2@npm:^1.3.0": +"merge2@npm:^1.2.3, merge2@npm:^1.3.0, merge2@npm:^1.4.1": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb @@ -18366,19 +18385,19 @@ fsevents@^1.2.7: languageName: node linkType: hard -"mime-db@npm:1.50.0, mime-db@npm:>= 1.43.0 < 2": - version: 1.50.0 - resolution: "mime-db@npm:1.50.0" - checksum: 2719d80d8cf1b3209d2c354a0e0f73d3c1a896d416eb0b185ed680dc795f35c0ca0273e60f6ff8b02b058d9bd86a9dfc32619762fce0a6a6e55df8d48ab4276a +"mime-db@npm:1.51.0, mime-db@npm:>= 1.43.0 < 2": + version: 1.51.0 + resolution: "mime-db@npm:1.51.0" + checksum: 0019c731d3967b62e4aefa1d416709386649305cc5a94dd13d315960c8111a0a9c4d1dc542545e69a476e316df4fc03de18dbc83a82e97aefdb046267649a548 languageName: node linkType: hard -"mime-types@npm:2.1.33, mime-types@npm:^2.0.8, mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.30, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24": - version: 2.1.33 - resolution: "mime-types@npm:2.1.33" +"mime-types@npm:2.1.34, mime-types@npm:^2.0.8, mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.30, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24": + version: 2.1.34 + resolution: "mime-types@npm:2.1.34" dependencies: - mime-db: 1.50.0 - checksum: 251e5d7e2e2e7bf7d97d8f68af4eff737c8fde5a35845b2222318662c1ff336bf91a3a2baf4ad3cd8f00f1b2537a25d45d58e5327ee4c417cea53de1c24510b4 + mime-db: 1.51.0 + checksum: 7cb55d499f67fbaa9b4e5da552c54ae5c9ac1d57df93f89e2af185d2f3e7a3e6f2030b5b248fec2130f659ebcd9a40e51f63f91006b3ea876b3cadf4755ea410 languageName: node linkType: hard @@ -18451,14 +18470,14 @@ fsevents@^1.2.7: languageName: node linkType: hard -"mini-css-extract-plugin@npm:2.4.3": - version: 2.4.3 - resolution: "mini-css-extract-plugin@npm:2.4.3" +"mini-css-extract-plugin@npm:2.4.5": + version: 2.4.5 + resolution: "mini-css-extract-plugin@npm:2.4.5" dependencies: - schema-utils: ^3.1.0 + schema-utils: ^4.0.0 peerDependencies: webpack: ^5.0.0 - checksum: 0e325ffe121c523352c1f6d34689cc23c17b18354ab82e65375c93b00ba74c8c8a3a21b68ff3d18ee70b4a95c40add912faf691936d2c14b4b0f81b35d0f0cfa + checksum: 00a1c4007b566052b6aa1345d9c468d476b9b6950de1d41d4dd824e83648977e95a4804c7b6cc0d2466c652843713922f7eeca0803cd8cb1a419f6b39d3c9880 languageName: node linkType: hard @@ -18894,7 +18913,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"node-fetch@npm:2.6.5, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1": +"node-fetch@npm:2.6.5": version: 2.6.5 resolution: "node-fetch@npm:2.6.5" dependencies: @@ -18903,6 +18922,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"node-fetch@npm:2.6.6, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.5": + version: 2.6.6 + resolution: "node-fetch@npm:2.6.6" + dependencies: + whatwg-url: ^5.0.0 + checksum: f9b5c8789c7bcd393a2fb70d752e36d5b5e84eb52bd5bffceb4fb64ac81dce1a1f55ca023a990e51bbf8594fc502ea9bea3004037e6eab65205cd84e8af94fc9 + languageName: node + linkType: hard + "node-forge@npm:^0.10.0": version: 0.10.0 resolution: "node-forge@npm:0.10.0" @@ -18993,30 +19021,37 @@ fsevents@^1.2.7: languageName: node linkType: hard -"node-releases@npm:^1.1.61, node-releases@npm:^1.1.77": +"node-releases@npm:^1.1.61": version: 1.1.77 resolution: "node-releases@npm:1.1.77" checksum: e7477dd1201d32f2169988665f6e5b3b779f3c582decae4a1ab119dc8a8e3a28b3118c386b3c2e8c5a55c415066fe82c77e976979ad4e742ee14483d62f3f3a5 languageName: node linkType: hard -"nodemon@npm:2.0.14": - version: 2.0.14 - resolution: "nodemon@npm:2.0.14" +"node-releases@npm:^2.0.1": + version: 2.0.1 + resolution: "node-releases@npm:2.0.1" + checksum: cb6c373458422e584b46ce18d7b5c95590fe1f31a9ec4833d3f557aff8c99a64be331cbb94ddee473f40ff17d52a907939c3f234a537da35967c58585c9ee09e + languageName: node + linkType: hard + +"nodemon@npm:2.0.15": + version: 2.0.15 + resolution: "nodemon@npm:2.0.15" dependencies: - chokidar: ^3.2.2 - debug: ^3.2.6 + chokidar: ^3.5.2 + debug: ^3.2.7 ignore-by-default: ^1.0.1 minimatch: ^3.0.4 - pstree.remy: ^1.1.7 + pstree.remy: ^1.1.8 semver: ^5.7.1 supports-color: ^5.5.0 touch: ^3.1.0 - undefsafe: ^2.0.3 + undefsafe: ^2.0.5 update-notifier: ^5.1.0 bin: nodemon: bin/nodemon.js - checksum: ddf2ea6ffb839d74136f01ecec38a829912633ecb5c029f308f71e68afdf5abc93e8dc1d97c9843abf011707618c3064e1ddb848089af4649a940116d5a89efa + checksum: c2acc8d388d4fae149e56ef66a645e3e152ea49e8664a7f318f4abd339444f9a74af374839530c8eca0655d4b890ddb8bc8757d3eb071d001eb26b0ab777d954 languageName: node linkType: hard @@ -19278,7 +19313,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"object.entries@npm:^1.1.0, object.entries@npm:^1.1.4": +"object.entries@npm:^1.1.0, object.entries@npm:^1.1.5": version: 1.1.5 resolution: "object.entries@npm:1.1.5" dependencies: @@ -19289,7 +19324,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"object.fromentries@npm:^2.0.0 || ^1.0.0, object.fromentries@npm:^2.0.4": +"object.fromentries@npm:^2.0.0 || ^1.0.0, object.fromentries@npm:^2.0.5": version: 2.0.5 resolution: "object.fromentries@npm:2.0.5" dependencies: @@ -19311,7 +19346,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"object.hasown@npm:^1.0.0": +"object.hasown@npm:^1.1.0": version: 1.1.0 resolution: "object.hasown@npm:1.1.0" dependencies: @@ -19330,7 +19365,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"object.values@npm:^1.1.0, object.values@npm:^1.1.4, object.values@npm:^1.1.5": +"object.values@npm:^1.1.0, object.values@npm:^1.1.5": version: 1.1.5 resolution: "object.values@npm:1.1.5" dependencies: @@ -19995,6 +20030,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: 20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7 + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3": version: 2.3.0 resolution: "picomatch@npm:2.3.0" @@ -20039,26 +20081,26 @@ fsevents@^1.2.7: languageName: node linkType: hard -"pino-abstract-transport@npm:^0.4.0, pino-abstract-transport@npm:v0.4.0": - version: 0.4.0 - resolution: "pino-abstract-transport@npm:0.4.0" +"pino-abstract-transport@npm:^0.5.0, pino-abstract-transport@npm:v0.5.0": + version: 0.5.0 + resolution: "pino-abstract-transport@npm:0.5.0" dependencies: duplexify: ^4.1.2 - split2: ^3.2.2 - checksum: 4a483c4d15046ab0403408bfe248eda2a57d023978beefbd3b4b7e8981c190cfec27ae7e0b5a3890e4d0d4f0f2f7c166462c82f5595a0ea61aaf477d90b944dc + split2: ^4.0.0 + checksum: 0d0e30399028ec156642b4cdfe1a040b9022befdc38e8f85935d1837c3da6050691888038433f88190d1a1eff5d90abe17ff7e6edffc09baa2f96e51b6808183 languageName: node linkType: hard -"pino-pretty@npm:7.1.0": - version: 7.1.0 - resolution: "pino-pretty@npm:7.1.0" +"pino-pretty@npm:7.2.0": + version: 7.2.0 + resolution: "pino-pretty@npm:7.2.0" dependencies: args: ^5.0.1 colorette: ^2.0.7 dateformat: ^4.6.3 fast-safe-stringify: ^2.0.7 joycon: ^3.0.0 - pino-abstract-transport: ^0.4.0 + pino-abstract-transport: ^0.5.0 pump: ^3.0.0 readable-stream: ^3.6.0 rfdc: ^1.3.0 @@ -20067,7 +20109,7 @@ fsevents@^1.2.7: strip-json-comments: ^3.1.1 bin: pino-pretty: bin.js - checksum: 6ed5ed8cb8495c08ffae88dcfe94cd9a4d67da23f77d2a22ea1cf5ab14371723aef726c890b9e88ca56697bdb4f1ccaa08457e0d841b8b8d4d2d6314edb48ab5 + checksum: 1c307ac41f3918a08d7a2dd1c78f51d14873db27a3b6047bb341c5d3af4d0bce38f313ba39ea758c1b3d005cd5958ec3e65cbdac26ced5ad3a137cc3d452e867 languageName: node linkType: hard @@ -20085,23 +20127,24 @@ fsevents@^1.2.7: languageName: node linkType: hard -"pino@npm:7.0.3": - version: 7.0.3 - resolution: "pino@npm:7.0.3" +"pino@npm:7.3.0": + version: 7.3.0 + resolution: "pino@npm:7.3.0" dependencies: fast-redact: ^3.0.0 fastify-warning: ^0.2.0 get-caller-file: ^2.0.5 - json-stringify-safe: ^5.0.1 on-exit-leak-free: ^0.2.0 - pino-abstract-transport: v0.4.0 + pino-abstract-transport: v0.5.0 pino-std-serializers: ^4.0.0 quick-format-unescaped: ^4.0.3 + real-require: ^0.1.0 + safe-stable-stringify: ^2.1.0 sonic-boom: ^2.2.1 - thread-stream: ^0.11.1 + thread-stream: ^0.13.0 bin: pino: bin.js - checksum: 8769fe78ed32e5045a19c044f77eb5a6ba5de5aaad4794be83b6ebe37871794b4f67e30927a5c3d6419d413bf15678c429fbabcab081e893b2ae1f7b67f0ba18 + checksum: bc720396d2ff781ca713fbd7f589c2e6761b9f207953166970f98718aaefb6313e69e2e0c91564e3db11295f8b81fec7c16e30207cb6ad7b45b4c705a879e84d languageName: node linkType: hard @@ -20741,13 +20784,13 @@ fsevents@^1.2.7: languageName: node linkType: hard -"pretty-error@npm:^3.0.4": - version: 3.0.4 - resolution: "pretty-error@npm:3.0.4" +"pretty-error@npm:^4.0.0": + version: 4.0.0 + resolution: "pretty-error@npm:4.0.0" dependencies: lodash: ^4.17.20 - renderkid: ^2.0.6 - checksum: 220292b66a32a595f5a046201685d4b72e3e368a0c1ed1ce59e4f7319cc49db3c9f95b3ceaa1eb1ed51ea990f70595cb1fba15a26b1a3530943c77ee80c3eec0 + renderkid: ^3.0.0 + checksum: dc292c087e2857b2e7592784ab31e37a40f3fa918caa11eba51f9fb2853e1d4d6e820b219917e35f5721d833cfd20fdf4f26ae931a90fd1ad0cae2125c345138 languageName: node linkType: hard @@ -20798,15 +20841,15 @@ fsevents@^1.2.7: languageName: node linkType: hard -"prisma@npm:3.3.0": - version: 3.3.0 - resolution: "prisma@npm:3.3.0" +"prisma@npm:3.5.0": + version: 3.5.0 + resolution: "prisma@npm:3.5.0" dependencies: - "@prisma/engines": 3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c + "@prisma/engines": 3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e bin: prisma: build/index.js prisma2: build/index.js - checksum: a0f276f41eda20354690a3e4149912dc4eef6115f30a45cd6d32ea38479aceb463974f66e72b69d6a628d231b61d71a81a325926038babfc8334914bf6779107 + checksum: e1d741e0f7735dfcafff5d391ee6e8a4b4d440679c62ee862ead55c75489c3e79afa2fa85fa8551d138c21a3a4827f8a58be6bf23f651308b9b79407081dc777 languageName: node linkType: hard @@ -21037,7 +21080,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"pstree.remy@npm:^1.1.7": +"pstree.remy@npm:^1.1.8": version: 1.1.8 resolution: "pstree.remy@npm:1.1.8" checksum: 30f78c88ce6393cb3f7834216cb6e282eb83c92ccb227430d4590298ab2811bc4a4745f850a27c5178e79a8f3e316591de0fec87abc19da648c2b3c6eb766d14 @@ -21428,12 +21471,12 @@ fsevents@^1.2.7: languageName: node linkType: hard -"react-hook-form@npm:7.17.5": - version: 7.17.5 - resolution: "react-hook-form@npm:7.17.5" +"react-hook-form@npm:7.19.5": + version: 7.19.5 + resolution: "react-hook-form@npm:7.19.5" peerDependencies: react: ^16.8.0 || ^17 - checksum: 23b30f2904f2e5edd76c0c5ae5e020769fff0b0450d65094d54753f3021990c31f2483a85f36c8dc66ace511520257b3497c789408e63ad5359daa583b1303c3 + checksum: 25e3d67c65e8d15941394d521bf87330a179ca005e582d0220ae40fbdfadb625db69691ba5775a1cbd802674914a1dd97e55a9712115b4ee871799864533b57a languageName: node linkType: hard @@ -21497,10 +21540,10 @@ fsevents@^1.2.7: languageName: node linkType: hard -"react-refresh@npm:0.10.0": - version: 0.10.0 - resolution: "react-refresh@npm:0.10.0" - checksum: 616e82bed3787bf4e55dcc1c9836f251b93523dd4b0ffb1c24c2dcf5d09f686fbf3cffc7d489cd7f12429f76ddf66eb431748fc07df56b18a888a7705cbc079e +"react-refresh@npm:0.11.0": + version: 0.11.0 + resolution: "react-refresh@npm:0.11.0" + checksum: cbb5616c7ba670bbd2f37ddadcdfefa66e727ea188e89733ccb8184d3b874631104b0bc016d5676a7ade4d9c79100b99b46b6ed10cd117ab5d1ddcbf8653a9f2 languageName: node linkType: hard @@ -21599,7 +21642,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": version: 3.6.0 resolution: "readable-stream@npm:3.6.0" dependencies: @@ -21630,6 +21673,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"real-require@npm:^0.1.0": + version: 0.1.0 + resolution: "real-require@npm:0.1.0" + checksum: c0f8ae531d1f51fe6343d47a2a1e5756e19b65a81b4a9642b9ebb4874e0d8b5f3799bc600bf4592838242477edc6f57778593f21b71d90f8ad0d8a317bbfae1c + languageName: node + linkType: hard + "recast@npm:^0.20.3, recast@npm:^0.20.4": version: 0.20.5 resolution: "recast@npm:0.20.5" @@ -21733,7 +21783,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"regexpp@npm:^3.1.0, regexpp@npm:^3.2.0": +"regexpp@npm:^3.2.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" checksum: d1da82385c8754a1681416b90b9cca0e21b4a2babef159099b88f640637d789c69011d0bc94705dacab85b81133e929d027d85210e8b8b03f8035164dbc14710 @@ -21914,7 +21964,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"renderkid@npm:^2.0.4, renderkid@npm:^2.0.6": +"renderkid@npm:^2.0.4": version: 2.0.7 resolution: "renderkid@npm:2.0.7" dependencies: @@ -21927,6 +21977,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"renderkid@npm:^3.0.0": + version: 3.0.0 + resolution: "renderkid@npm:3.0.0" + dependencies: + css-select: ^4.1.3 + dom-converter: ^0.2.0 + htmlparser2: ^6.1.0 + lodash: ^4.17.21 + strip-ansi: ^6.0.1 + checksum: 24a9fae4cc50e731d059742d1b3eec163dc9e3872b12010d120c3fcbd622765d9cda41f79a1bbb4bf63c1d3442f18a08f6e1642cb5d7ebf092a0ce3f7a3bd143 + languageName: node + linkType: hard + "repeat-element@npm:^1.1.2": version: 1.1.4 resolution: "repeat-element@npm:1.1.4" @@ -22232,13 +22295,13 @@ resolve@^2.0.0-next.3: version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." dependencies: - "@babel/cli": 7.15.7 - "@babel/node": 7.15.8 - eslint: 7.32.0 + "@babel/cli": 7.16.0 + "@babel/node": 7.16.0 + eslint: 8.2.0 jest: 27.3.1 npm-packlist: 3.0.0 rimraf: 3.0.2 - typescript: 4.4.4 + typescript: 4.5.2 typescript-transform-paths: 3.3.1 languageName: unknown linkType: soft @@ -22332,6 +22395,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"safe-stable-stringify@npm:^2.1.0": + version: 2.2.0 + resolution: "safe-stable-stringify@npm:2.2.0" + checksum: 2c63c78667ca6ace7c989e5770424b38fcd34f96dfd03dac73fcb601d3b924f904d1e9a00bbf56046c7fb2a29196144f299b4ec6c93a600e38f0734a28e60ea6 + languageName: node + linkType: hard + "safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.1.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -22416,6 +22486,18 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"schema-utils@npm:^4.0.0": + version: 4.0.0 + resolution: "schema-utils@npm:4.0.0" + dependencies: + "@types/json-schema": ^7.0.9 + ajv: ^8.8.0 + ajv-formats: ^2.1.1 + ajv-keywords: ^5.0.0 + checksum: d76f1b0724fb74fa9da19d4f98ebe89c2703d8d28df9dc44d66ab9a9cbca869b434181a36a2bc00ec53980f27e8fabe143759bdc8754692bbf7ef614fc6e9da4 + languageName: node + linkType: hard + "scrypt-js@npm:^3.0.0": version: 3.0.1 resolution: "scrypt-js@npm:3.0.1" @@ -22789,6 +22871,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"shell-quote@npm:1.7.3": + version: 1.7.3 + resolution: "shell-quote@npm:1.7.3" + checksum: cf997c325f49c4393a859074f1ee9ca3da7d9e1940225bab24a86f0266504c7d7e356b83f13c74932cb243d53125b5c8c57b714017c53490bf1fe10540422014 + languageName: node + linkType: hard + "side-channel@npm:^1.0.4": version: 1.0.4 resolution: "side-channel@npm:1.0.4" @@ -22889,17 +22978,6 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 6c25678db1270d4793e0327620f1e0f9f5bea4630123f51e9e399191bc52c87d6e6de53ed33538609e5eacbd1fab769fae00f3705d08d029f02102a540648918 - languageName: node - linkType: hard - "smart-buffer@npm:^4.1.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -23187,19 +23265,10 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"split2@npm:4.0.0": - version: 4.0.0 - resolution: "split2@npm:4.0.0" - checksum: cf7846cdb6953eb14695f6d1148bee7fd5ef789b45012d1ef5722a1a1fe05de34b475d537f30f832399a78e05cc0340a6a460282c2fecc4a30692158f9f2d220 - languageName: node - linkType: hard - -"split2@npm:^3.2.2": - version: 3.2.2 - resolution: "split2@npm:3.2.2" - dependencies: - readable-stream: ^3.0.0 - checksum: 2dad5603c52b353939befa3e2f108f6e3aff42b204ad0f5f16dd12fd7c2beab48d117184ce6f7c8854f9ee5ffec6faae70d243711dd7d143a9f635b4a285de4e +"split2@npm:4.1.0, split2@npm:^4.0.0": + version: 4.1.0 + resolution: "split2@npm:4.1.0" + checksum: c02219211c6c55137977b729b44a22462386bf8878f61c9221ebb0347509ffeaf1285f93a9376e361e03f2c8969e83fff0c04745f56dcccdd30c65bec7db8084 languageName: node linkType: hard @@ -23411,7 +23480,7 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"string-width@npm:4.2.3, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": +"string-width@npm:4.2.3, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -23443,19 +23512,19 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.0 || ^3.0.1, string.prototype.matchall@npm:^4.0.5": - version: 4.0.5 - resolution: "string.prototype.matchall@npm:4.0.5" +"string.prototype.matchall@npm:^4.0.0 || ^3.0.1, string.prototype.matchall@npm:^4.0.6": + version: 4.0.6 + resolution: "string.prototype.matchall@npm:4.0.6" dependencies: call-bind: ^1.0.2 define-properties: ^1.1.3 - es-abstract: ^1.18.2 + es-abstract: ^1.19.1 get-intrinsic: ^1.1.1 has-symbols: ^1.0.2 internal-slot: ^1.0.3 regexp.prototype.flags: ^1.3.1 side-channel: ^1.0.4 - checksum: b11199267eb55ed189d2b5f6865553784c47ee4f9953a9acd2d95e747915590b426dcdd7cad9952de4cf7bb1a62da1d59d9a8ea03b4aa3de0d7617535691d290 + checksum: 967bf965b7f2aa565abe05773d066ae1d17e631e1e64576036c0543bd257f0f166f71ad252500061a6c3783bc047963ab3cce23c9000941f42e230c59db2c6cc languageName: node linkType: hard @@ -23687,9 +23756,9 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"subscriptions-transport-ws@npm:^0.10.0": - version: 0.10.0 - resolution: "subscriptions-transport-ws@npm:0.10.0" +"subscriptions-transport-ws@npm:^0.11.0": + version: 0.11.0 + resolution: "subscriptions-transport-ws@npm:0.11.0" dependencies: backo2: ^1.0.2 eventemitter3: ^3.1.0 @@ -23697,8 +23766,8 @@ resolve@^2.0.0-next.3: symbol-observable: ^1.0.4 ws: ^5.2.0 || ^6.0.0 || ^7.0.0 peerDependencies: - graphql: ">=0.10.0" - checksum: b5b2b0a959d76d364df66433e08022340582c971bfaa60d24a92db6d15ec37d4d8307699cbb891db58aa7c5a60f3af9a561c4ebd0a34995cb5be3f2b0aea081e + graphql: ^15.7.2 || ^16.0.0 + checksum: 697441333e59b6932bff51212e29f8dcac477badb067971bd94c30c5f3f7a2e2ea72fb1a21f3c1abbf32774da01515aa24739e620be45f6d576784bd96fd10da languageName: node linkType: hard @@ -23829,17 +23898,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"table@npm:^6.0.9": - version: 6.7.2 - resolution: "table@npm:6.7.2" +"sync-fetch@npm:0.3.1": + version: 0.3.1 + resolution: "sync-fetch@npm:0.3.1" dependencies: - ajv: ^8.0.1 - lodash.clonedeep: ^4.5.0 - lodash.truncate: ^4.4.2 - slice-ansi: ^4.0.0 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - checksum: e3ca1d79e133f6b65bf88f363b3a32ed0a6d0e7a95d4caba5332bbf928deee3daa830840abe86e0af780d1af797d825fc4853b900beb8e2ac7928d28553f5cd3 + buffer: ^5.7.0 + node-fetch: ^2.6.1 + checksum: 757d534e57f79420872a8fa71f335fd526150328cccd31db32631e0397fdd56450b3f5acf8e66b177c57ac4233d2536ab0aabef8c7e0802b46dfeef9c0d87b6a languageName: node linkType: hard @@ -24108,10 +24173,12 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"thread-stream@npm:^0.11.1": - version: 0.11.1 - resolution: "thread-stream@npm:0.11.1" - checksum: f3eae016c5813f489b30cdad8884caaca191944944cb9db2a76aba3252894f4be8f099e3afe3fa715e9dc8b655a4cf2eb79a19786799eed50aba69c38488f866 +"thread-stream@npm:^0.13.0": + version: 0.13.0 + resolution: "thread-stream@npm:0.13.0" + dependencies: + real-require: ^0.1.0 + checksum: 5a2b550083efbca713eea4a99f89be2ba9e09df4bd477fee622220c60bff858e03c4b28ffa9dc176988f00e268fcda790d612996cbe7d7afdc44517f17a840bf languageName: node linkType: hard @@ -24450,13 +24517,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"ts-morph@npm:12.0.0": - version: 12.0.0 - resolution: "ts-morph@npm:12.0.0" +"ts-morph@npm:12.2.0": + version: 12.2.0 + resolution: "ts-morph@npm:12.2.0" dependencies: - "@ts-morph/common": ~0.11.0 + "@ts-morph/common": ~0.11.1 code-block-writer: ^10.1.1 - checksum: 43d4e83c897c37d24b5f938117c67a7feb3af60375a8131ba29a7c4539c6fc553179a9a4373ce6d39ecf5cb4bec68b9fad296c17030b7bf592d8137daf280760 + checksum: 0d9bd03877a09b5ac77c2b5245f3714f8509bed0b805b03745e74990df023f7cdb741e3af4c7c2320a48645a1ef3a556af405d01ea37648a2a3bdc0248c9ad12 languageName: node linkType: hard @@ -24674,23 +24741,23 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"typescript@npm:4.4.4": - version: 4.4.4 - resolution: "typescript@npm:4.4.4" +"typescript@npm:4.5.2": + version: 4.5.2 + resolution: "typescript@npm:4.5.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 7cd160bbfdf99404238c296db0d56352c7e1d57e367f02640ca36f254f3fa47f74bfc76615e0010c2688a443d9e7403e2d26c79d98ab450d924b17c950732486 + checksum: 8fc40b886018889ad2099cb1b477c4f0373528c9fca83860ad33e898fe19ada22568477aca91741fbeabf0402e203f0e2d6d14ed6973ad826893cc13b2dfd459 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A4.4.4#~builtin": - version: 4.4.4 - resolution: "typescript@patch:typescript@npm%3A4.4.4#~builtin::version=4.4.4&hash=32657b" +"typescript@patch:typescript@npm%3A4.5.2#~builtin": + version: 4.5.2 + resolution: "typescript@patch:typescript@npm%3A4.5.2#~builtin::version=4.5.2&hash=32657b" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d0125d91e03306a8e40092b036c6cebd3ff3b730f1c01f1c76c44d4a263fe18d5ef5b1c2e98afe0f6704c2c4ca6416c60f7108eff9f53c4b75cbf9b07588fed7 + checksum: b8334138fd39de72b3a235bec4bf1ab4bc5d62de0cbcbfbbd5ff22b6e77ec5430213c0bcf7251246f007bb00d752b8b48f736a5de85f7c49d7038cca59387e25 languageName: node linkType: hard @@ -24730,12 +24797,10 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"undefsafe@npm:^2.0.3": - version: 2.0.3 - resolution: "undefsafe@npm:2.0.3" - dependencies: - debug: ^2.2.0 - checksum: 3fec716e1fc8b6bda7589b77d247387b55371c2e46d6c60bfa49388f95c2dc501129e94d30713b5871aba0cfbe467500702e125fcca0a2ee96033ef3e2c27555 +"undefsafe@npm:^2.0.5": + version: 2.0.5 + resolution: "undefsafe@npm:2.0.5" + checksum: 96c0466a5fbf395917974a921d5d4eee67bca4b30d3a31ce7e621e0228c479cf893e783a109af6e14329b52fe2f0cb4108665fad2b87b0018c0df6ac771261d5 languageName: node linkType: hard @@ -24746,10 +24811,10 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"undici@npm:^4.0.0": - version: 4.9.5 - resolution: "undici@npm:4.9.5" - checksum: fb358a3989c8cc1e73d3cb7a517fbd6451beabee209e16b839b9f9f5c02d57b74409b9accfd87b059bacfeb45d0cfb007dd3f729516d9f9d3ffe8a1a3390a85d +"undici@npm:^4.0.0, undici@npm:^4.9.3": + version: 4.10.0 + resolution: "undici@npm:4.10.0" + checksum: 6d30ed69ab3d6deb7beaede6e35fcf016de71b8a9c9d9441f05dc7851f28ecea196a8342d4abc2fc42b3d7fe3e9dace2250f046123f42fbff39043b288c86e6c languageName: node linkType: hard @@ -25304,13 +25369,6 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"value-or-promise@npm:1.0.10": - version: 1.0.10 - resolution: "value-or-promise@npm:1.0.10" - checksum: bb9b95521993b281131662703742a798d4fba07000717e63177f3f7ca6451002aa169150249fb7515b485d9af21b464193611759760687924975f27d387820ee - languageName: node - linkType: hard - "value-or-promise@npm:1.0.11": version: 1.0.11 resolution: "value-or-promise@npm:1.0.11" @@ -25763,13 +25821,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"webpack-dev-server@npm:4.3.1": - version: 4.3.1 - resolution: "webpack-dev-server@npm:4.3.1" +"webpack-dev-server@npm:4.5.0": + version: 4.5.0 + resolution: "webpack-dev-server@npm:4.5.0" dependencies: ansi-html-community: ^0.0.8 bonjour: ^3.5.0 - chokidar: ^3.5.1 + chokidar: ^3.5.2 colorette: ^2.0.10 compression: ^1.7.4 connect-history-api-fallback: ^1.6.0 @@ -25799,7 +25857,7 @@ resolve@^2.0.0-next.3: optional: true bin: webpack-dev-server: bin/webpack-dev-server.js - checksum: a771adf686dbe97174555d582de650af89c34d5937d259e396f7b8a80035318eff0226bddd571e860ad0e2131e6d3711f3f61318b8c5b0543c6c0e8dbd02c0ea + checksum: 7fc19fb3741d331e5967851782f97f7e50251d1ab2f89bd32d0b9fae5103c72ec0d386cb2e8591b0e4ed3a6609d5c33125aeb8fbd87821dc41cd25ac6acd081a languageName: node linkType: hard @@ -25887,10 +25945,10 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"webpack-sources@npm:^3.2.0": - version: 3.2.1 - resolution: "webpack-sources@npm:3.2.1" - checksum: 973fe9feb2a5e7fe3b81e9b57cb784537fccbf7432fbbe385a02a7b31f3239d41ed7060f1113cce1c484088c2829af9524a70cb2e7dc33256c54cb47bac02b6e +"webpack-sources@npm:^3.2.2": + version: 3.2.2 + resolution: "webpack-sources@npm:3.2.2" + checksum: e81f67534caf5e01b6ed8d8ca03a463eca23ec1fc6ed7d92445b0c8b88283efb05446737505b75da69457b03d83a6ad3788efc4c2a0b37243371df6a9a4b4736 languageName: node linkType: hard @@ -25948,9 +26006,9 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"webpack@npm:5.59.1, webpack@npm:^5, webpack@npm:^5.9.0": - version: 5.59.1 - resolution: "webpack@npm:5.59.1" +"webpack@npm:5.64.1, webpack@npm:^5, webpack@npm:^5.9.0": + version: 5.64.1 + resolution: "webpack@npm:5.64.1" dependencies: "@types/eslint-scope": ^3.7.0 "@types/estree": ^0.0.50 @@ -25975,13 +26033,13 @@ resolve@^2.0.0-next.3: tapable: ^2.1.1 terser-webpack-plugin: ^5.1.3 watchpack: ^2.2.0 - webpack-sources: ^3.2.0 + webpack-sources: ^3.2.2 peerDependenciesMeta: webpack-cli: optional: true bin: webpack: bin/webpack.js - checksum: 4ad5452220b9d5302bbd6be4c3631593807b7a3c7eb95767729b2addb2d8bd552740b81b78599912ef999761c37c5898a2a865aca75780d5ffdf9e7bd61e3899 + checksum: 9021a2d4de3596374175284f1d3ac0bf7e742895de6f308f80f82e4b3866864ad0d3f0384167c281396189e8b7dece20374f6b57b828f80e1e8019745212445a languageName: node linkType: hard @@ -26236,22 +26294,7 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"ws@npm:8.2.2": - version: 8.2.2 - resolution: "ws@npm:8.2.2" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: cf96b899a6b431aba009f05a018d17b9c3e539fb442b47cbeba8b02ffef437730478622494b7c165cbc3d470e6b93d30aa316a422eb9057f570a9310ee46e50d - languageName: node - linkType: hard - -"ws@npm:>=7.4.6, ws@npm:^8.0.0, ws@npm:^8.1.0": +"ws@npm:8.2.3, ws@npm:>=7.4.6, ws@npm:^8.0.0, ws@npm:^8.1.0": version: 8.2.3 resolution: "ws@npm:8.2.3" peerDependencies: @@ -26571,13 +26614,12 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"zen-observable-ts@npm:~1.1.0": - version: 1.1.0 - resolution: "zen-observable-ts@npm:1.1.0" +"zen-observable-ts@npm:^1.2.0": + version: 1.2.3 + resolution: "zen-observable-ts@npm:1.2.3" dependencies: - "@types/zen-observable": 0.8.3 zen-observable: 0.8.15 - checksum: 608dc1b82b1f8c66d1068b24017fd855e2355acaec3f5c41f7e3f780d58aa3b1ce3e175c82a65095f1b0f6ec18295b1f1d9aafa81b2f4556d55ae4e4bb6d4ec8 + checksum: fa4c1ebbbbc3e7d41dca6d9dc74cb96440ee4767c50d8f9a3b3f84f823d9832d148f76187cd65c30d9ab4008f88c7248fe8774f7cedf98fbfc2e0a6429ce08f5 languageName: node linkType: hard