diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index aae5100d0..54dd8d6e0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,13 +1,13 @@ { - "name": "Node.js & Mongo DB", - "dockerComposeFile": "docker-compose.yml", - "service": "app", - "workspaceFolder": "/workspace", - "settings": { - "terminal.integrated.shell.linux": "/bin/bash" - }, - "extensions": ["mongodb.mongodb-vscode"], + "name": "Node.js & Mongo DB", + "dockerComposeFile": "docker-compose.yml", + "service": "app", + "workspaceFolder": "/workspace", + "settings": { + "terminal.integrated.shell.linux": "/bin/bash" + }, + "extensions": ["mongodb.mongodb-vscode"], - "forwardPorts": [3000, 27017], - "remoteUser": "node" + "forwardPorts": [3000, 27017], + "remoteUser": "node" } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 38f8e04ff..b7fd89e29 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -10,7 +10,7 @@ services: VARIANT: 14 # On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000. USER_UID: 1000 - USER_GID: 1000 + USER_GID: 100 volumes: - ..:/workspace:cached diff --git a/.vscode/extensions.json b/.vscode/extensions.json index fa3c6ded2..c85186a2d 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,7 +1,7 @@ { - "recommendations": [ - "orta.vscode-jest", - "esbenp.prettier-vscode", - "graphql.vscode-graphql" - ] + "recommendations": [ + "orta.vscode-jest", + "esbenp.prettier-vscode", + "graphql.vscode-graphql" + ] } diff --git a/.vscode/launch.json b/.vscode/launch.json index 5b835e472..1b1e178a9 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,32 +1,32 @@ { - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "vscode-edge-devtools.debug", - "request": "launch", - "name": "Launch Microsoft Edge and open the Edge DevTools", - "url": "http://localhost:8080", - "webRoot": "${workspaceFolder}" - }, - { - "type": "node", - "name": "vscode-jest-tests", - "request": "launch", - "args": ["--runInBand"], - "cwd": "${workspaceFolder}", - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen", - "program": "${workspaceFolder}/node_modules/jest/bin/jest" - }, - { - "type": "node", - "request": "attach", - "name": "Launch Program", - "skipFiles": ["/**"], - "port": 9229 - } - ] + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "vscode-edge-devtools.debug", + "request": "launch", + "name": "Launch Microsoft Edge and open the Edge DevTools", + "url": "http://localhost:8080", + "webRoot": "${workspaceFolder}" + }, + { + "type": "node", + "name": "vscode-jest-tests", + "request": "launch", + "args": ["--runInBand"], + "cwd": "${workspaceFolder}", + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", + "program": "${workspaceFolder}/node_modules/jest/bin/jest" + }, + { + "type": "node", + "request": "attach", + "name": "Launch Program", + "skipFiles": ["/**"], + "port": 9229 + } + ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 4fb37a5e9..b2579e26b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,5 @@ { - "jest.showCoverageOnLoad": true, - "jest.autoRun": "off", - "editor.defaultFormatter": "esbenp.prettier-vscode" + "jest.showCoverageOnLoad": true, + "jest.autoRun": "off", + "editor.defaultFormatter": "esbenp.prettier-vscode" } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index ec7092482..8f439c4d0 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,23 +1,23 @@ { - "version": "2.0.0", - "tasks": [ - { - "label": "TypeScript Errors", - "type": "shell", - "command": "./node_modules/.bin/tsc", - "isBackground": true, - "args": ["--watch", "--noEmit", "--project", "www"], - "group": { - "kind": "build", - "isDefault": true - }, - "presentation": { - "reveal": "never", - "echo": false, - "focus": false, - "panel": "dedicated" - }, - "problemMatcher": "$tsc-watch" - } - ] + "version": "2.0.0", + "tasks": [ + { + "label": "TypeScript Errors", + "type": "shell", + "command": "./node_modules/.bin/tsc", + "isBackground": true, + "args": ["--watch", "--noEmit", "--project", "www"], + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "reveal": "never", + "echo": false, + "focus": false, + "panel": "dedicated" + }, + "problemMatcher": "$tsc-watch" + } + ] } diff --git a/Readme.md b/Readme.md index d32e0f931..ccb579872 100644 --- a/Readme.md +++ b/Readme.md @@ -118,11 +118,11 @@ Using Puppeteer I write assertions like this: ```js describe("Feature", () => { - it("does this thing", async () => { - await page.waitForSelector("#selector"); - await page.click("#selector"); - await page.waitForSelector("#other-selector"); - }); + it("does this thing", async () => { + await page.waitForSelector("#selector"); + await page.click("#selector"); + await page.waitForSelector("#other-selector"); + }); }); ``` diff --git a/next.config.mjs b/next.config.mjs index 0306a3087..46bd66bd5 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -2,16 +2,16 @@ import bundleAnalyzer from "@next/bundle-analyzer"; const withBundleAnalyzer = bundleAnalyzer({ - enabled: process.env.ANALYZE === "true" + enabled: process.env.ANALYZE === "true" }); /** * @type {import('next').NextConfig} */ const config = { - reactStrictMode: true, - swcMinify: true, - cleanDistDir: true + reactStrictMode: true, + swcMinify: true, + cleanDistDir: true }; export default withBundleAnalyzer(config); diff --git a/package.json b/package.json index 5e16ccd56..d9da8aa13 100644 --- a/package.json +++ b/package.json @@ -1,137 +1,137 @@ { - "name": "@downwrite/client", - "version": "0.1.0", - "private": true, - "repository": "charliewilco/downwrite", - "author": "Charlie ⚡ ", - "scripts": { - "start": "next start", - "build": "next build", - "dev": "next dev", - "lint": "next lint", - "build:analyze": "ANALYZE=true next build", - "dev:inspect": "NODE_OPTIONS='--inspect' next dev", - "test": "jest --runInBand", - "test:ci": "jest --ci --runInBand --no-cache", - "db:clear": "node scripts/prep-db", - "prepare": "husky install", - "prebuild": "graphql-codegen", - "predev": "graphql-codegen", - "generate": "graphql-codegen", - "types": "tsc --noEmit --pretty", - "format": "pretty-quick" - }, - "dependencies": { - "@graphql-tools/schema": "^8.3.5", - "@reach/checkbox": "^0.16.0", - "@reach/combobox": "^0.16.5", - "@reach/dialog": "^0.16.2", - "@reach/menu-button": "^0.16.2", - "@reach/skip-nav": "^0.16.0", - "@reach/visually-hidden": "^0.16.0", - "apollo-server-micro": "^2.24.1", - "base-64": "^1.0.0", - "bcryptjs": "^2.4.3", - "cookie": "^0.4.2", - "cuid": "^2.1.8", - "date-fns": "^2.28.0", - "draft-js": "^0.11.7", - "draftjs-md-converter": "^1.5.2", - "fathom-client": "^3.4.1", - "formik": "^2.2.9", - "graphql": "^15.7.2", - "graphql-request": "^4.2.0", - "graphql-tag": "^2.12.6", - "immutable": "4.0.0", - "jsonwebtoken": "^8.5.1", - "jwt-decode": "^3.1.2", - "mongoose": "^6.2.8", - "next": "^12.1.1", - "prismjs": "^1.27.0", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "react-dropzone": "^12.0.4", - "react-icons": "^4.3.1", - "react-is": "^17.0.2", - "rehype-stringify": "^9.0.3", - "remark": "^14.0.2", - "remark-parse": "^10.0.1", - "remark-prism": "^1.3.6", - "remark-rehype": "^10.1.0", - "remark-stringify": "^10.0.2", - "rxjs": "^7.5.5", - "sharp": "^0.30.3", - "styled-jsx": "^5.0.1", - "swr": "^1.2.2", - "unified": "^10.1.2", - "universal-cookie": "^4.0.4", - "use-subscription": "^1.5.1", - "zod": "^3.14.2" - }, - "devDependencies": { - "@graphql-codegen/cli": "^2.6.2", - "@graphql-codegen/typescript": "^2.4.4", - "@graphql-codegen/typescript-graphql-request": "^4.4.4", - "@graphql-codegen/typescript-operations": "^2.3.5", - "@graphql-codegen/typescript-resolvers": "^2.6.1", - "@next/bundle-analyzer": "^12.1.1", - "@types/base-64": "^1.0.0", - "@types/bcryptjs": "^2.4.2", - "@types/cookie": "^0.4.0", - "@types/draft-js": "^0.11.9", - "@types/jest": "^27.4.1", - "@types/node": "^17.0.23", - "@types/prismjs": "^1.26.0", - "@types/puppeteer": "^5.4.5", - "@types/react": "^17.0.43", - "@types/react-dom": "^17.0.14", - "@types/react-test-renderer": "^17.0.1", - "@types/ua-parser-js": "^0.7.36", - "@types/use-subscription": "^1.0.0", - "eslint": "^8.12.0", - "eslint-config-next": "^12.1.1", - "husky": "^7.0.4", - "jest": "^27.5.1", - "prettier": "^2.6.1", - "pretty-quick": "^3.1.3", - "prop-types": "^15.7.2", - "react-test-renderer": "^17.0.2", - "ts-jest": "^27.1.4", - "typescript": "^4.6.3" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node", - "verbose": true, - "testRegex": "(/__tests__/.*|(\\.|/)(test))\\.[jt]sx?$", - "moduleNameMapper": { - "^@shared/(.*)$": "/src/shared/$1", - "^@server/(.*)$": "/src/server/$1", - "^@data/(.*)$": "/src/data/$1" - }, - "globals": { - "ts-jest": { - "tsconfig": { - "jsx": "react" - } - } - } - }, - "eslintConfig": { - "extends": "next/core-web-vitals" - }, - "browserslist": [ - ">0.25%", - "not ie 11", - "not op_mini all" - ], - "prettier": { - "printWidth": 85, - "singleQuote": false, - "tabWidth": 2, - "useTabs": false, - "bracketSpacing": true, - "bracketSameLine": true, - "trailingComma": "none" - } + "name": "downwrite", + "version": "0.1.0", + "private": true, + "repository": "charliewilco/downwrite", + "author": "Charlie ⚡ ", + "scripts": { + "start": "next start", + "build": "next build", + "dev": "next dev", + "lint": "next lint", + "build:analyze": "ANALYZE=true next build", + "dev:inspect": "NODE_OPTIONS='--inspect' next dev", + "test": "jest --runInBand", + "test:ci": "jest --ci --runInBand --no-cache", + "db:clear": "node scripts/prep-db", + "prepare": "husky install", + "prebuild": "graphql-codegen", + "predev": "graphql-codegen", + "generate": "graphql-codegen", + "types": "tsc --noEmit --pretty", + "format": "pretty-quick" + }, + "dependencies": { + "@graphql-tools/schema": "^8.3.5", + "@reach/checkbox": "^0.16.0", + "@reach/combobox": "^0.16.5", + "@reach/dialog": "^0.16.2", + "@reach/menu-button": "^0.16.2", + "@reach/skip-nav": "^0.16.0", + "@reach/visually-hidden": "^0.16.0", + "apollo-server-micro": "^2.24.1", + "base-64": "^1.0.0", + "bcryptjs": "^2.4.3", + "cookie": "^0.4.2", + "cuid": "^2.1.8", + "date-fns": "^2.28.0", + "draft-js": "^0.11.7", + "draftjs-md-converter": "^1.5.2", + "fathom-client": "^3.4.1", + "formik": "^2.2.9", + "graphql": "^15.7.2", + "graphql-request": "^4.2.0", + "graphql-tag": "^2.12.6", + "immutable": "4.0.0", + "jsonwebtoken": "^8.5.1", + "jwt-decode": "^3.1.2", + "mongoose": "^6.2.8", + "next": "^12.1.1", + "prismjs": "^1.27.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-dropzone": "^12.0.4", + "react-icons": "^4.3.1", + "react-is": "^17.0.2", + "rehype-stringify": "^9.0.3", + "remark": "^14.0.2", + "remark-parse": "^10.0.1", + "remark-prism": "^1.3.6", + "remark-rehype": "^10.1.0", + "remark-stringify": "^10.0.2", + "rxjs": "^7.5.5", + "sharp": "^0.30.3", + "styled-jsx": "^5.0.1", + "swr": "^1.2.2", + "unified": "^10.1.2", + "universal-cookie": "^4.0.4", + "use-subscription": "^1.5.1", + "zod": "^3.14.2" + }, + "devDependencies": { + "@graphql-codegen/cli": "^2.6.2", + "@graphql-codegen/typescript": "^2.4.4", + "@graphql-codegen/typescript-graphql-request": "^4.4.4", + "@graphql-codegen/typescript-operations": "^2.3.5", + "@graphql-codegen/typescript-resolvers": "^2.6.1", + "@next/bundle-analyzer": "^12.1.1", + "@types/base-64": "^1.0.0", + "@types/bcryptjs": "^2.4.2", + "@types/cookie": "^0.4.0", + "@types/draft-js": "^0.11.9", + "@types/jest": "^27.4.1", + "@types/node": "^17.0.23", + "@types/prismjs": "^1.26.0", + "@types/puppeteer": "^5.4.5", + "@types/react": "^17.0.43", + "@types/react-dom": "^17.0.14", + "@types/react-test-renderer": "^17.0.1", + "@types/ua-parser-js": "^0.7.36", + "@types/use-subscription": "^1.0.0", + "eslint": "^8.12.0", + "eslint-config-next": "^12.1.1", + "husky": "^7.0.4", + "jest": "^27.5.1", + "prettier": "^2.6.1", + "pretty-quick": "^3.1.3", + "prop-types": "^15.7.2", + "react-test-renderer": "^17.0.2", + "ts-jest": "^27.1.4", + "typescript": "^4.6.3" + }, + "jest": { + "preset": "ts-jest", + "testEnvironment": "node", + "verbose": true, + "testRegex": "(/__tests__/.*|(\\.|/)(test))\\.[jt]sx?$", + "moduleNameMapper": { + "^@shared/(.*)$": "/src/shared/$1", + "^@server/(.*)$": "/src/server/$1", + "^@data/(.*)$": "/src/data/$1" + }, + "globals": { + "ts-jest": { + "tsconfig": { + "jsx": "react" + } + } + } + }, + "eslintConfig": { + "extends": "next/core-web-vitals" + }, + "browserslist": [ + ">0.25%", + "not ie 11", + "not op_mini all" + ], + "prettier": { + "printWidth": 85, + "singleQuote": false, + "tabWidth": 2, + "useTabs": true, + "bracketSpacing": true, + "bracketSameLine": true, + "trailingComma": "none" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 1e0767e40..000000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,9376 +0,0 @@ -lockfileVersion: 5.3 - -specifiers: - '@graphql-codegen/cli': ^2.6.2 - '@graphql-codegen/typescript': ^2.4.4 - '@graphql-codegen/typescript-graphql-request': ^4.4.4 - '@graphql-codegen/typescript-operations': ^2.3.5 - '@graphql-codegen/typescript-resolvers': ^2.6.1 - '@graphql-tools/schema': ^8.3.5 - '@next/bundle-analyzer': ^12.1.1 - '@reach/checkbox': ^0.16.0 - '@reach/combobox': ^0.16.5 - '@reach/dialog': ^0.16.2 - '@reach/menu-button': ^0.16.2 - '@reach/skip-nav': ^0.16.0 - '@reach/visually-hidden': ^0.16.0 - '@types/base-64': ^1.0.0 - '@types/bcryptjs': ^2.4.2 - '@types/cookie': ^0.4.0 - '@types/draft-js': ^0.11.9 - '@types/jest': ^27.4.1 - '@types/node': ^17.0.23 - '@types/prismjs': ^1.26.0 - '@types/puppeteer': ^5.4.5 - '@types/react': ^17.0.43 - '@types/react-dom': ^17.0.14 - '@types/react-test-renderer': ^17.0.1 - '@types/ua-parser-js': ^0.7.36 - '@types/use-subscription': ^1.0.0 - apollo-server-micro: ^2.24.1 - base-64: ^1.0.0 - bcryptjs: ^2.4.3 - cookie: ^0.4.2 - cuid: ^2.1.8 - date-fns: ^2.28.0 - draft-js: ^0.11.7 - draftjs-md-converter: ^1.5.2 - eslint: ^8.12.0 - eslint-config-next: ^12.1.1 - fathom-client: ^3.4.1 - formik: ^2.2.9 - graphql: ^15.7.2 - graphql-request: ^4.2.0 - graphql-tag: ^2.12.6 - husky: ^7.0.4 - immutable: 4.0.0 - jest: ^27.5.1 - jsonwebtoken: ^8.5.1 - jwt-decode: ^3.1.2 - mongoose: ^6.2.8 - next: ^12.1.1 - prettier: ^2.6.1 - pretty-quick: ^3.1.3 - prismjs: ^1.27.0 - prop-types: ^15.7.2 - react: ^17.0.2 - react-dom: ^17.0.2 - react-dropzone: ^12.0.4 - react-icons: ^4.3.1 - react-is: ^17.0.2 - react-test-renderer: ^17.0.2 - rehype-stringify: ^9.0.3 - remark: ^14.0.2 - remark-parse: ^10.0.1 - remark-prism: ^1.3.6 - remark-rehype: ^10.1.0 - remark-stringify: ^10.0.2 - rxjs: ^7.5.5 - sharp: ^0.30.3 - styled-jsx: ^5.0.1 - swr: ^1.2.2 - ts-jest: ^27.1.4 - typescript: ^4.6.3 - unified: ^10.1.2 - universal-cookie: ^4.0.4 - use-subscription: ^1.5.1 - zod: ^3.14.2 - -dependencies: - '@graphql-tools/schema': 8.3.5_graphql@15.8.0 - '@reach/checkbox': 0.16.0_react-dom@17.0.2+react@17.0.2 - '@reach/combobox': 0.16.5_react-dom@17.0.2+react@17.0.2 - '@reach/dialog': 0.16.2_b5d7bf22a7b46dd4876f0e926ab0c987 - '@reach/menu-button': 0.16.2_281a4fa50a045c9112baf635f3bc27a7 - '@reach/skip-nav': 0.16.0_react-dom@17.0.2+react@17.0.2 - '@reach/visually-hidden': 0.16.0_react-dom@17.0.2+react@17.0.2 - apollo-server-micro: 2.25.3_graphql@15.8.0 - base-64: 1.0.0 - bcryptjs: 2.4.3 - cookie: 0.4.2 - cuid: 2.1.8 - date-fns: 2.28.0 - draft-js: 0.11.7_react-dom@17.0.2+react@17.0.2 - draftjs-md-converter: 1.5.2 - fathom-client: 3.4.1 - formik: 2.2.9_react@17.0.2 - graphql: 15.8.0 - graphql-request: 4.2.0_graphql@15.8.0 - graphql-tag: 2.12.6_graphql@15.8.0 - immutable: 4.0.0 - jsonwebtoken: 8.5.1 - jwt-decode: 3.1.2 - mongoose: 6.2.8 - next: 12.1.1_react-dom@17.0.2+react@17.0.2 - prismjs: 1.27.0 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - react-dropzone: 12.0.4_react@17.0.2 - react-icons: 4.3.1_react@17.0.2 - react-is: 17.0.2 - rehype-stringify: 9.0.3 - remark: 14.0.2 - remark-parse: 10.0.1 - remark-prism: 1.3.6 - remark-rehype: 10.1.0 - remark-stringify: 10.0.2 - rxjs: 7.5.5 - sharp: 0.30.3 - styled-jsx: 5.0.1_react@17.0.2 - swr: 1.2.2_react@17.0.2 - unified: 10.1.2 - universal-cookie: 4.0.4 - use-subscription: 1.5.1_react@17.0.2 - zod: 3.14.3 - -devDependencies: - '@graphql-codegen/cli': 2.6.2_e9b9f5ed6fc9d395db4b512cb80b8ff2 - '@graphql-codegen/typescript': 2.4.8_graphql@15.8.0 - '@graphql-codegen/typescript-graphql-request': 4.4.4_29d80df3fcae3d7f19ea70dad9cc7fe0 - '@graphql-codegen/typescript-operations': 2.3.5_graphql@15.8.0 - '@graphql-codegen/typescript-resolvers': 2.6.1_graphql@15.8.0 - '@next/bundle-analyzer': 12.1.1 - '@types/base-64': 1.0.0 - '@types/bcryptjs': 2.4.2 - '@types/cookie': 0.4.1 - '@types/draft-js': 0.11.9 - '@types/jest': 27.4.1 - '@types/node': 17.0.23 - '@types/prismjs': 1.26.0 - '@types/puppeteer': 5.4.5 - '@types/react': 17.0.43 - '@types/react-dom': 17.0.14 - '@types/react-test-renderer': 17.0.1 - '@types/ua-parser-js': 0.7.36 - '@types/use-subscription': 1.0.0 - eslint: 8.12.0 - eslint-config-next: 12.1.1_5c7b32850701aad98dda14db9678593e - husky: 7.0.4 - jest: 27.5.1 - prettier: 2.6.1 - pretty-quick: 3.1.3_prettier@2.6.1 - prop-types: 15.8.1 - react-test-renderer: 17.0.2_react@17.0.2 - ts-jest: 27.1.4_9985e1834e803358b7be1e6ce5ca0eea - typescript: 4.6.3 - -packages: - - /@ampproject/remapping/2.1.2: - resolution: {integrity: sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.4 - dev: true - - /@apollo/protobufjs/1.2.2: - resolution: {integrity: sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==} - hasBin: true - requiresBuild: true - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 - '@types/long': 4.0.1 - '@types/node': 10.17.60 - long: 4.0.0 - dev: false - - /@apollographql/apollo-tools/0.5.2: - resolution: {integrity: sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw==} - engines: {node: '>=8', npm: '>=6'} - dev: false - - /@apollographql/graphql-playground-html/1.6.27: - resolution: {integrity: sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==} - dependencies: - xss: 1.0.11 - dev: false - - /@apollographql/graphql-upload-8-fork/8.1.3_graphql@15.8.0: - resolution: {integrity: sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==} - engines: {node: '>=8.5'} - peerDependencies: - graphql: 0.13.1 - 15 - dependencies: - '@types/express': 4.17.13 - '@types/fs-capacitor': 2.0.0 - '@types/koa': 2.13.4 - busboy: 0.3.1 - fs-capacitor: 2.0.4 - graphql: 15.8.0 - http-errors: 1.8.1 - object-path: 0.11.8 - dev: false - - /@babel/code-frame/7.16.7: - resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.16.10 - dev: true - - /@babel/compat-data/7.17.7: - resolution: {integrity: sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/core/7.17.8: - resolution: {integrity: sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.1.2 - '@babel/code-frame': 7.16.7 - '@babel/generator': 7.17.7 - '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8 - '@babel/helper-module-transforms': 7.17.7 - '@babel/helpers': 7.17.8 - '@babel/parser': 7.17.8 - '@babel/template': 7.16.7 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - convert-source-map: 1.8.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.1 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/generator/7.17.7: - resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - - /@babel/helper-annotate-as-pure/7.16.7: - resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.8: - resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.17.7 - '@babel/core': 7.17.8 - '@babel/helper-validator-option': 7.16.7 - browserslist: 4.20.2 - semver: 6.3.0 - dev: true - - /@babel/helper-create-class-features-plugin/7.17.6_@babel+core@7.17.8: - resolution: {integrity: sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-function-name': 7.16.7 - '@babel/helper-member-expression-to-functions': 7.17.7 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/helper-replace-supers': 7.16.7 - '@babel/helper-split-export-declaration': 7.16.7 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-environment-visitor/7.16.7: - resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-function-name/7.16.7: - resolution: {integrity: sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-get-function-arity': 7.16.7 - '@babel/template': 7.16.7 - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-get-function-arity/7.16.7: - resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-hoist-variables/7.16.7: - resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-member-expression-to-functions/7.17.7: - resolution: {integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-module-imports/7.16.7: - resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-module-transforms/7.17.7: - resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-simple-access': 7.17.7 - '@babel/helper-split-export-declaration': 7.16.7 - '@babel/helper-validator-identifier': 7.16.7 - '@babel/template': 7.16.7 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-optimise-call-expression/7.16.7: - resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-plugin-utils/7.16.7: - resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-replace-supers/7.16.7: - resolution: {integrity: sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-member-expression-to-functions': 7.17.7 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-simple-access/7.17.7: - resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-skip-transparent-expression-wrappers/7.16.0: - resolution: {integrity: sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-split-export-declaration/7.16.7: - resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@babel/helper-validator-identifier/7.16.7: - resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-option/7.16.7: - resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helpers/7.17.8: - resolution: {integrity: sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.16.7 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/highlight/7.16.10: - resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.16.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - - /@babel/parser/7.17.8: - resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==} - engines: {node: '>=6.0.0'} - hasBin: true - dev: true - - /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-proposal-object-rest-spread/7.17.3_@babel+core@7.17.8: - resolution: {integrity: sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.17.7 - '@babel/core': 7.17.8 - '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.8 - '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.8 - dev: true - - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.8: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.17.8: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.8: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-flow/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.17.8: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.8: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.8: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.8: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.8: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.8: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.8: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.8: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.8: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-typescript/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-block-scoping/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-classes/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-function-name': 7.16.7 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/helper-plugin-utils': 7.16.7 - '@babel/helper-replace-supers': 7.16.7 - '@babel/helper-split-export-declaration': 7.16.7 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-computed-properties/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-destructuring/7.17.7_@babel+core@7.17.8: - resolution: {integrity: sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-flow-strip-types/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-flow': 7.16.7_@babel+core@7.17.8 - dev: true - - /@babel/plugin-transform-for-of/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8 - '@babel/helper-function-name': 7.16.7 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-literals/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-modules-commonjs/7.17.7_@babel+core@7.17.8: - resolution: {integrity: sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-module-transforms': 7.17.7 - '@babel/helper-plugin-utils': 7.16.7 - '@babel/helper-simple-access': 7.17.7 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - '@babel/helper-replace-supers': 7.16.7 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-parameters/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-react-display-name/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-react-jsx/7.17.3_@babel+core@7.17.8: - resolution: {integrity: sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.8 - '@babel/types': 7.17.0 - dev: true - - /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-spread/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - dev: true - - /@babel/plugin-transform-template-literals/7.16.7_@babel+core@7.17.8: - resolution: {integrity: sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.8 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/runtime-corejs3/7.17.8: - resolution: {integrity: sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==} - engines: {node: '>=6.9.0'} - dependencies: - core-js-pure: 3.21.1 - regenerator-runtime: 0.13.9 - dev: true - - /@babel/runtime/7.17.8: - resolution: {integrity: sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.9 - - /@babel/template/7.16.7: - resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.16.7 - '@babel/parser': 7.17.8 - '@babel/types': 7.17.0 - dev: true - - /@babel/traverse/7.17.3: - resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.16.7 - '@babel/generator': 7.17.7 - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-function-name': 7.16.7 - '@babel/helper-hoist-variables': 7.16.7 - '@babel/helper-split-export-declaration': 7.16.7 - '@babel/parser': 7.17.8 - '@babel/types': 7.17.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types/7.17.0: - resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.16.7 - to-fast-properties: 2.0.0 - dev: true - - /@bcoe/v8-coverage/0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - - /@endemolshinegroup/cosmiconfig-typescript-loader/3.0.2_ec5c0ebd3030a0a5109338876648df1b: - resolution: {integrity: sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==} - engines: {node: '>=10.0.0'} - peerDependencies: - cosmiconfig: '>=6' - dependencies: - cosmiconfig: 7.0.1 - lodash.get: 4.4.2 - make-error: 1.3.6 - ts-node: 9.1.1_typescript@4.6.3 - tslib: 2.3.1 - transitivePeerDependencies: - - typescript - dev: true - - /@eslint/eslintrc/1.2.1: - resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.3.1 - globals: 13.13.0 - ignore: 5.2.0 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@graphql-codegen/cli/2.6.2_e9b9f5ed6fc9d395db4b512cb80b8ff2: - resolution: {integrity: sha512-UO75msoVgvLEvfjCezM09cQQqp32+mR8Ma1ACsBpr7nroFvHbgcu2ulx1cMovg4sxDBCsvd9Eq/xOOMpARUxtw==} - hasBin: true - 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 - dependencies: - '@graphql-codegen/core': 2.5.1_graphql@15.8.0 - '@graphql-codegen/plugin-helpers': 2.4.2_graphql@15.8.0 - '@graphql-tools/apollo-engine-loader': 7.2.6_graphql@15.8.0 - '@graphql-tools/code-file-loader': 7.2.8_graphql@15.8.0 - '@graphql-tools/git-loader': 7.1.7_graphql@15.8.0 - '@graphql-tools/github-loader': 7.2.8_graphql@15.8.0 - '@graphql-tools/graphql-file-loader': 7.3.7_graphql@15.8.0 - '@graphql-tools/json-file-loader': 7.3.7_graphql@15.8.0 - '@graphql-tools/load': 7.5.5_graphql@15.8.0 - '@graphql-tools/prisma-loader': 7.1.6_5caea9434b9aae544c4bc2f74e488575 - '@graphql-tools/url-loader': 7.9.7_5caea9434b9aae544c4bc2f74e488575 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - change-case-all: 1.0.14 - chokidar: 3.5.3 - common-tags: 1.8.2 - cosmiconfig: 7.0.1 - debounce: 1.2.1 - dependency-graph: 0.11.0 - detect-indent: 6.1.0 - glob: 7.2.0 - globby: 11.1.0 - graphql: 15.8.0 - graphql-config: 4.1.0_e9b9f5ed6fc9d395db4b512cb80b8ff2 - inquirer: 8.2.2 - is-glob: 4.0.3 - json-to-pretty-yaml: 1.2.2 - latest-version: 5.1.0 - listr: 0.14.3 - listr-update-renderer: 0.5.0_listr@0.14.3 - log-symbols: 4.1.0 - minimatch: 4.2.1 - mkdirp: 1.0.4 - string-env-interpolation: 1.0.1 - ts-log: 2.2.4 - tslib: 2.3.1 - valid-url: 1.0.9 - wrap-ansi: 7.0.0 - yaml: 1.10.2 - yargs: 17.4.0 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - encoding - - supports-color - - typescript - - utf-8-validate - - zen-observable - dev: true - - /@graphql-codegen/core/2.5.1_graphql@15.8.0: - resolution: {integrity: sha512-alctBVl2hMnBXDLwkgmnFPrZVIiBDsWJSmxJcM4GKg1PB23+xuov35GE47YAyAhQItE1B1fbYnbb1PtGiDZ4LA==} - 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 - dependencies: - '@graphql-codegen/plugin-helpers': 2.4.2_graphql@15.8.0 - '@graphql-tools/schema': 8.3.5_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - tslib: 2.3.1 - dev: true - - /@graphql-codegen/plugin-helpers/2.4.2_graphql@15.8.0: - resolution: {integrity: sha512-LJNvwAPv/sKtI3RnRDm+nPD+JeOfOuSOS4FFIpQCMUCyMnFcchV/CPTTv7tT12fLUpEg6XjuFfDBvOwndti30Q==} - 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 - dependencies: - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - change-case-all: 1.0.14 - common-tags: 1.8.2 - graphql: 15.8.0 - import-from: 4.0.0 - lodash: 4.17.21 - tslib: 2.3.1 - dev: true - - /@graphql-codegen/schema-ast/2.4.1_graphql@15.8.0: - resolution: {integrity: sha512-bIWlKk/ShoVJfghA4Rt1OWnd34/dQmZM/vAe6fu6QKyOh44aAdqPtYQ2dbTyFXoknmu504etKJGEDllYNUJRfg==} - 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 - dependencies: - '@graphql-codegen/plugin-helpers': 2.4.2_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - tslib: 2.3.1 - dev: true - - /@graphql-codegen/typescript-graphql-request/4.4.4_29d80df3fcae3d7f19ea70dad9cc7fe0: - resolution: {integrity: sha512-zYRMyTppKfvUuu5XIMRqN2yYEdJ8RCpmK1yVWOq47xJcEs2fz+ng1Id3ZlkCPivludd6FWPAIpb3s8ZAZf3moA==} - 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-request: ^3.4.0 || ^4.0.0 - graphql-tag: ^2.0.0 - dependencies: - '@graphql-codegen/plugin-helpers': 2.4.2_graphql@15.8.0 - '@graphql-codegen/visitor-plugin-common': 2.7.4_graphql@15.8.0 - auto-bind: 4.0.0 - graphql: 15.8.0 - graphql-request: 4.2.0_graphql@15.8.0 - graphql-tag: 2.12.6_graphql@15.8.0 - tslib: 2.3.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@graphql-codegen/typescript-operations/2.3.5_graphql@15.8.0: - resolution: {integrity: sha512-GCZQW+O+cIF62ioPkQMoSJGzjJhtr7ttZGJOAoN/Q/oolG8ph9jNFePKO67tSQ/POAs5HLqfat4kAlCK8OPV3Q==} - 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 - dependencies: - '@graphql-codegen/plugin-helpers': 2.4.2_graphql@15.8.0 - '@graphql-codegen/typescript': 2.4.8_graphql@15.8.0 - '@graphql-codegen/visitor-plugin-common': 2.7.4_graphql@15.8.0 - auto-bind: 4.0.0 - graphql: 15.8.0 - tslib: 2.3.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@graphql-codegen/typescript-resolvers/2.6.1_graphql@15.8.0: - resolution: {integrity: sha512-tb8qiIYRDbypHvEVBi04OlItABPeormhd6gh26Q0FO/dD+tLx1V85A6wnHC4jExWPP9+/3PwHJL1pq/0n1kxlA==} - 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 - dependencies: - '@graphql-codegen/plugin-helpers': 2.4.2_graphql@15.8.0 - '@graphql-codegen/typescript': 2.4.8_graphql@15.8.0 - '@graphql-codegen/visitor-plugin-common': 2.7.4_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - auto-bind: 4.0.0 - graphql: 15.8.0 - tslib: 2.3.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@graphql-codegen/typescript/2.4.8_graphql@15.8.0: - resolution: {integrity: sha512-tVsHIkuyenBany7c5IMU1yi4S1er2hgyXJGNY7PcyhpJMx0eChmbqz1VTiZxDEwi8mDBS2mn3TaSJMh6xuJM5g==} - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-codegen/plugin-helpers': 2.4.2_graphql@15.8.0 - '@graphql-codegen/schema-ast': 2.4.1_graphql@15.8.0 - '@graphql-codegen/visitor-plugin-common': 2.7.4_graphql@15.8.0 - auto-bind: 4.0.0 - graphql: 15.8.0 - tslib: 2.3.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@graphql-codegen/visitor-plugin-common/2.7.4_graphql@15.8.0: - resolution: {integrity: sha512-aaDoEudDD+B7DK/UwDSL2Fzej75N9hNJ3N8FQuTIeDyw6FNGWUxmkjVBLQGlzfnYfK8IYkdfYkrPn3Skq0pVxA==} - 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 - dependencies: - '@graphql-codegen/plugin-helpers': 2.4.2_graphql@15.8.0 - '@graphql-tools/optimize': 1.2.0_graphql@15.8.0 - '@graphql-tools/relay-operation-optimizer': 6.4.5_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - auto-bind: 4.0.0 - change-case-all: 1.0.14 - dependency-graph: 0.11.0 - graphql: 15.8.0 - graphql-tag: 2.12.6_graphql@15.8.0 - parse-filepath: 1.0.2 - tslib: 2.3.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@graphql-tools/apollo-engine-loader/7.2.6_graphql@15.8.0: - resolution: {integrity: sha512-QuLiN34syxAtLGrIbkuKP0YGkm5uyly9zAjuG+i+Ae2roZk96qvmz4hf1XUSrf+muzs3IHrcGW+kF43mFyCxag==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - cross-undici-fetch: 0.1.27 - graphql: 15.8.0 - sync-fetch: 0.3.1 - tslib: 2.3.1 - transitivePeerDependencies: - - encoding - dev: true - - /@graphql-tools/batch-execute/8.4.1_graphql@15.8.0: - resolution: {integrity: sha512-63+lNWrwXmofjZVa7ML+n9CBviClF3K+RP3Xx3hxGQ8BrhvB1pWS1yzaUZqrkiiKdTu1v3mJGVfmooHwzlyPwQ==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - dataloader: 2.0.0 - graphql: 15.8.0 - tslib: 2.3.1 - value-or-promise: 1.0.11 - dev: true - - /@graphql-tools/code-file-loader/7.2.8_graphql@15.8.0: - resolution: {integrity: sha512-e8Z3O3AHBxCfCgd3RB/IOoObHWLzwEZ2HBmKgOEmm+WFjDTAvGHbEs+Qr/HUzgz7DIhyMXZTw2m2od1/YkGlIA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/graphql-tag-pluck': 7.2.0_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - globby: 11.1.0 - graphql: 15.8.0 - tslib: 2.3.1 - unixify: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@graphql-tools/delegate/8.7.0_graphql@15.8.0: - resolution: {integrity: sha512-tsmNFV8nVvPY2nApCj69ck32/Jdj44rYbUZx+cpyUWOzfbUT1iu0d1mUwn5UeHuGnB+Bzgn3fuTypg97mDEyEw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/batch-execute': 8.4.1_graphql@15.8.0 - '@graphql-tools/schema': 8.3.5_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - dataloader: 2.0.0 - graphql: 15.8.0 - graphql-executor: 0.0.22_graphql@15.8.0 - tslib: 2.3.1 - value-or-promise: 1.0.11 - dev: true - - /@graphql-tools/git-loader/7.1.7_graphql@15.8.0: - resolution: {integrity: sha512-L970BeHQhwcA+qZ00l8kQpaAqmhZf4TfsyWeKG53UBweB8E1UHlXMwM0Ex/uDQTDLcyRzrGa0NU8+cTJ+giE4A==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/graphql-tag-pluck': 7.2.0_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - is-glob: 4.0.3 - micromatch: 4.0.5 - tslib: 2.3.1 - unixify: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@graphql-tools/github-loader/7.2.8_graphql@15.8.0: - resolution: {integrity: sha512-iznTA1O6Jqm392uu7II1kSg+2INHug3v/06O6QHvFDDBrcns1g4zafReEFt+O/uwXOMoEl0KltzwHfjBjaaUUw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/graphql-tag-pluck': 7.2.0_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - cross-undici-fetch: 0.1.27 - graphql: 15.8.0 - sync-fetch: 0.3.1 - tslib: 2.3.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@graphql-tools/graphql-file-loader/7.3.7_graphql@15.8.0: - resolution: {integrity: sha512-fwXLycYvabPhusGtYuFrOPbjeIvLWr6viGkQc9KmiBm2Z2kZrlNRNUlYkXXRzMoiqRkzqFJYhOgWDE7LsOnbjw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/import': 6.6.9_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - globby: 11.1.0 - graphql: 15.8.0 - tslib: 2.3.1 - unixify: 1.0.0 - dev: true - - /@graphql-tools/graphql-tag-pluck/7.2.0_graphql@15.8.0: - resolution: {integrity: sha512-95eYXNS4s3IC9chizltG15A7DX6lTDnvDvmFckxGbCx7Obbu0YWPN9vW/ZyrzkRz1jvweAoDW5/wQLKBJ0Y2og==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@babel/parser': 7.17.8 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - tslib: 2.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@graphql-tools/import/6.6.9_graphql@15.8.0: - resolution: {integrity: sha512-sKaLqvPmNLQlY4te+nnBhRrf5WBISoiyVkbriCLz0kHw805iHdJaU2KxUoHsRTR7WlYq0g9gzB0oVaRh99Q5aA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - resolve-from: 5.0.0 - tslib: 2.3.1 - dev: true - - /@graphql-tools/json-file-loader/7.3.7_graphql@15.8.0: - resolution: {integrity: sha512-dm0LcfiWYin7cUR4RWC33C9bNppujvSU7hwTH+sHmSguNnat9Kn8dBntVSgrY3qCbKuGfz/PshQHIODXrRwAKg==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - globby: 11.1.0 - graphql: 15.8.0 - tslib: 2.3.1 - unixify: 1.0.0 - dev: true - - /@graphql-tools/load/7.5.5_graphql@15.8.0: - resolution: {integrity: sha512-qPasit140nwTbMQbFCfZcgaS7q/0+xMQGdkMGU11rtHt6/jMgJIKDUU8/fJGKltNY3EeHlEdVtZmggZD7Rr6bA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/schema': 8.3.5_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - p-limit: 3.1.0 - tslib: 2.3.1 - dev: true - - /@graphql-tools/merge/8.2.6_graphql@15.8.0: - resolution: {integrity: sha512-dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - tslib: 2.3.1 - - /@graphql-tools/optimize/1.2.0_graphql@15.8.0: - resolution: {integrity: sha512-l0PTqgHeorQdeOizUor6RB49eOAng9+abSxiC5/aHRo6hMmXVaqv5eqndlmxCpx9BkgNb3URQbK+ZZHVktkP/g==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - graphql: 15.8.0 - tslib: 2.3.1 - dev: true - - /@graphql-tools/prisma-loader/7.1.6_5caea9434b9aae544c4bc2f74e488575: - resolution: {integrity: sha512-RR/V3kgkgdch6uENxNfYwlMDXBkVQFqpfHpfKuyBX8jmXy59m5f+9Ie4N97kQ0PAcoaw5r0gWLiIk5twn+FcjA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/url-loader': 7.9.7_5caea9434b9aae544c4bc2f74e488575 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - '@types/js-yaml': 4.0.5 - '@types/json-stable-stringify': 1.0.34 - '@types/jsonwebtoken': 8.5.8 - chalk: 4.1.2 - debug: 4.3.4 - dotenv: 16.0.0 - graphql: 15.8.0 - graphql-request: 4.2.0_graphql@15.8.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.0 - isomorphic-fetch: 3.0.0 - js-yaml: 4.1.0 - json-stable-stringify: 1.0.1 - jsonwebtoken: 8.5.1 - lodash: 4.17.21 - replaceall: 0.1.6 - scuid: 1.1.0 - tslib: 2.3.1 - yaml-ast-parser: 0.0.43 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: true - - /@graphql-tools/relay-operation-optimizer/6.4.5_graphql@15.8.0: - resolution: {integrity: sha512-AB/eOfpjteO4Gt0is0U1TseDuFjs/DLV1N0cqF0t6TqQLNVBeWIw7yVb8jw7HIfg3jcKLj++8582lhvCsWMT5g==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - relay-compiler: 12.0.0_graphql@15.8.0 - tslib: 2.3.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /@graphql-tools/schema/8.3.5_graphql@15.8.0: - resolution: {integrity: sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/merge': 8.2.6_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - tslib: 2.3.1 - value-or-promise: 1.0.11 - - /@graphql-tools/url-loader/7.9.7_5caea9434b9aae544c4bc2f74e488575: - resolution: {integrity: sha512-cJoZcv6oJrhArRPmSnw8wcqnz7F8p+HzwvjoJyHbs0ne2jTXazD+LOHaXMAa1L7lKK2YmH2Txy8pOI76JnvUiQ==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/delegate': 8.7.0_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - '@graphql-tools/wrap': 8.4.9_graphql@15.8.0 - '@n1ru4l/graphql-live-query': 0.9.0_graphql@15.8.0 - '@types/websocket': 1.0.5 - '@types/ws': 8.5.3 - cross-undici-fetch: 0.1.27 - dset: 3.1.1 - extract-files: 11.0.0 - graphql: 15.8.0 - graphql-sse: 1.1.0_graphql@15.8.0 - graphql-ws: 5.6.4_graphql@15.8.0 - isomorphic-ws: 4.0.1_ws@8.5.0 - meros: 1.2.0_@types+node@17.0.23 - subscriptions-transport-ws: 0.11.0_graphql@15.8.0 - sync-fetch: 0.3.1 - tslib: 2.3.1 - value-or-promise: 1.0.11 - ws: 8.5.0 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - encoding - - utf-8-validate - dev: true - - /@graphql-tools/utils/8.6.5_graphql@15.8.0: - resolution: {integrity: sha512-mjOtaWiS2WIqRz/cq5gaeM3sVrllcu2xbtHROw1su1v3xWa3D3dKgn8Lrl7+tvWs5WUVySsBss/VZ3WdoPkCrA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - graphql: 15.8.0 - tslib: 2.3.1 - - /@graphql-tools/wrap/8.4.9_graphql@15.8.0: - resolution: {integrity: sha512-YFb34itVWyE3sMifvPRqvYjXYpjJle2hkq9nIELQOumc1yqxT7jf/+YnNZalS1DoOdWn4GbDmqO/uljf6AuuDA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@graphql-tools/delegate': 8.7.0_graphql@15.8.0 - '@graphql-tools/schema': 8.3.5_graphql@15.8.0 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - graphql: 15.8.0 - tslib: 2.3.1 - value-or-promise: 1.0.11 - dev: true - - /@humanwhocodes/config-array/0.9.5: - resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/object-schema/1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - dev: true - - /@iarna/toml/2.2.5: - resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - dev: true - - /@istanbuljs/load-nyc-config/1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - dev: true - - /@istanbuljs/schema/0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true - - /@jest/console/27.5.1: - resolution: {integrity: sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - chalk: 4.1.2 - jest-message-util: 27.5.1 - jest-util: 27.5.1 - slash: 3.0.0 - dev: true - - /@jest/core/27.5.1: - resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 27.5.1 - '@jest/reporters': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.8.1 - exit: 0.1.2 - graceful-fs: 4.2.9 - jest-changed-files: 27.5.1 - jest-config: 27.5.1 - jest-haste-map: 27.5.1 - jest-message-util: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-resolve-dependencies: 27.5.1 - jest-runner: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - jest-watcher: 27.5.1 - micromatch: 4.0.5 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /@jest/environment/27.5.1: - resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - jest-mock: 27.5.1 - dev: true - - /@jest/fake-timers/27.5.1: - resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@sinonjs/fake-timers': 8.1.0 - '@types/node': 17.0.23 - jest-message-util: 27.5.1 - jest-mock: 27.5.1 - jest-util: 27.5.1 - dev: true - - /@jest/globals/27.5.1: - resolution: {integrity: sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/types': 27.5.1 - expect: 27.5.1 - dev: true - - /@jest/reporters/27.5.1: - resolution: {integrity: sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.0 - graceful-fs: 4.2.9 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.1.0 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.4 - jest-haste-map: 27.5.1 - jest-resolve: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 8.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/source-map/27.5.1: - resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.9 - source-map: 0.6.1 - dev: true - - /@jest/test-result/27.5.1: - resolution: {integrity: sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.5.1 - '@jest/types': 27.5.1 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - dev: true - - /@jest/test-sequencer/27.5.1: - resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.5.1 - graceful-fs: 4.2.9 - jest-haste-map: 27.5.1 - jest-runtime: 27.5.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/transform/27.5.1: - resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.17.8 - '@jest/types': 27.5.1 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.8.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.9 - jest-haste-map: 27.5.1 - jest-regex-util: 27.5.1 - jest-util: 27.5.1 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/types/27.5.1: - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 17.0.23 - '@types/yargs': 16.0.4 - chalk: 4.1.2 - dev: true - - /@josephg/resolvable/1.0.1: - resolution: {integrity: sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==} - dev: false - - /@jridgewell/resolve-uri/3.0.5: - resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/sourcemap-codec/1.4.11: - resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==} - dev: true - - /@jridgewell/trace-mapping/0.3.4: - resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==} - dependencies: - '@jridgewell/resolve-uri': 3.0.5 - '@jridgewell/sourcemap-codec': 1.4.11 - dev: true - - /@n1ru4l/graphql-live-query/0.9.0_graphql@15.8.0: - resolution: {integrity: sha512-BTpWy1e+FxN82RnLz4x1+JcEewVdfmUhV1C6/XYD5AjS7PQp9QFF7K8bCD6gzPTr2l+prvqOyVueQhFJxB1vfg==} - peerDependencies: - graphql: ^15.4.0 || ^16.0.0 - dependencies: - graphql: 15.8.0 - dev: true - - /@next/bundle-analyzer/12.1.1: - resolution: {integrity: sha512-Mxi08C15vLCY3eAR7KEatWkNuQ7H706K/o9tw99qWz0GHl3+taVPad3kOX1xVHdE8GuaMHnbekiug4mYdV+3hQ==} - dependencies: - webpack-bundle-analyzer: 4.3.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@next/env/12.1.1: - resolution: {integrity: sha512-VmTRkfo/IXOQCATndjW3OjKb8zmAuB07eDdzO9XvuXZP87SyvnCYw3jrhUuFhOe/FVsKiloafa5LJfToUpvjUQ==} - dev: false - - /@next/eslint-plugin-next/12.1.1: - resolution: {integrity: sha512-5hd1VFWZzECADhvA+OE+g0CnrRBFZbPm03HbiUtpk7XeluNn7xVxBU6XvNQA+YrQ7qe5jCK9q7R8MbI9R55Y/Q==} - dependencies: - glob: 7.1.7 - dev: true - - /@next/swc-android-arm-eabi/12.1.1: - resolution: {integrity: sha512-phV9H6d1eK1oVC7nmKKcCXvgOWT4K7aLC/beyO6yvbFC4XtBLE21vPwVl7B4ybz5xjSa6TXoR3TMR6vkW6Mv+A==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-android-arm64/12.1.1: - resolution: {integrity: sha512-X5qEz0YeeYT0Gz2wXPAEtRKEuAsLUIEgC/DDfS98t/5Idjv0S4aqIX+TQdzoXP5bwQkIr+mSg+MBIdLtbtnCsA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-arm64/12.1.1: - resolution: {integrity: sha512-bKKSNaTdnO3XPnfaR4NSpPcbs80fdbtOYC2lgtqLzA0bOMioupixMP5GrA/gfJHwh7GRH+A+sbgKQWsqSsYAqQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-x64/12.1.1: - resolution: {integrity: sha512-2VOsA6WLDuDBA6935djohWGGeUIKeQhXwDwu1CKx1b8+6YMMIvFr/y2dpPWoct+5/IjFz84a2MnbABwpoNB9YA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm-gnueabihf/12.1.1: - resolution: {integrity: sha512-1urXtWwqjqbbpJBWeJYz5ATgelKacVNdKIdhfahbsmW+DZGoK5TYovgieyHFYUCyHdTuKeLTVR62ahIRUBv1YA==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-gnu/12.1.1: - resolution: {integrity: sha512-CDD9yFuknDvTOzzDnvfmb58USI5Vu6FUyzw96udKj7KA/n1YrNQ4K8X7KsDCRZoqfRWYceAyj1EpwHkfdiB7bg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-musl/12.1.1: - resolution: {integrity: sha512-nxyjgmbOpZm7gGPj9EV5Cqosoujt+ih/8SO2XG+BetgfAk0+c15793DHVAljNuc8GF9wpzqQnjMMUZ211VmQsg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-gnu/12.1.1: - resolution: {integrity: sha512-L8Cu8kH3Vn2dnRpvcvGGA1TlmDP2WXJ+qDwvjb/ikDXLdRdmFvJwHh45JUGiW2FHed3lGseOgNsuYiDvnT8Cdw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-musl/12.1.1: - resolution: {integrity: sha512-4RAb7L69MoRSggBqUfF3OrtBCUN2zPDi7asfL7bfxEhH10LGzyfil8dT0GVjPOPFz/SyLx3ORd6avGij2IlJUA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-arm64-msvc/12.1.1: - resolution: {integrity: sha512-zvkuNIgOxkAU3RbzWRGCcFasDxWJdhONt2YeRGe39dJERHhEFA1u4HgaZw/SFE/kfrNRUZbXjJNAg3OU/EpPZw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-ia32-msvc/12.1.1: - resolution: {integrity: sha512-GsNDtZ//uKWNVjiwv3YKQYsDXuRWTz8jTmxopf5Ws3dK+zA77hn4o46LBQg0JPCNqTUO6eIOlUBjqSL6ejxmSQ==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-x64-msvc/12.1.1: - resolution: {integrity: sha512-nH5osn/uK9wsjT8Jh1YxMtRrkN5hoCNLQjsEdvfUfb+loQXeYiBd3n/0DUJkf6Scjfv6/htfUTPP3AEa7AbBxQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.13.0 - dev: true - - /@polka/url/1.0.0-next.21: - resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - dev: true - - /@protobufjs/aspromise/1.1.2: - resolution: {integrity: sha1-m4sMxmPWaafY9vXQiToU00jzD78=} - dev: false - - /@protobufjs/base64/1.1.2: - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - dev: false - - /@protobufjs/codegen/2.0.4: - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - dev: false - - /@protobufjs/eventemitter/1.1.0: - resolution: {integrity: sha1-NVy8mLr61ZePntCV85diHx0Ga3A=} - dev: false - - /@protobufjs/fetch/1.1.0: - resolution: {integrity: sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=} - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - dev: false - - /@protobufjs/float/1.0.2: - resolution: {integrity: sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=} - dev: false - - /@protobufjs/inquire/1.1.0: - resolution: {integrity: sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=} - dev: false - - /@protobufjs/path/1.1.2: - resolution: {integrity: sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=} - dev: false - - /@protobufjs/pool/1.1.0: - resolution: {integrity: sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=} - dev: false - - /@protobufjs/utf8/1.1.0: - resolution: {integrity: sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=} - dev: false - - /@reach/auto-id/0.16.0_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-5ssbeP5bCkM39uVsfQCwBBL+KT8YColdnMN5/Eto6Rj7929ql95R3HZUOkKIvj7mgPtEb60BLQxd1P3o6cjbmg==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tslib: 2.3.1 - dev: false - - /@reach/checkbox/0.16.0_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-NgrCd+TKRn8MPEnCo3RUk4+/9y30eewdI/QiQ2Ix19zyoK3s34khQFJFL9ZlcFEOGNmQt5yfO+/uvpPUko7dhg==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/auto-id': 0.16.0_react-dom@17.0.2+react@17.0.2 - '@reach/machine': 0.16.0_react-dom@17.0.2+react@17.0.2 - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tiny-warning: 1.0.3 - tslib: 2.3.1 - dev: false - - /@reach/combobox/0.16.5_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-Csm79qZN3aGpIHnqMYcDH0Y75Z0K8u3j1DzQiRa3w8aDwdmQFocBIo3p9veEytiKm28Dccj/wmmvrCpgVMVH9Q==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/auto-id': 0.16.0_react-dom@17.0.2+react@17.0.2 - '@reach/descendants': 0.16.1_react-dom@17.0.2+react@17.0.2 - '@reach/popover': 0.16.2_react-dom@17.0.2+react@17.0.2 - '@reach/portal': 0.16.2_react-dom@17.0.2+react@17.0.2 - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tiny-warning: 1.0.3 - tslib: 2.3.1 - dev: false - - /@reach/descendants/0.16.1_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-3WZgRnD9O4EORKE31rrduJDiPFNMOjUkATx0zl192ZxMq3qITe4tUj70pS5IbJl/+v9zk78JwyQLvA1pL7XAPA==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tslib: 2.3.1 - dev: false - - /@reach/dialog/0.16.2_b5d7bf22a7b46dd4876f0e926ab0c987: - resolution: {integrity: sha512-qq8oX0cROgTb8LjOKWzzNm4SqaN9b89lJHr7UyVo2aQ6WbeNzZBxqXhGywFP7dkR+hNqOJnrA59PXFWhfttA9A==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/portal': 0.16.2_react-dom@17.0.2+react@17.0.2 - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - react-focus-lock: 2.8.1_03a98942b76c57740a9573edba2d1cc1 - react-remove-scroll: 2.4.4_03a98942b76c57740a9573edba2d1cc1 - tslib: 2.3.1 - transitivePeerDependencies: - - '@types/react' - dev: false - - /@reach/dropdown/0.16.2_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-l4nNiX6iUpMdHQNbZMhgW5APtw0AUwJuRnkqE93vkjvdtrYl/sNJy1Jr6cGG7TrZIABLSOsfwbXU3C+qwJ3ftQ==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/auto-id': 0.16.0_react-dom@17.0.2+react@17.0.2 - '@reach/descendants': 0.16.1_react-dom@17.0.2+react@17.0.2 - '@reach/popover': 0.16.2_react-dom@17.0.2+react@17.0.2 - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tslib: 2.3.1 - dev: false - - /@reach/machine/0.16.0_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-c8SRQz2xGtg5M9aXuuM5pFgaV1ZW5/nyMIYpZzBwHUlNFKGO+VBhwedbnqUxO0yLcbgl3wPvjPh740O3YjqiHg==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - '@xstate/fsm': 1.4.0 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tslib: 2.3.1 - dev: false - - /@reach/menu-button/0.16.2_281a4fa50a045c9112baf635f3bc27a7: - resolution: {integrity: sha512-p4n6tFVaJZHJZEznHWy0YH2Xr3I+W7tsQWAT72PqKGT+uryGRdtgEQqi76f/8cRaw/00ueazBk5lwLG7UKGFaA==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - react-is: ^16.8.0 || 17.x - dependencies: - '@reach/dropdown': 0.16.2_react-dom@17.0.2+react@17.0.2 - '@reach/popover': 0.16.2_react-dom@17.0.2+react@17.0.2 - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - react-is: 17.0.2 - tiny-warning: 1.0.3 - tslib: 2.3.1 - dev: false - - /@reach/observe-rect/1.2.0: - resolution: {integrity: sha512-Ba7HmkFgfQxZqqaeIWWkNK0rEhpxVQHIoVyW1YDSkGsGIXzcaW4deC8B0pZrNSSyLTdIk7y+5olKt5+g0GmFIQ==} - dev: false - - /@reach/popover/0.16.2_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-IwkRrHM7Vt33BEkSXneovymJv7oIToOfTDwRKpuYEB/BWYMAuNfbsRL7KVe6MjkgchDeQzAk24cYY1ztQj5HQQ==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/portal': 0.16.2_react-dom@17.0.2+react@17.0.2 - '@reach/rect': 0.16.0_react-dom@17.0.2+react@17.0.2 - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tabbable: 4.0.0 - tslib: 2.3.1 - dev: false - - /@reach/portal/0.16.2_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-9ur/yxNkuVYTIjAcfi46LdKUvH0uYZPfEp4usWcpt6PIp+WDF57F/5deMe/uGi/B/nfDweQu8VVwuMVrCb97JQ==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tiny-warning: 1.0.3 - tslib: 2.3.1 - dev: false - - /@reach/rect/0.16.0_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-/qO9jQDzpOCdrSxVPR6l674mRHNTqfEjkaxZHluwJ/2qGUtYsA0GSZiF/+wX/yOWeBif1ycxJDa6HusAMJZC5Q==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/observe-rect': 1.2.0 - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tiny-warning: 1.0.3 - tslib: 2.3.1 - dev: false - - /@reach/skip-nav/0.16.0_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-SY4PdNx+hQHbeOr/+qLc+QXdRt9NTVlt0r737bOqY1WURGBIEN9sGgsmIsHluP1/bQuAe0JKdOJ/tXiwQ3Z3ug==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/utils': 0.16.0_react-dom@17.0.2+react@17.0.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tslib: 2.3.1 - dev: false - - /@reach/utils/0.16.0_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-PCggBet3qaQmwFNcmQ/GqHSefadAFyNCUekq9RrWoaU9hh/S4iaFgf2MBMdM47eQj5i/Bk0Mm07cP/XPFlkN+Q==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tiny-warning: 1.0.3 - tslib: 2.3.1 - dev: false - - /@reach/visually-hidden/0.16.0_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-IIayZ3jzJtI5KfcfRVtOMFkw2ef/1dMT8D9BUuFcU2ORZAWLNvnzj1oXNoIfABKl5wtsLjY6SGmkYQ+tMPN8TA==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - tslib: 2.3.1 - dev: false - - /@rushstack/eslint-patch/1.0.8: - resolution: {integrity: sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw==} - dev: true - - /@samverschueren/stream-to-observable/0.3.1_rxjs@6.6.7: - resolution: {integrity: sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==} - engines: {node: '>=6'} - peerDependencies: - rxjs: '*' - zen-observable: '*' - peerDependenciesMeta: - rxjs: - optional: true - zen-observable: - optional: true - dependencies: - any-observable: 0.3.0 - rxjs: 6.6.7 - dev: true - - /@sindresorhus/is/0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} - dev: true - - /@sinonjs/commons/1.8.3: - resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} - dependencies: - type-detect: 4.0.8 - dev: true - - /@sinonjs/fake-timers/8.1.0: - resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} - dependencies: - '@sinonjs/commons': 1.8.3 - dev: true - - /@szmarczak/http-timer/1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} - dependencies: - defer-to-connect: 1.1.3 - dev: true - - /@textlint/ast-node-types/12.1.1: - resolution: {integrity: sha512-5/XK9S1177UYetOY6407o1RDuNVndaYfuzsZwhmo52V367s4ZuUD2064WhbmCd6TPyKD4dVr2zoWjfNDfzUZQg==} - dev: false - - /@textlint/markdown-to-ast/12.0.2: - resolution: {integrity: sha512-xAJ4U/fOL7FoX4bYeYRCsSIeTxFqzKd944AsVxAYrz2ZfKH0TtBSNDDtN22uBEXOrSCCR12Z7QuMcp+URyYWlw==} - dependencies: - '@textlint/ast-node-types': 12.1.1 - debug: 4.3.4 - remark-footnotes: 3.0.0 - remark-frontmatter: 3.0.0 - remark-gfm: 1.0.0 - remark-parse: 9.0.0 - traverse: 0.6.6 - unified: 9.2.2 - transitivePeerDependencies: - - supports-color - dev: false - - /@tootallnate/once/1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - - /@tootallnate/once/2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - dev: true - - /@types/accepts/1.3.5: - resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==} - dependencies: - '@types/node': 17.0.23 - dev: false - - /@types/babel__core/7.1.19: - resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} - dependencies: - '@babel/parser': 7.17.8 - '@babel/types': 7.17.0 - '@types/babel__generator': 7.6.4 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.14.2 - dev: true - - /@types/babel__generator/7.6.4: - resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@types/babel__template/7.4.1: - resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} - dependencies: - '@babel/parser': 7.17.8 - '@babel/types': 7.17.0 - dev: true - - /@types/babel__traverse/7.14.2: - resolution: {integrity: sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==} - dependencies: - '@babel/types': 7.17.0 - dev: true - - /@types/base-64/1.0.0: - resolution: {integrity: sha512-AvCJx/HrfYHmOQRFdVvgKMplXfzTUizmh0tz9GFTpDePWgCY4uoKll84zKlaRoeiYiCr7c9ZnqSTzkl0BUVD6g==} - dev: true - - /@types/bcryptjs/2.4.2: - resolution: {integrity: sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ==} - dev: true - - /@types/body-parser/1.19.2: - resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} - dependencies: - '@types/connect': 3.4.35 - '@types/node': 17.0.23 - dev: false - - /@types/connect/3.4.35: - resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} - dependencies: - '@types/node': 17.0.23 - dev: false - - /@types/content-disposition/0.5.4: - resolution: {integrity: sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==} - dev: false - - /@types/cookie/0.3.3: - resolution: {integrity: sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==} - dev: false - - /@types/cookie/0.4.1: - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - dev: true - - /@types/cookies/0.7.7: - resolution: {integrity: sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==} - dependencies: - '@types/connect': 3.4.35 - '@types/express': 4.17.13 - '@types/keygrip': 1.0.2 - '@types/node': 17.0.23 - dev: false - - /@types/debug/4.1.7: - resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} - dependencies: - '@types/ms': 0.7.31 - dev: false - - /@types/draft-js/0.11.9: - resolution: {integrity: sha512-cQJBZjjIlGaPA1tOY+wGz2KhlPtAAZOIXpUvGPxPRw5uzZ2tcj8m6Yu1QDV9YgP36+cqE3cUvgkARBzgUiuI/Q==} - dependencies: - '@types/react': 17.0.43 - immutable: 3.7.6 - dev: true - - /@types/express-serve-static-core/4.17.28: - resolution: {integrity: sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==} - dependencies: - '@types/node': 17.0.23 - '@types/qs': 6.9.7 - '@types/range-parser': 1.2.4 - dev: false - - /@types/express/4.17.13: - resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==} - dependencies: - '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 4.17.28 - '@types/qs': 6.9.7 - '@types/serve-static': 1.13.10 - dev: false - - /@types/fs-capacitor/2.0.0: - resolution: {integrity: sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==} - dependencies: - '@types/node': 17.0.23 - dev: false - - /@types/graceful-fs/4.1.5: - resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} - dependencies: - '@types/node': 17.0.23 - dev: true - - /@types/hast/2.3.4: - resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /@types/http-assert/1.5.3: - resolution: {integrity: sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==} - dev: false - - /@types/http-errors/1.8.2: - resolution: {integrity: sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==} - dev: false - - /@types/istanbul-lib-coverage/2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: true - - /@types/istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - dev: true - - /@types/istanbul-reports/3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} - dependencies: - '@types/istanbul-lib-report': 3.0.0 - dev: true - - /@types/jest/27.4.1: - resolution: {integrity: sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==} - dependencies: - jest-matcher-utils: 27.5.1 - pretty-format: 27.5.1 - dev: true - - /@types/js-yaml/4.0.5: - resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} - dev: true - - /@types/json-stable-stringify/1.0.34: - resolution: {integrity: sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==} - dev: true - - /@types/json5/0.0.29: - resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} - dev: true - - /@types/jsonwebtoken/8.5.8: - resolution: {integrity: sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==} - dependencies: - '@types/node': 17.0.23 - dev: true - - /@types/keygrip/1.0.2: - resolution: {integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==} - dev: false - - /@types/koa-compose/3.2.5: - resolution: {integrity: sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==} - dependencies: - '@types/koa': 2.13.4 - dev: false - - /@types/koa/2.13.4: - resolution: {integrity: sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==} - dependencies: - '@types/accepts': 1.3.5 - '@types/content-disposition': 0.5.4 - '@types/cookies': 0.7.7 - '@types/http-assert': 1.5.3 - '@types/http-errors': 1.8.2 - '@types/keygrip': 1.0.2 - '@types/koa-compose': 3.2.5 - '@types/node': 17.0.23 - dev: false - - /@types/long/4.0.1: - resolution: {integrity: sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==} - dev: false - - /@types/mdast/3.0.10: - resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /@types/mdurl/1.0.2: - resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} - dev: false - - /@types/mime/1.3.2: - resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} - dev: false - - /@types/minimatch/3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - dev: true - - /@types/ms/0.7.31: - resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} - dev: false - - /@types/node/10.17.60: - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} - dev: false - - /@types/node/17.0.23: - resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==} - - /@types/parse-json/4.0.0: - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} - dev: true - - /@types/prettier/2.4.4: - resolution: {integrity: sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==} - dev: true - - /@types/prismjs/1.26.0: - resolution: {integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==} - dev: true - - /@types/prop-types/15.7.4: - resolution: {integrity: sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==} - dev: true - - /@types/puppeteer/5.4.5: - resolution: {integrity: sha512-lxCjpDEY+DZ66+W3x5Af4oHnEmUXt0HuaRzkBGE2UZiZEp/V1d3StpLPlmNVu/ea091bdNmVPl44lu8Wy/0ZCA==} - dependencies: - '@types/node': 17.0.23 - dev: true - - /@types/qs/6.9.7: - resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} - dev: false - - /@types/range-parser/1.2.4: - resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} - dev: false - - /@types/react-dom/17.0.14: - resolution: {integrity: sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==} - dependencies: - '@types/react': 17.0.43 - dev: true - - /@types/react-test-renderer/17.0.1: - resolution: {integrity: sha512-3Fi2O6Zzq/f3QR9dRnlnHso9bMl7weKCviFmfF6B4LS1Uat6Hkm15k0ZAQuDz+UBq6B3+g+NM6IT2nr5QgPzCw==} - dependencies: - '@types/react': 17.0.43 - dev: true - - /@types/react/17.0.43: - resolution: {integrity: sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==} - dependencies: - '@types/prop-types': 15.7.4 - '@types/scheduler': 0.16.2 - csstype: 3.0.11 - dev: true - - /@types/scheduler/0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - dev: true - - /@types/serve-static/1.13.10: - resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==} - dependencies: - '@types/mime': 1.3.2 - '@types/node': 17.0.23 - dev: false - - /@types/stack-utils/2.0.1: - resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - dev: true - - /@types/ua-parser-js/0.7.36: - resolution: {integrity: sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==} - dev: true - - /@types/unist/2.0.6: - resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} - dev: false - - /@types/use-subscription/1.0.0: - resolution: {integrity: sha512-0WWZ5GUDKMXUY/1zy4Ur5/zsC0s/B+JjXfHdkvx6JgDNZzZV5eW+KKhDqsTGyqX56uh99gwGwbsKbVwkcVIKQA==} - dev: true - - /@types/webidl-conversions/6.1.1: - resolution: {integrity: sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==} - dev: false - - /@types/websocket/1.0.5: - resolution: {integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==} - dependencies: - '@types/node': 17.0.23 - dev: true - - /@types/whatwg-url/8.2.1: - resolution: {integrity: sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==} - dependencies: - '@types/node': 17.0.23 - '@types/webidl-conversions': 6.1.1 - dev: false - - /@types/ws/7.4.7: - resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} - dependencies: - '@types/node': 17.0.23 - dev: false - - /@types/ws/8.5.3: - resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} - dependencies: - '@types/node': 17.0.23 - dev: true - - /@types/yargs-parser/21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - dev: true - - /@types/yargs/16.0.4: - resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: true - - /@typescript-eslint/parser/5.10.1_eslint@8.12.0+typescript@4.6.3: - resolution: {integrity: sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.10.1 - '@typescript-eslint/types': 5.10.1 - '@typescript-eslint/typescript-estree': 5.10.1_typescript@4.6.3 - debug: 4.3.4 - eslint: 8.12.0 - typescript: 4.6.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager/5.10.1: - resolution: {integrity: sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.10.1 - '@typescript-eslint/visitor-keys': 5.10.1 - dev: true - - /@typescript-eslint/types/5.10.1: - resolution: {integrity: sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/typescript-estree/5.10.1_typescript@4.6.3: - resolution: {integrity: sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.10.1 - '@typescript-eslint/visitor-keys': 5.10.1 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/visitor-keys/5.10.1: - resolution: {integrity: sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.10.1 - eslint-visitor-keys: 3.3.0 - dev: true - - /@wry/equality/0.1.11: - resolution: {integrity: sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==} - dependencies: - tslib: 1.14.1 - dev: false - - /@xstate/fsm/1.4.0: - resolution: {integrity: sha512-uTHDeu2xI5E1IFwf37JFQM31RrH7mY7877RqPBS4ZqSNUwoLDuct8AhBWaXGnVizBAYyimVwgCyGa9z/NiRhXA==} - dev: false - - /abab/2.0.5: - resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==} - - /abort-controller/3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - dependencies: - event-target-shim: 5.0.1 - dev: true - - /accept/3.1.3: - resolution: {integrity: sha512-OgOEAidVEOKPup+Gv2+2wdH2AgVKI9LxsJ4hicdJ6cY0faUuZdZoi56kkXWlHp9qicN1nWQLmW5ZRGk+SBS5xg==} - deprecated: This module has moved and is now available at @hapi/accept. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. - dependencies: - boom: 7.3.0 - hoek: 6.1.3 - dev: false - - /acorn-globals/6.0.0: - resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - - /acorn-jsx/5.3.2_acorn@8.7.0: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.7.0 - dev: true - - /acorn-walk/7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - - /acorn-walk/8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - - /acorn/8.7.0: - resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} - engines: {node: '>=0.4.0'} - hasBin: true - - /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - - /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /ansi-escapes/3.2.0: - resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} - engines: {node: '>=4'} - dev: true - - /ansi-escapes/4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - - /ansi-regex/2.1.1: - resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=} - engines: {node: '>=0.10.0'} - - /ansi-regex/3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - dev: true - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-styles/2.2.1: - resolution: {integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=} - engines: {node: '>=0.10.0'} - dev: true - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /ansi-styles/5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - - /any-observable/0.3.0: - resolution: {integrity: sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==} - engines: {node: '>=6'} - dev: true - - /anymatch/3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /apollo-cache-control/0.14.0_graphql@15.8.0: - resolution: {integrity: sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==} - engines: {node: '>=6.0'} - deprecated: The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details. - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - apollo-server-env: 3.1.0 - apollo-server-plugin-base: 0.13.0_graphql@15.8.0 - graphql: 15.8.0 - transitivePeerDependencies: - - encoding - dev: false - - /apollo-datasource/0.9.0: - resolution: {integrity: sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==} - engines: {node: '>=6'} - dependencies: - apollo-server-caching: 0.7.0 - apollo-server-env: 3.1.0 - transitivePeerDependencies: - - encoding - dev: false - - /apollo-graphql/0.9.5_graphql@15.8.0: - resolution: {integrity: sha512-RGt5k2JeBqrmnwRM0VOgWFiGKlGJMfmiif/4JvdaEqhMJ+xqe/9cfDYzXfn33ke2eWixsAbjEbRfy8XbaN9nTw==} - engines: {node: '>=6'} - peerDependencies: - graphql: ^14.2.1 || ^15.0.0 - dependencies: - core-js-pure: 3.21.1 - graphql: 15.8.0 - lodash.sortby: 4.7.0 - sha.js: 2.4.11 - dev: false - - /apollo-link/1.2.14_graphql@15.8.0: - resolution: {integrity: sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==} - peerDependencies: - graphql: ^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - apollo-utilities: 1.3.4_graphql@15.8.0 - graphql: 15.8.0 - ts-invariant: 0.4.4 - tslib: 1.14.1 - zen-observable-ts: 0.8.21 - dev: false - - /apollo-reporting-protobuf/0.8.0: - resolution: {integrity: sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==} - dependencies: - '@apollo/protobufjs': 1.2.2 - dev: false - - /apollo-server-caching/0.7.0: - resolution: {integrity: sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==} - engines: {node: '>=6'} - dependencies: - lru-cache: 6.0.0 - dev: false - - /apollo-server-core/2.25.3_graphql@15.8.0: - resolution: {integrity: sha512-Midow3uZoJ9TjFNeCNSiWElTVZlvmB7G7tG6PPoxIR9Px90/v16Q6EzunDIO0rTJHRC3+yCwZkwtf8w2AcP0sA==} - engines: {node: '>=6'} - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - '@apollographql/apollo-tools': 0.5.2 - '@apollographql/graphql-playground-html': 1.6.27 - '@apollographql/graphql-upload-8-fork': 8.1.3_graphql@15.8.0 - '@josephg/resolvable': 1.0.1 - '@types/ws': 7.4.7 - apollo-cache-control: 0.14.0_graphql@15.8.0 - apollo-datasource: 0.9.0 - apollo-graphql: 0.9.5_graphql@15.8.0 - apollo-reporting-protobuf: 0.8.0 - apollo-server-caching: 0.7.0 - apollo-server-env: 3.1.0 - apollo-server-errors: 2.5.0_graphql@15.8.0 - apollo-server-plugin-base: 0.13.0_graphql@15.8.0 - apollo-server-types: 0.9.0_graphql@15.8.0 - apollo-tracing: 0.15.0_graphql@15.8.0 - async-retry: 1.3.3 - fast-json-stable-stringify: 2.1.0 - graphql: 15.8.0 - graphql-extensions: 0.15.0_graphql@15.8.0 - graphql-tag: 2.12.6_graphql@15.8.0 - graphql-tools: 4.0.8_graphql@15.8.0 - loglevel: 1.8.0 - lru-cache: 6.0.0 - sha.js: 2.4.11 - subscriptions-transport-ws: 0.9.19_graphql@15.8.0 - uuid: 8.3.2 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - dev: false - - /apollo-server-env/3.1.0: - resolution: {integrity: sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==} - engines: {node: '>=6'} - dependencies: - node-fetch: 2.6.7 - util.promisify: 1.1.1 - transitivePeerDependencies: - - encoding - dev: false - - /apollo-server-errors/2.5.0_graphql@15.8.0: - resolution: {integrity: sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==} - engines: {node: '>=6'} - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - graphql: 15.8.0 - dev: false - - /apollo-server-micro/2.25.3_graphql@15.8.0: - resolution: {integrity: sha512-nQ2LspMYcK0B+6+dn3NCqIX9FRoAJ1Z2WtPKeBSI78R+GUQ3hpRPnekcTZs0c1rMusjJ4ku+dKKE9sdYdX5H3A==} - dependencies: - '@apollographql/graphql-playground-html': 1.6.27 - accept: 3.1.3 - apollo-server-core: 2.25.3_graphql@15.8.0 - apollo-server-types: 0.9.0_graphql@15.8.0 - micro: 9.3.4 - transitivePeerDependencies: - - bufferutil - - encoding - - graphql - - utf-8-validate - dev: false - - /apollo-server-plugin-base/0.13.0_graphql@15.8.0: - resolution: {integrity: sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==} - engines: {node: '>=6'} - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - apollo-server-types: 0.9.0_graphql@15.8.0 - graphql: 15.8.0 - transitivePeerDependencies: - - encoding - dev: false - - /apollo-server-types/0.9.0_graphql@15.8.0: - resolution: {integrity: sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==} - engines: {node: '>=6'} - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - apollo-reporting-protobuf: 0.8.0 - apollo-server-caching: 0.7.0 - apollo-server-env: 3.1.0 - graphql: 15.8.0 - transitivePeerDependencies: - - encoding - dev: false - - /apollo-tracing/0.15.0_graphql@15.8.0: - resolution: {integrity: sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==} - engines: {node: '>=4.0'} - deprecated: The `apollo-tracing` package is no longer part of Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#tracing for details - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - apollo-server-env: 3.1.0 - apollo-server-plugin-base: 0.13.0_graphql@15.8.0 - graphql: 15.8.0 - transitivePeerDependencies: - - encoding - dev: false - - /apollo-utilities/1.3.4_graphql@15.8.0: - resolution: {integrity: sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==} - peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - '@wry/equality': 0.1.11 - fast-json-stable-stringify: 2.1.0 - graphql: 15.8.0 - ts-invariant: 0.4.4 - tslib: 1.14.1 - dev: false - - /aproba/1.2.0: - resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} - dev: false - - /are-we-there-yet/1.1.7: - resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} - dependencies: - delegates: 1.0.0 - readable-stream: 2.3.7 - dev: false - - /arg/4.1.0: - resolution: {integrity: sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==} - dev: false - - /arg/4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true - - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: true - - /argparse/2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true - - /aria-query/4.2.2: - resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} - engines: {node: '>=6.0'} - dependencies: - '@babel/runtime': 7.17.8 - '@babel/runtime-corejs3': 7.17.8 - dev: true - - /array-differ/3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} - dev: true - - /array-includes/3.1.4: - resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - get-intrinsic: 1.1.1 - is-string: 1.0.7 - dev: true - - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /array.prototype.flat/1.2.5: - resolution: {integrity: sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: true - - /array.prototype.flatmap/1.2.5: - resolution: {integrity: sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: true - - /arrify/2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - dev: true - - /asap/2.0.6: - resolution: {integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=} - - /ast-types-flow/0.0.7: - resolution: {integrity: sha1-9wtzXGvKGlycItmCw+Oef+ujva0=} - dev: true - - /async-retry/1.3.3: - resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - dependencies: - retry: 0.13.1 - dev: false - - /asynckit/0.4.0: - resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} - - /attr-accept/2.2.2: - resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} - engines: {node: '>=4'} - dev: false - - /auto-bind/4.0.0: - resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} - engines: {node: '>=8'} - dev: true - - /axe-core/4.4.1: - resolution: {integrity: sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==} - engines: {node: '>=4'} - dev: true - - /axobject-query/2.2.0: - resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} - dev: true - - /babel-jest/27.5.1_@babel+core@7.17.8: - resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.17.8 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/babel__core': 7.1.19 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1_@babel+core@7.17.8 - chalk: 4.1.2 - graceful-fs: 4.2.9 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-dynamic-import-node/2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - dependencies: - object.assign: 4.1.2 - dev: true - - /babel-plugin-istanbul/6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.16.7 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.1.0 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-jest-hoist/27.5.1: - resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/template': 7.16.7 - '@babel/types': 7.17.0 - '@types/babel__core': 7.1.19 - '@types/babel__traverse': 7.14.2 - dev: true - - /babel-plugin-syntax-trailing-function-commas/7.0.0-beta.0: - resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} - dev: true - - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.17.8: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.17.8 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.8 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.17.8 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.8 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.17.8 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.8 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.8 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.8 - dev: true - - /babel-preset-fbjs/3.4.0_@babel+core@7.17.8: - resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.17.8 - '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-proposal-object-rest-spread': 7.17.3_@babel+core@7.17.8 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.8 - '@babel/plugin-syntax-flow': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.8 - '@babel/plugin-transform-arrow-functions': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-block-scoping': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-classes': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-computed-properties': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-destructuring': 7.17.7_@babel+core@7.17.8 - '@babel/plugin-transform-flow-strip-types': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-for-of': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-literals': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-modules-commonjs': 7.17.7_@babel+core@7.17.8 - '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-react-display-name': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-react-jsx': 7.17.3_@babel+core@7.17.8 - '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-spread': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.17.8 - babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-preset-jest/27.5.1_@babel+core@7.17.8: - resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.17.8 - babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.8 - dev: true - - /backo2/1.0.2: - resolution: {integrity: sha1-MasayLEpNjRj41s+u2n038+6eUc=} - - /bail/1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - dev: false - - /bail/2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - dev: false - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /base-64/1.0.0: - resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} - dev: false - - /base64-js/1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - /bcryptjs/2.4.3: - resolution: {integrity: sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=} - dev: false - - /binary-extensions/2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /bl/4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.0 - - /boom/7.3.0: - resolution: {integrity: sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A==} - deprecated: This module has moved and is now available at @hapi/boom. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. - dependencies: - hoek: 6.1.3 - dev: false - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /browser-process-hrtime/1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - - /browserslist/4.20.2: - resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001320 - electron-to-chromium: 1.4.96 - escalade: 3.1.1 - node-releases: 2.0.2 - picocolors: 1.0.0 - dev: true - - /bs-logger/0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - dependencies: - fast-json-stable-stringify: 2.1.0 - dev: true - - /bser/2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - dev: true - - /bson/4.6.2: - resolution: {integrity: sha512-VeJKHShcu1b/ugl0QiujlVuBepab714X9nNyBdA1kfekuDGecxgpTA2Z6nYbagrWFeiIyzSWIOzju3lhj+RNyQ==} - engines: {node: '>=6.9.0'} - dependencies: - buffer: 5.7.1 - dev: false - - /buffer-equal-constant-time/1.0.1: - resolution: {integrity: sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=} - - /buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true - - /buffer/5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - /busboy/0.3.1: - resolution: {integrity: sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==} - engines: {node: '>=4.5.0'} - dependencies: - dicer: 0.3.0 - dev: false - - /bytes/3.0.0: - resolution: {integrity: sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=} - engines: {node: '>= 0.8'} - dev: false - - /cacheable-request/6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.2 - get-stream: 5.2.0 - http-cache-semantics: 4.1.0 - keyv: 3.1.0 - lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 - dev: true - - /call-bind/1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.1.1 - - /callsites/3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /camel-case/4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - dependencies: - pascal-case: 3.1.2 - tslib: 2.3.1 - dev: true - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true - - /camelcase/6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true - - /caniuse-lite/1.0.30001320: - resolution: {integrity: sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==} - - /capital-case/1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - upper-case-first: 2.0.2 - dev: true - - /ccount/1.1.0: - resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} - dev: false - - /ccount/2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - dev: false - - /chalk/1.1.3: - resolution: {integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=} - engines: {node: '>=0.10.0'} - dependencies: - ansi-styles: 2.2.1 - escape-string-regexp: 1.0.5 - has-ansi: 2.0.0 - strip-ansi: 3.0.1 - supports-color: 2.0.0 - dev: true - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - - /chalk/3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /chalk/4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /change-case-all/1.0.14: - resolution: {integrity: sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==} - 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 - dev: true - - /change-case/4.1.2: - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} - dependencies: - 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.3.1 - dev: true - - /char-regex/1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true - - /character-entities-html4/2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - dev: false - - /character-entities-legacy/1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: false - - /character-entities-legacy/3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - dev: false - - /character-entities/1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: false - - /character-entities/2.0.1: - resolution: {integrity: sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==} - dev: false - - /character-reference-invalid/1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: false - - /chardet/0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true - - /chokidar/3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.2 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /chownr/1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: false - - /ci-info/3.3.0: - resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==} - dev: true - - /cjs-module-lexer/1.2.2: - resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} - dev: true - - /classnames/2.3.1: - resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==} - dev: false - - /cli-cursor/2.1.0: - resolution: {integrity: sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=} - engines: {node: '>=4'} - dependencies: - restore-cursor: 2.0.0 - dev: true - - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-spinners/2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} - dev: true - - /cli-truncate/0.2.1: - resolution: {integrity: sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=} - engines: {node: '>=0.10.0'} - dependencies: - slice-ansi: 0.0.4 - string-width: 1.0.2 - dev: true - - /cli-width/3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: true - - /cliui/6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - dev: true - - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - - /clone-response/1.0.2: - resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} - dependencies: - mimic-response: 1.0.1 - dev: true - - /clone/1.0.4: - resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=} - engines: {node: '>=0.8'} - dev: true - - /co/4.6.0: - resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - /code-point-at/1.1.0: - resolution: {integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=} - engines: {node: '>=0.10.0'} - - /collect-v8-coverage/1.0.1: - resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} - dev: true - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - - /color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} - dev: true - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - /color-string/1.9.0: - resolution: {integrity: sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==} - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - dev: false - - /color/4.2.1: - resolution: {integrity: sha512-MFJr0uY4RvTQUKvPq7dh9grVOTYSFeXja2mBXioCGjnjJoXrAp9jJ1NQTDR73c9nwBSAQiNKloKl5zq9WB9UPw==} - engines: {node: '>=12.5.0'} - dependencies: - color-convert: 2.0.1 - color-string: 1.9.0 - dev: false - - /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - - /comma-separated-tokens/2.0.2: - resolution: {integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==} - dev: false - - /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: false - - /commander/6.2.1: - resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} - engines: {node: '>= 6'} - dev: true - - /common-tags/1.8.2: - resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} - engines: {node: '>=4.0.0'} - dev: true - - /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - dev: true - - /console-control-strings/1.1.0: - resolution: {integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=} - dev: false - - /constant-case/3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - upper-case: 2.0.2 - dev: true - - /content-type/1.0.4: - resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} - engines: {node: '>= 0.6'} - dev: false - - /convert-source-map/1.8.0: - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} - dependencies: - safe-buffer: 5.1.2 - dev: true - - /cookie/0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} - dev: false - - /core-js-pure/3.21.1: - resolution: {integrity: sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==} - requiresBuild: true - - /core-js/3.21.1: - resolution: {integrity: sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==} - requiresBuild: true - dev: false - - /core-util-is/1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false - - /cosmiconfig-toml-loader/1.0.0: - resolution: {integrity: sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==} - dependencies: - '@iarna/toml': 2.2.5 - dev: true - - /cosmiconfig/7.0.1: - resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: true - - /create-require/1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true - - /cross-fetch/3.1.5: - resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} - dependencies: - node-fetch: 2.6.7 - transitivePeerDependencies: - - encoding - - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /cross-undici-fetch/0.1.27: - resolution: {integrity: sha512-Oz/zXdh2HCq55xARCwFAYtKlyGp3VFAIfOEexN6nVm06rD6O5g47fKp7fggf/kBtc7iG09asNoGW+CUwIi4Efg==} - dependencies: - abort-controller: 3.0.0 - form-data-encoder: 1.7.2 - formdata-node: 4.3.2 - node-fetch: 2.6.7 - undici: 4.16.0 - web-streams-polyfill: 3.2.0 - transitivePeerDependencies: - - encoding - dev: true - - /css-selector-parser/1.4.1: - resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} - dev: false - - /cssfilter/0.0.10: - resolution: {integrity: sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=} - dev: false - - /cssom/0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - - /cssstyle/2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - - /csstype/3.0.11: - resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} - dev: true - - /cuid/2.1.8: - resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==} - dev: false - - /damerau-levenshtein/1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: true - - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - - /dataloader/2.0.0: - resolution: {integrity: sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==} - dev: true - - /date-fns/1.30.1: - resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} - dev: true - - /date-fns/2.28.0: - resolution: {integrity: sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==} - engines: {node: '>=0.11'} - dev: false - - /debounce/1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - dev: true - - /debug/2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - dependencies: - ms: 2.0.0 - dev: true - - /debug/3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - dependencies: - ms: 2.1.3 - dev: true - - /debug/4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /decamelize/1.2.0: - resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} - engines: {node: '>=0.10.0'} - dev: true - - /decimal.js/10.3.1: - resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} - - /decode-named-character-reference/1.0.1: - resolution: {integrity: sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==} - dependencies: - character-entities: 2.0.1 - dev: false - - /decompress-response/3.3.0: - resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} - engines: {node: '>=4'} - dependencies: - mimic-response: 1.0.1 - dev: true - - /decompress-response/6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - dependencies: - mimic-response: 3.1.0 - dev: false - - /dedent/0.7.0: - resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} - dev: true - - /deep-extend/0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - /deep-is/0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - /deepmerge/2.2.1: - resolution: {integrity: sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==} - engines: {node: '>=0.10.0'} - dev: false - - /deepmerge/4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} - engines: {node: '>=0.10.0'} - dev: true - - /defaults/1.0.3: - resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=} - dependencies: - clone: 1.0.4 - dev: true - - /defer-to-connect/1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: true - - /define-properties/1.1.3: - resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} - engines: {node: '>= 0.4'} - dependencies: - object-keys: 1.1.1 - - /delayed-stream/1.0.0: - resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} - engines: {node: '>=0.4.0'} - - /delegates/1.0.0: - resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=} - dev: false - - /denque/2.0.1: - resolution: {integrity: sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==} - engines: {node: '>=0.10'} - dev: false - - /depd/1.1.1: - resolution: {integrity: sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=} - engines: {node: '>= 0.6'} - dev: false - - /depd/1.1.2: - resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=} - engines: {node: '>= 0.6'} - dev: false - - /dependency-graph/0.11.0: - resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} - engines: {node: '>= 0.6.0'} - dev: true - - /deprecated-decorator/0.1.6: - resolution: {integrity: sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=} - dev: false - - /dequal/2.0.2: - resolution: {integrity: sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==} - engines: {node: '>=6'} - dev: false - - /detect-indent/6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true - - /detect-libc/2.0.1: - resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} - engines: {node: '>=8'} - dev: false - - /detect-newline/3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true - - /detect-node-es/1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - dev: false - - /dicer/0.3.0: - resolution: {integrity: sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==} - engines: {node: '>=4.5.0'} - dependencies: - streamsearch: 0.1.2 - dev: false - - /diff-sequences/27.5.1: - resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /diff/4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true - - /diff/5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: false - - /dir-glob/3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /doctrine/2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /doctrine/3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - - /dot-case/3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - dev: true - - /dotenv/16.0.0: - resolution: {integrity: sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==} - engines: {node: '>=12'} - dev: true - - /draft-js/0.11.7_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==} - peerDependencies: - react: '>=0.14.0' - react-dom: '>=0.14.0' - dependencies: - fbjs: 2.0.0 - immutable: 3.7.6 - object-assign: 4.1.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - transitivePeerDependencies: - - encoding - dev: false - - /draftjs-md-converter/1.5.2: - resolution: {integrity: sha512-Au4ZMdrqc2YxRWknBuvuvjcA/LjGuZ6KvL6K9nWsH5LKyCxwisxWV/s7idiFHN0EwRyGQ50+rbu3bMfr118BFw==} - engines: {node: '>=10.0.0'} - dependencies: - '@textlint/markdown-to-ast': 12.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /dset/3.1.1: - resolution: {integrity: sha512-hYf+jZNNqJBD2GiMYb+5mqOIX4R4RRHXU3qWMWYN+rqcR2/YpRL2bUHr8C8fU+5DNvqYjJ8YvMGSLuVPWU1cNg==} - engines: {node: '>=4'} - dev: true - - /duplexer/0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: true - - /duplexer3/0.1.4: - resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} - dev: true - - /ecdsa-sig-formatter/1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - dependencies: - safe-buffer: 5.2.1 - - /electron-to-chromium/1.4.96: - resolution: {integrity: sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw==} - dev: true - - /elegant-spinner/1.0.1: - resolution: {integrity: sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=} - engines: {node: '>=0.10.0'} - dev: true - - /emittery/0.8.1: - resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} - engines: {node: '>=10'} - dev: true - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /emoji-regex/9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - - /es-abstract/1.19.1: - resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - es-to-primitive: 1.2.1 - function-bind: 1.1.1 - get-intrinsic: 1.1.1 - get-symbol-description: 1.0.0 - has: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.3 - is-callable: 1.2.4 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.1 - is-string: 1.0.7 - is-weakref: 1.0.2 - object-inspect: 1.12.0 - object-keys: 1.1.1 - object.assign: 4.1.2 - string.prototype.trimend: 1.0.4 - string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.1 - - /es-to-primitive/1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.4 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-html/1.0.3: - resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} - dev: false - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} - engines: {node: '>=0.8.0'} - dev: true - - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true - - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - /escodegen/2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - - /eslint-config-next/12.1.1_5c7b32850701aad98dda14db9678593e: - resolution: {integrity: sha512-+Ql9F07Pafs+cDgy8Zp0F8FxCBq7ke02ZyC2/MMEiGAX+WlnuUCrboBDnfzmHJpAAkcBPjUthunu6LBnF9KWIQ==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - next: '>=10.2.0' - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@next/eslint-plugin-next': 12.1.1 - '@rushstack/eslint-patch': 1.0.8 - '@typescript-eslint/parser': 5.10.1_eslint@8.12.0+typescript@4.6.3 - eslint: 8.12.0 - eslint-import-resolver-node: 0.3.4 - eslint-import-resolver-typescript: 2.4.0_5ed5bdacbcdb2439c26fb46c22005051 - eslint-plugin-import: 2.25.2_eslint@8.12.0 - eslint-plugin-jsx-a11y: 6.5.1_eslint@8.12.0 - eslint-plugin-react: 7.29.1_eslint@8.12.0 - eslint-plugin-react-hooks: 4.3.0_eslint@8.12.0 - next: 12.1.1_react-dom@17.0.2+react@17.0.2 - typescript: 4.6.3 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-import-resolver-node/0.3.4: - resolution: {integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==} - dependencies: - debug: 2.6.9 - resolve: 1.22.0 - dev: true - - /eslint-import-resolver-node/0.3.6: - resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} - dependencies: - debug: 3.2.7 - resolve: 1.22.0 - dev: true - - /eslint-import-resolver-typescript/2.4.0_5ed5bdacbcdb2439c26fb46c22005051: - resolution: {integrity: sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA==} - engines: {node: '>=4'} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - dependencies: - debug: 4.3.4 - eslint: 8.12.0 - eslint-plugin-import: 2.25.2_eslint@8.12.0 - glob: 7.2.0 - is-glob: 4.0.3 - resolve: 1.22.0 - tsconfig-paths: 3.14.1 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils/2.7.3: - resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} - engines: {node: '>=4'} - dependencies: - debug: 3.2.7 - find-up: 2.1.0 - dev: true - - /eslint-plugin-import/2.25.2_eslint@8.12.0: - resolution: {integrity: sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - dependencies: - array-includes: 3.1.4 - array.prototype.flat: 1.2.5 - debug: 2.6.9 - doctrine: 2.1.0 - eslint: 8.12.0 - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3 - has: 1.0.3 - is-core-module: 2.8.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.5 - resolve: 1.22.0 - tsconfig-paths: 3.14.1 - dev: true - - /eslint-plugin-jsx-a11y/6.5.1_eslint@8.12.0: - resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - '@babel/runtime': 7.17.8 - aria-query: 4.2.2 - array-includes: 3.1.4 - ast-types-flow: 0.0.7 - axe-core: 4.4.1 - axobject-query: 2.2.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 8.12.0 - has: 1.0.3 - jsx-ast-utils: 3.2.1 - language-tags: 1.0.5 - minimatch: 3.1.2 - dev: true - - /eslint-plugin-react-hooks/4.3.0_eslint@8.12.0: - resolution: {integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.12.0 - dev: true - - /eslint-plugin-react/7.29.1_eslint@8.12.0: - resolution: {integrity: sha512-WtzRpHMhsOX05ZrkyaaqmLl2uXGqmYooCfBxftJKlkYdsltiufGgfU7uuoHwR2lBam2Kh/EIVID4aU9e3kbCMA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.4 - array.prototype.flatmap: 1.2.5 - doctrine: 2.1.0 - eslint: 8.12.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.2.1 - minimatch: 3.1.2 - object.entries: 1.1.5 - object.fromentries: 2.0.5 - object.hasown: 1.1.0 - object.values: 1.1.5 - prop-types: 15.8.1 - resolve: 2.0.0-next.3 - semver: 6.3.0 - string.prototype.matchall: 4.0.7 - dev: true - - /eslint-scope/7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-utils/3.0.0_eslint@8.12.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.12.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys/2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - - /eslint-visitor-keys/3.3.0: - resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint/8.12.0: - resolution: {integrity: sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint/eslintrc': 1.2.1 - '@humanwhocodes/config-array': 0.9.5 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.12.0 - eslint-visitor-keys: 3.3.0 - espree: 9.3.1 - esquery: 1.4.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 6.0.2 - globals: 13.13.0 - ignore: 5.2.0 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - regexpp: 3.2.0 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - v8-compile-cache: 2.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree/9.3.1: - resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.7.0 - acorn-jsx: 5.3.2_acorn@8.7.0 - eslint-visitor-keys: 3.3.0 - dev: true - - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - /esquery/1.4.0: - resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - /esutils/2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - /event-target-shim/5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - dev: true - - /eventemitter3/3.1.2: - resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==} - - /execa/4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /exit/0.1.2: - resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} - engines: {node: '>= 0.8.0'} - dev: true - - /expand-template/2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - dev: false - - /expect/27.5.1: - resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - jest-get-type: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - dev: true - - /extend/3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false - - /external-editor/3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true - - /extract-files/11.0.0: - resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} - engines: {node: ^12.20 || >= 14.13} - dev: true - - /extract-files/9.0.0: - resolution: {integrity: sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==} - engines: {node: ^10.17.0 || ^12.0.0 || >= 13.7.0} - - /fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - - /fast-glob/3.2.11: - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} - - /fastq/1.13.0: - resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} - dependencies: - reusify: 1.0.4 - dev: true - - /fathom-client/3.4.1: - resolution: {integrity: sha512-iQFKx9B9RDeGLzgNqsaXWg3Fvu7yfq1Z8GjpAG3DP8IoGoPRWOOktpM7DUKiUzoE3d37hdvDQvkqUHfNzVwimg==} - dev: false - - /fault/1.0.4: - resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - dependencies: - format: 0.2.2 - dev: false - - /fb-watchman/2.0.1: - resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==} - dependencies: - bser: 2.1.1 - dev: true - - /fbjs-css-vars/1.0.2: - resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} - - /fbjs/2.0.0: - resolution: {integrity: sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==} - dependencies: - core-js: 3.21.1 - cross-fetch: 3.1.5 - fbjs-css-vars: 1.0.2 - loose-envify: 1.4.0 - object-assign: 4.1.1 - promise: 7.3.1 - setimmediate: 1.0.5 - ua-parser-js: 0.7.31 - transitivePeerDependencies: - - encoding - dev: false - - /fbjs/3.0.4: - resolution: {integrity: sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==} - dependencies: - cross-fetch: 3.1.5 - fbjs-css-vars: 1.0.2 - loose-envify: 1.4.0 - object-assign: 4.1.1 - promise: 7.3.1 - setimmediate: 1.0.5 - ua-parser-js: 0.7.31 - transitivePeerDependencies: - - encoding - dev: true - - /figures/1.7.0: - resolution: {integrity: sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=} - engines: {node: '>=0.10.0'} - dependencies: - escape-string-regexp: 1.0.5 - object-assign: 4.1.1 - dev: true - - /figures/2.0.0: - resolution: {integrity: sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=} - engines: {node: '>=4'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /figures/3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /file-entry-cache/6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - dev: true - - /file-selector/0.4.0: - resolution: {integrity: sha512-iACCiXeMYOvZqlF1kTiYINzgepRBymz1wwjiuup9u9nayhb6g4fSwiyJ/6adli+EPwrWtpgQAh2PoS7HukEGEg==} - engines: {node: '>= 10'} - dependencies: - tslib: 2.3.1 - dev: false - - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up/2.1.0: - resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} - engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: true - - /flat-cache/3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.5 - rimraf: 3.0.2 - dev: true - - /flatted/3.2.5: - resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} - dev: true - - /focus-lock/0.10.2: - resolution: {integrity: sha512-DSaI/UHZ/02sg1P616aIWgToQcrKKBmcCvomDZ1PZvcJFj350PnWhSJxJ76T3e5/GbtQEARIACtbrdlrF9C5kA==} - engines: {node: '>=10'} - dependencies: - tslib: 2.3.1 - dev: false - - /for-each/0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.4 - dev: false - - /form-data-encoder/1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} - dev: true - - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - /format/0.2.2: - resolution: {integrity: sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=} - engines: {node: '>=0.4.x'} - dev: false - - /formdata-node/4.3.2: - resolution: {integrity: sha512-k7lYJyzDOSL6h917favP8j1L0/wNyylzU+x+1w4p5haGVHNlP58dbpdJhiCUsDbWsa9HwEtLp89obQgXl2e0qg==} - engines: {node: '>= 12.20'} - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.1 - dev: true - - /formik/2.2.9_react@17.0.2: - resolution: {integrity: sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==} - peerDependencies: - react: '>=16.8.0' - dependencies: - deepmerge: 2.2.1 - hoist-non-react-statics: 3.3.2 - lodash: 4.17.21 - lodash-es: 4.17.21 - react: 17.0.2 - react-fast-compare: 2.0.4 - tiny-warning: 1.0.3 - tslib: 1.14.1 - dev: false - - /fs-capacitor/2.0.4: - resolution: {integrity: sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==} - engines: {node: '>=8.5'} - dev: false - - /fs-constants/1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: false - - /fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} - dev: true - - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} - dev: true - - /gauge/2.7.4: - resolution: {integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=} - dependencies: - aproba: 1.2.0 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 1.0.2 - strip-ansi: 3.0.1 - wide-align: 1.1.5 - dev: false - - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: true - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true - - /get-intrinsic/1.1.1: - resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - - /get-nonce/1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - dev: false - - /get-package-type/0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true - - /get-stream/4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - dependencies: - pump: 3.0.0 - dev: true - - /get-stream/5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: true - - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - - /get-symbol-description/1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.1 - - /github-from-package/0.0.0: - resolution: {integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=} - dev: false - - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent/6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob/7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /glob/7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true - - /globals/13.13.0: - resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globby/11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.11 - ignore: 5.2.0 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /got/9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} - dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.4 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 - dev: true - - /graceful-fs/4.2.9: - resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} - dev: true - - /graphql-config/4.1.0_e9b9f5ed6fc9d395db4b512cb80b8ff2: - resolution: {integrity: sha512-Myqay6pmdcmX3KqoH+bMbeKZ1cTODpHS2CxF1ZzNnfTE+YUpGTcp01bOw6LpzamRb0T/WTYtGFbZeXGo9Hab2Q==} - engines: {node: '>= 10.0.0'} - peerDependencies: - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - dependencies: - '@endemolshinegroup/cosmiconfig-typescript-loader': 3.0.2_ec5c0ebd3030a0a5109338876648df1b - '@graphql-tools/graphql-file-loader': 7.3.7_graphql@15.8.0 - '@graphql-tools/json-file-loader': 7.3.7_graphql@15.8.0 - '@graphql-tools/load': 7.5.5_graphql@15.8.0 - '@graphql-tools/merge': 8.2.6_graphql@15.8.0 - '@graphql-tools/url-loader': 7.9.7_5caea9434b9aae544c4bc2f74e488575 - '@graphql-tools/utils': 8.6.5_graphql@15.8.0 - cosmiconfig: 7.0.1 - cosmiconfig-toml-loader: 1.0.0 - graphql: 15.8.0 - minimatch: 3.0.4 - string-env-interpolation: 1.0.1 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - encoding - - typescript - - utf-8-validate - dev: true - - /graphql-executor/0.0.22_graphql@15.8.0: - resolution: {integrity: sha512-WbKSnSHFn6REKKH4T6UAwDM3mLUnYMQlQLNG0Fw+Lkb3ilCnL3m5lkJ7411LAI9sF7BvPbthovVZhsEUh9Xfag==} - engines: {node: ^12.22.0 || ^14.16.0 || >=16.0.0} - peerDependencies: - graphql: ^15.0.0 || ^16.0.0 - dependencies: - graphql: 15.8.0 - dev: true - - /graphql-extensions/0.15.0_graphql@15.8.0: - resolution: {integrity: sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==} - engines: {node: '>=6.0'} - deprecated: 'The `graphql-extensions` API has been removed from Apollo Server 3. Use the plugin API instead: https://www.apollographql.com/docs/apollo-server/integrations/plugins/' - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - '@apollographql/apollo-tools': 0.5.2 - apollo-server-env: 3.1.0 - apollo-server-types: 0.9.0_graphql@15.8.0 - graphql: 15.8.0 - transitivePeerDependencies: - - encoding - dev: false - - /graphql-request/4.2.0_graphql@15.8.0: - resolution: {integrity: sha512-uFeMyhhl8ss4LFgjlfPeAn2pqYw+CJto+cjj71uaBYIMMK2jPIqgHm5KEFxUk0YDD41A8Bq31a2b4G2WJBlp2Q==} - peerDependencies: - graphql: 14 - 16 - dependencies: - cross-fetch: 3.1.5 - extract-files: 9.0.0 - form-data: 3.0.1 - graphql: 15.8.0 - transitivePeerDependencies: - - encoding - - /graphql-sse/1.1.0_graphql@15.8.0: - resolution: {integrity: sha512-xE8AGPJa5X+g7iFmRQw/8H+7lXIDJvSkW6lou/XSSq17opPQl+dbKOMiqraHMx52VrDgS061ZVx90OSuqS6ykA==} - engines: {node: '>=12'} - peerDependencies: - graphql: '>=0.11 <=16' - dependencies: - graphql: 15.8.0 - dev: true - - /graphql-tag/2.12.6_graphql@15.8.0: - resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} - engines: {node: '>=10'} - 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 - dependencies: - graphql: 15.8.0 - tslib: 2.3.1 - - /graphql-tools/4.0.8_graphql@15.8.0: - resolution: {integrity: sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==} - deprecated: This package has been deprecated and now it only exports makeExecutableSchema.\nAnd it will no longer receive updates.\nWe recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.\nCheck out https://www.graphql-tools.com to learn what package you should use instead - peerDependencies: - graphql: ^0.13.0 || ^14.0.0 || ^15.0.0 - dependencies: - apollo-link: 1.2.14_graphql@15.8.0 - apollo-utilities: 1.3.4_graphql@15.8.0 - deprecated-decorator: 0.1.6 - graphql: 15.8.0 - iterall: 1.3.0 - uuid: 3.4.0 - dev: false - - /graphql-ws/5.6.4_graphql@15.8.0: - resolution: {integrity: sha512-5r8tAzznI1zeh7k12+3z07KkgXPckQbnC9h4kJ2TBDWG2wb26TJTbVHQOiAncDBgPbtXtc1A2BlttiRuPH2t/w==} - engines: {node: '>=10'} - peerDependencies: - graphql: '>=0.11 <=16' - dependencies: - graphql: 15.8.0 - dev: true - - /graphql/15.8.0: - resolution: {integrity: sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==} - engines: {node: '>= 10.x'} - dev: false - - /gzip-size/6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - dependencies: - duplexer: 0.1.2 - dev: true - - /has-ansi/2.0.0: - resolution: {integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: 2.1.1 - dev: true - - /has-bigints/1.0.1: - resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} - - /has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} - engines: {node: '>=4'} - dev: true - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /has-symbols/1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - /has-tostringtag/1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - - /has-unicode/2.0.1: - resolution: {integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=} - dev: false - - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - - /hast-util-is-element/2.1.2: - resolution: {integrity: sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==} - dependencies: - '@types/hast': 2.3.4 - '@types/unist': 2.0.6 - dev: false - - /hast-util-to-html/8.0.3: - resolution: {integrity: sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==} - dependencies: - '@types/hast': 2.3.4 - ccount: 2.0.1 - comma-separated-tokens: 2.0.2 - hast-util-is-element: 2.1.2 - hast-util-whitespace: 2.0.0 - html-void-elements: 2.0.1 - property-information: 6.1.1 - space-separated-tokens: 2.0.1 - stringify-entities: 4.0.2 - unist-util-is: 5.1.1 - dev: false - - /hast-util-whitespace/2.0.0: - resolution: {integrity: sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==} - dev: false - - /header-case/2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - dependencies: - capital-case: 1.0.4 - tslib: 2.3.1 - dev: true - - /hoek/6.1.3: - resolution: {integrity: sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==} - deprecated: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. - dev: false - - /hoist-non-react-statics/3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - dependencies: - react-is: 16.13.1 - dev: false - - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} - dependencies: - whatwg-encoding: 1.0.5 - - /html-escaper/2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - - /html-void-elements/2.0.1: - resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} - dev: false - - /http-cache-semantics/4.1.0: - resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} - dev: true - - /http-errors/1.6.2: - resolution: {integrity: sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=} - engines: {node: '>= 0.6'} - dependencies: - depd: 1.1.1 - inherits: 2.0.3 - setprototypeof: 1.0.3 - statuses: 1.5.0 - dev: false - - /http-errors/1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} - engines: {node: '>= 0.6'} - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 1.5.0 - toidentifier: 1.0.1 - dev: false - - /http-proxy-agent/4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - - /http-proxy-agent/5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /https-proxy-agent/5.0.0: - resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - - /human-signals/1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} - dev: true - - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /husky/7.0.4: - resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==} - engines: {node: '>=12'} - hasBin: true - dev: true - - /iconv-lite/0.4.19: - resolution: {integrity: sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==} - engines: {node: '>=0.10.0'} - dev: false - - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - - /ieee754/1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - /ignore/5.2.0: - resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} - engines: {node: '>= 4'} - dev: true - - /immutable/3.7.6: - resolution: {integrity: sha1-E7TTyxK++hVIKib+Gy665kAHHks=} - engines: {node: '>=0.8.0'} - - /immutable/4.0.0: - resolution: {integrity: sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==} - dev: false - - /import-fresh/3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /import-from/4.0.0: - resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} - engines: {node: '>=12.2'} - dev: true - - /import-local/3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - - /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} - engines: {node: '>=0.8.19'} - dev: true - - /indent-string/3.2.0: - resolution: {integrity: sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=} - engines: {node: '>=4'} - dev: true - - /inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits/2.0.3: - resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=} - dev: false - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - /inquirer/8.2.2: - resolution: {integrity: sha512-pG7I/si6K/0X7p1qU+rfWnpTE1UIkTONN1wxtzh0d+dHXtT/JG6qBgLxoyHVsQa8cFABxAPh0pD6uUUHiAoaow==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.5.5 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - dev: true - - /internal-slot/1.0.3: - resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.1.1 - has: 1.0.3 - side-channel: 1.0.4 - - /invariant/2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - dependencies: - loose-envify: 1.4.0 - - /ip/1.1.5: - resolution: {integrity: sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=} - dev: false - - /is-absolute/1.0.0: - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} - engines: {node: '>=0.10.0'} - dependencies: - is-relative: 1.0.0 - is-windows: 1.0.2 - dev: true - - /is-alphabetical/1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: false - - /is-alphanumerical/1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - dev: false - - /is-arrayish/0.2.1: - resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} - dev: true - - /is-arrayish/0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: false - - /is-bigint/1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.1 - - /is-binary-path/2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-boolean-object/1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - - /is-buffer/2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - dev: false - - /is-callable/1.2.4: - resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} - engines: {node: '>= 0.4'} - - /is-core-module/2.8.1: - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} - dependencies: - has: 1.0.3 - dev: true - - /is-date-object/1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - - /is-decimal/1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: false - - /is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point/1.0.0: - resolution: {integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs=} - engines: {node: '>=0.10.0'} - dependencies: - number-is-nan: 1.0.1 - - /is-fullwidth-code-point/2.0.0: - resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=} - engines: {node: '>=4'} - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-generator-fn/2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true - - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-hexadecimal/1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: false - - /is-interactive/1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true - - /is-lower-case/2.0.2: - resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} - dependencies: - tslib: 2.3.1 - dev: true - - /is-negative-zero/2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - - /is-number-object/1.0.6: - resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-observable/1.1.0: - resolution: {integrity: sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==} - engines: {node: '>=4'} - dependencies: - symbol-observable: 1.2.0 - dev: true - - /is-plain-obj/2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: false - - /is-plain-obj/4.0.0: - resolution: {integrity: sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==} - engines: {node: '>=12'} - dev: false - - /is-potential-custom-element-name/1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - /is-promise/2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - dev: true - - /is-regex/1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - - /is-relative/1.0.0: - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} - engines: {node: '>=0.10.0'} - dependencies: - is-unc-path: 1.0.0 - dev: true - - /is-shared-array-buffer/1.0.1: - resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} - - /is-stream/1.1.0: - resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=} - engines: {node: '>=0.10.0'} - - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - - /is-string/1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - - /is-symbol/1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - - /is-typedarray/1.0.0: - resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} - dev: true - - /is-unc-path/1.0.0: - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} - engines: {node: '>=0.10.0'} - dependencies: - unc-path-regex: 0.1.2 - dev: true - - /is-unicode-supported/0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - - /is-upper-case/2.0.2: - resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} - dependencies: - tslib: 2.3.1 - dev: true - - /is-weakref/1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.2 - - /is-windows/1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true - - /isarray/1.0.0: - resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} - dev: false - - /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} - dev: true - - /isomorphic-fetch/3.0.0: - resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} - dependencies: - node-fetch: 2.6.7 - whatwg-fetch: 3.6.2 - transitivePeerDependencies: - - encoding - dev: true - - /isomorphic-ws/4.0.1_ws@8.5.0: - resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} - peerDependencies: - ws: '*' - dependencies: - ws: 8.5.0 - dev: true - - /istanbul-lib-coverage/3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} - engines: {node: '>=8'} - dev: true - - /istanbul-lib-instrument/5.1.0: - resolution: {integrity: sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.17.8 - '@babel/parser': 7.17.8 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} - dependencies: - istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 - supports-color: 7.2.0 - dev: true - - /istanbul-lib-source-maps/4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-reports/3.1.4: - resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 - dev: true - - /iterall/1.3.0: - resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} - - /jest-changed-files/27.5.1: - resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - execa: 5.1.1 - throat: 6.0.1 - dev: true - - /jest-circus/27.5.1: - resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - chalk: 4.1.2 - co: 4.6.0 - dedent: 0.7.0 - expect: 27.5.1 - is-generator-fn: 2.1.0 - jest-each: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - slash: 3.0.0 - stack-utils: 2.0.5 - throat: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-cli/27.5.1: - resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.9 - import-local: 3.1.0 - jest-config: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - prompts: 2.4.2 - yargs: 16.2.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-config/27.5.1: - resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - '@babel/core': 7.17.8 - '@jest/test-sequencer': 27.5.1 - '@jest/types': 27.5.1 - babel-jest: 27.5.1_@babel+core@7.17.8 - chalk: 4.1.2 - ci-info: 3.3.0 - deepmerge: 4.2.2 - glob: 7.2.0 - graceful-fs: 4.2.9 - jest-circus: 27.5.1 - jest-environment-jsdom: 27.5.1 - jest-environment-node: 27.5.1 - jest-get-type: 27.5.1 - jest-jasmine2: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-runner: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 27.5.1 - slash: 3.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-diff/27.5.1: - resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 27.5.1 - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - dev: true - - /jest-docblock/27.5.1: - resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - - /jest-each/27.5.1: - resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - chalk: 4.1.2 - jest-get-type: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - dev: true - - /jest-environment-jsdom/27.5.1: - resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - jest-mock: 27.5.1 - jest-util: 27.5.1 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/27.5.1: - resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - jest-mock: 27.5.1 - jest-util: 27.5.1 - dev: true - - /jest-get-type/27.5.1: - resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /jest-haste-map/27.5.1: - resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/graceful-fs': 4.1.5 - '@types/node': 17.0.23 - anymatch: 3.1.2 - fb-watchman: 2.0.1 - graceful-fs: 4.2.9 - jest-regex-util: 27.5.1 - jest-serializer: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /jest-jasmine2/27.5.1: - resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - chalk: 4.1.2 - co: 4.6.0 - expect: 27.5.1 - is-generator-fn: 2.1.0 - jest-each: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - throat: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-leak-detector/27.5.1: - resolution: {integrity: sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - dev: true - - /jest-matcher-utils/27.5.1: - resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 27.5.1 - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - dev: true - - /jest-message-util/27.5.1: - resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': 7.16.7 - '@jest/types': 27.5.1 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.9 - micromatch: 4.0.5 - pretty-format: 27.5.1 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - - /jest-mock/27.5.1: - resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - dev: true - - /jest-pnp-resolver/1.2.2_jest-resolve@27.5.1: - resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 27.5.1 - dev: true - - /jest-regex-util/27.5.1: - resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /jest-resolve-dependencies/27.5.1: - resolution: {integrity: sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - jest-regex-util: 27.5.1 - jest-snapshot: 27.5.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve/27.5.1: - resolution: {integrity: sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - chalk: 4.1.2 - graceful-fs: 4.2.9 - jest-haste-map: 27.5.1 - jest-pnp-resolver: 1.2.2_jest-resolve@27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - resolve: 1.22.0 - resolve.exports: 1.1.0 - slash: 3.0.0 - dev: true - - /jest-runner/27.5.1: - resolution: {integrity: sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.5.1 - '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - chalk: 4.1.2 - emittery: 0.8.1 - graceful-fs: 4.2.9 - jest-docblock: 27.5.1 - jest-environment-jsdom: 27.5.1 - jest-environment-node: 27.5.1 - jest-haste-map: 27.5.1 - jest-leak-detector: 27.5.1 - jest-message-util: 27.5.1 - jest-resolve: 27.5.1 - jest-runtime: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - source-map-support: 0.5.21 - throat: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-runtime/27.5.1: - resolution: {integrity: sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/globals': 27.5.1 - '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - chalk: 4.1.2 - cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1 - execa: 5.1.1 - glob: 7.2.0 - graceful-fs: 4.2.9 - jest-haste-map: 27.5.1 - jest-message-util: 27.5.1 - jest-mock: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-serializer/27.5.1: - resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/node': 17.0.23 - graceful-fs: 4.2.9 - dev: true - - /jest-snapshot/27.5.1: - resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.17.8 - '@babel/generator': 7.17.7 - '@babel/plugin-syntax-typescript': 7.16.7_@babel+core@7.17.8 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/babel__traverse': 7.14.2 - '@types/prettier': 2.4.4 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.8 - chalk: 4.1.2 - expect: 27.5.1 - graceful-fs: 4.2.9 - jest-diff: 27.5.1 - jest-get-type: 27.5.1 - jest-haste-map: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-util: 27.5.1 - natural-compare: 1.4.0 - pretty-format: 27.5.1 - semver: 7.3.5 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-util/27.5.1: - resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - chalk: 4.1.2 - ci-info: 3.3.0 - graceful-fs: 4.2.9 - picomatch: 2.3.1 - dev: true - - /jest-validate/27.5.1: - resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 27.5.1 - leven: 3.1.0 - pretty-format: 27.5.1 - dev: true - - /jest-watcher/27.5.1: - resolution: {integrity: sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.23 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - jest-util: 27.5.1 - string-length: 4.0.2 - dev: true - - /jest-worker/27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 17.0.23 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - - /jest/27.5.1: - resolution: {integrity: sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.5.1 - import-local: 3.1.0 - jest-cli: 27.5.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - - /js-yaml/4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - - /jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.5 - acorn: 8.7.0 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.3.1 - domexception: 2.0.1 - escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.0 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.0 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.0.0 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.5.7 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /json-buffer/3.0.0: - resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} - dev: true - - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} - dev: true - - /json-stable-stringify/1.0.1: - resolution: {integrity: sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=} - dependencies: - jsonify: 0.0.0 - dev: true - - /json-to-pretty-yaml/1.2.2: - resolution: {integrity: sha1-9M0L0KXo/h3yWq9boRiwmf2ZLVs=} - engines: {node: '>= 0.2.0'} - dependencies: - remedial: 1.0.8 - remove-trailing-spaces: 1.0.8 - dev: true - - /json5/1.0.1: - resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} - hasBin: true - dependencies: - minimist: 1.2.6 - dev: true - - /json5/2.2.1: - resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} - engines: {node: '>=6'} - hasBin: true - dev: true - - /jsonify/0.0.0: - resolution: {integrity: sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=} - dev: true - - /jsonwebtoken/8.5.1: - resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} - engines: {node: '>=4', npm: '>=1.4.28'} - 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.1.1 - ms: 2.1.3 - semver: 5.7.1 - - /jsx-ast-utils/3.2.1: - resolution: {integrity: sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==} - engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.4 - object.assign: 4.1.2 - dev: true - - /jwa/1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - - /jws/3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - dependencies: - jwa: 1.4.1 - safe-buffer: 5.2.1 - - /jwt-decode/3.1.2: - resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} - dev: false - - /kareem/2.3.4: - resolution: {integrity: sha512-Vcrt8lcpVl0s8ePx634BxwRqmFo+5DcOhlmNadehxreMTIQi/9hOL/B3hZQQbK5DgMS7Lem3xABXV7/S3jy+7g==} - dev: false - - /keyv/3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} - dependencies: - json-buffer: 3.0.0 - dev: true - - /kleur/3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - - /kleur/4.1.4: - resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} - engines: {node: '>=6'} - dev: false - - /language-subtag-registry/0.3.21: - resolution: {integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==} - dev: true - - /language-tags/1.0.5: - resolution: {integrity: sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=} - dependencies: - language-subtag-registry: 0.3.21 - dev: true - - /latest-version/5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} - engines: {node: '>=8'} - dependencies: - package-json: 6.5.0 - dev: true - - /leven/3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true - - /levn/0.3.0: - resolution: {integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - - /levn/0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /listr-silent-renderer/1.1.1: - resolution: {integrity: sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=} - engines: {node: '>=4'} - dev: true - - /listr-update-renderer/0.5.0_listr@0.14.3: - resolution: {integrity: sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==} - engines: {node: '>=6'} - peerDependencies: - listr: ^0.14.2 - dependencies: - chalk: 1.1.3 - cli-truncate: 0.2.1 - elegant-spinner: 1.0.1 - figures: 1.7.0 - indent-string: 3.2.0 - listr: 0.14.3 - log-symbols: 1.0.2 - log-update: 2.3.0 - strip-ansi: 3.0.1 - dev: true - - /listr-verbose-renderer/0.5.0: - resolution: {integrity: sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==} - engines: {node: '>=4'} - dependencies: - chalk: 2.4.2 - cli-cursor: 2.1.0 - date-fns: 1.30.1 - figures: 2.0.0 - dev: true - - /listr/0.14.3: - resolution: {integrity: sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==} - engines: {node: '>=6'} - dependencies: - '@samverschueren/stream-to-observable': 0.3.1_rxjs@6.6.7 - is-observable: 1.1.0 - is-promise: 2.2.2 - is-stream: 1.1.0 - listr-silent-renderer: 1.1.1 - listr-update-renderer: 0.5.0_listr@0.14.3 - listr-verbose-renderer: 0.5.0 - p-map: 2.1.0 - rxjs: 6.6.7 - transitivePeerDependencies: - - zen-observable - dev: true - - /locate-path/2.0.0: - resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} - engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: true - - /lodash-es/4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: false - - /lodash.get/4.4.2: - resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} - dev: true - - /lodash.includes/4.3.0: - resolution: {integrity: sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=} - - /lodash.isboolean/3.0.3: - resolution: {integrity: sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=} - - /lodash.isinteger/4.0.4: - resolution: {integrity: sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=} - - /lodash.isnumber/3.0.3: - resolution: {integrity: sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=} - - /lodash.isplainobject/4.0.6: - resolution: {integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=} - - /lodash.isstring/4.0.1: - resolution: {integrity: sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=} - - /lodash.memoize/4.1.2: - resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=} - dev: true - - /lodash.merge/4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /lodash.once/4.1.1: - resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=} - - /lodash.sortby/4.7.0: - resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=} - dev: false - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - /log-symbols/1.0.2: - resolution: {integrity: sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=} - engines: {node: '>=0.10.0'} - dependencies: - chalk: 1.1.3 - dev: true - - /log-symbols/4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - - /log-update/2.3.0: - resolution: {integrity: sha1-iDKP19HOeTiykoN0bwsbwSayRwg=} - engines: {node: '>=4'} - dependencies: - ansi-escapes: 3.2.0 - cli-cursor: 2.1.0 - wrap-ansi: 3.0.1 - dev: true - - /loglevel/1.8.0: - resolution: {integrity: sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==} - engines: {node: '>= 0.6.0'} - dev: false - - /long/4.0.0: - resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} - dev: false - - /longest-streak/2.0.4: - resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} - dev: false - - /longest-streak/3.0.1: - resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} - dev: false - - /loose-envify/1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - - /lower-case-first/2.0.2: - resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} - dependencies: - tslib: 2.3.1 - dev: true - - /lower-case/2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - dependencies: - tslib: 2.3.1 - dev: true - - /lowercase-keys/1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: true - - /lowercase-keys/2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: true - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.0 - dev: true - - /make-error/1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true - - /makeerror/1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - dependencies: - tmpl: 1.0.5 - dev: true - - /map-cache/0.2.2: - resolution: {integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=} - engines: {node: '>=0.10.0'} - dev: true - - /markdown-table/2.0.0: - resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} - dependencies: - repeat-string: 1.6.1 - dev: false - - /mdast-util-definitions/5.1.0: - resolution: {integrity: sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ==} - dependencies: - '@types/mdast': 3.0.10 - '@types/unist': 2.0.6 - unist-util-visit: 3.1.0 - dev: false - - /mdast-util-find-and-replace/1.1.1: - resolution: {integrity: sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==} - dependencies: - escape-string-regexp: 4.0.0 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - dev: false - - /mdast-util-footnote/0.1.7: - resolution: {integrity: sha512-QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w==} - dependencies: - mdast-util-to-markdown: 0.6.5 - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-from-markdown/0.8.5: - resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-to-string: 2.0.0 - micromark: 2.11.4 - parse-entities: 2.0.0 - unist-util-stringify-position: 2.0.3 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-from-markdown/1.2.0: - resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==} - dependencies: - '@types/mdast': 3.0.10 - '@types/unist': 2.0.6 - decode-named-character-reference: 1.0.1 - mdast-util-to-string: 3.1.0 - micromark: 3.0.10 - micromark-util-decode-numeric-character-reference: 1.0.0 - micromark-util-decode-string: 1.0.2 - micromark-util-normalize-identifier: 1.0.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - unist-util-stringify-position: 3.0.2 - uvu: 0.5.3 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-frontmatter/0.2.0: - resolution: {integrity: sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==} - dependencies: - micromark-extension-frontmatter: 0.2.2 - dev: false - - /mdast-util-gfm-autolink-literal/0.1.3: - resolution: {integrity: sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==} - dependencies: - ccount: 1.1.0 - mdast-util-find-and-replace: 1.1.1 - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-gfm-strikethrough/0.2.3: - resolution: {integrity: sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==} - dependencies: - mdast-util-to-markdown: 0.6.5 - dev: false - - /mdast-util-gfm-table/0.1.6: - resolution: {integrity: sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==} - dependencies: - markdown-table: 2.0.0 - mdast-util-to-markdown: 0.6.5 - dev: false - - /mdast-util-gfm-task-list-item/0.1.6: - resolution: {integrity: sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==} - dependencies: - mdast-util-to-markdown: 0.6.5 - dev: false - - /mdast-util-gfm/0.1.2: - resolution: {integrity: sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==} - dependencies: - mdast-util-gfm-autolink-literal: 0.1.3 - mdast-util-gfm-strikethrough: 0.2.3 - mdast-util-gfm-table: 0.1.6 - mdast-util-gfm-task-list-item: 0.1.6 - mdast-util-to-markdown: 0.6.5 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-to-hast/12.1.1: - resolution: {integrity: sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw==} - dependencies: - '@types/hast': 2.3.4 - '@types/mdast': 3.0.10 - '@types/mdurl': 1.0.2 - mdast-util-definitions: 5.1.0 - mdurl: 1.0.1 - micromark-util-sanitize-uri: 1.0.0 - unist-builder: 3.0.0 - unist-util-generated: 2.0.0 - unist-util-position: 4.0.2 - unist-util-visit: 4.1.0 - dev: false - - /mdast-util-to-markdown/0.6.5: - resolution: {integrity: sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==} - dependencies: - '@types/unist': 2.0.6 - longest-streak: 2.0.4 - mdast-util-to-string: 2.0.0 - parse-entities: 2.0.0 - repeat-string: 1.6.1 - zwitch: 1.0.5 - dev: false - - /mdast-util-to-markdown/1.3.0: - resolution: {integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==} - dependencies: - '@types/mdast': 3.0.10 - '@types/unist': 2.0.6 - longest-streak: 3.0.1 - mdast-util-to-string: 3.1.0 - micromark-util-decode-string: 1.0.2 - unist-util-visit: 4.1.0 - zwitch: 2.0.2 - dev: false - - /mdast-util-to-string/2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - dev: false - - /mdast-util-to-string/3.1.0: - resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} - dev: false - - /mdurl/1.0.1: - resolution: {integrity: sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=} - dev: false - - /memory-pager/1.5.0: - resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} - dev: false - optional: true - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /meros/1.2.0_@types+node@17.0.23: - resolution: {integrity: sha512-3QRZIS707pZQnijHdhbttXRWwrHhZJ/gzolneoxKVz9N/xmsvY/7Ls8lpnI9gxbgxjcHsAVEW3mgwiZCo6kkJQ==} - engines: {node: '>=12'} - peerDependencies: - '@types/node': '>=12' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 17.0.23 - dev: true - - /micro/9.3.4: - resolution: {integrity: sha512-smz9naZwTG7qaFnEZ2vn248YZq9XR+XoOH3auieZbkhDL4xLOxiE+KqG8qqnBeKfXA9c1uEFGCxPN1D+nT6N7w==} - engines: {node: '>= 8.0.0'} - hasBin: true - dependencies: - arg: 4.1.0 - content-type: 1.0.4 - is-stream: 1.1.0 - raw-body: 2.3.2 - dev: false - - /micromark-core-commonmark/1.0.6: - resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==} - dependencies: - decode-named-character-reference: 1.0.1 - micromark-factory-destination: 1.0.0 - micromark-factory-label: 1.0.2 - micromark-factory-space: 1.0.0 - micromark-factory-title: 1.0.2 - micromark-factory-whitespace: 1.0.0 - micromark-util-character: 1.1.0 - micromark-util-chunked: 1.0.0 - micromark-util-classify-character: 1.0.0 - micromark-util-html-tag-name: 1.0.0 - micromark-util-normalize-identifier: 1.0.0 - micromark-util-resolve-all: 1.0.0 - micromark-util-subtokenize: 1.0.2 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - uvu: 0.5.3 - dev: false - - /micromark-extension-footnote/0.3.2: - resolution: {integrity: sha512-gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ==} - dependencies: - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: false - - /micromark-extension-frontmatter/0.2.2: - resolution: {integrity: sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==} - dependencies: - fault: 1.0.4 - dev: false - - /micromark-extension-gfm-autolink-literal/0.5.7: - resolution: {integrity: sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==} - dependencies: - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: false - - /micromark-extension-gfm-strikethrough/0.6.5: - resolution: {integrity: sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==} - dependencies: - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: false - - /micromark-extension-gfm-table/0.4.3: - resolution: {integrity: sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==} - dependencies: - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: false - - /micromark-extension-gfm-tagfilter/0.3.0: - resolution: {integrity: sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==} - dev: false - - /micromark-extension-gfm-task-list-item/0.3.3: - resolution: {integrity: sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==} - dependencies: - micromark: 2.11.4 - transitivePeerDependencies: - - supports-color - dev: false - - /micromark-extension-gfm/0.3.3: - resolution: {integrity: sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==} - dependencies: - micromark: 2.11.4 - micromark-extension-gfm-autolink-literal: 0.5.7 - micromark-extension-gfm-strikethrough: 0.6.5 - micromark-extension-gfm-table: 0.4.3 - micromark-extension-gfm-tagfilter: 0.3.0 - micromark-extension-gfm-task-list-item: 0.3.3 - transitivePeerDependencies: - - supports-color - dev: false - - /micromark-factory-destination/1.0.0: - resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} - dependencies: - micromark-util-character: 1.1.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - dev: false - - /micromark-factory-label/1.0.2: - resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} - dependencies: - micromark-util-character: 1.1.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - uvu: 0.5.3 - dev: false - - /micromark-factory-space/1.0.0: - resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} - dependencies: - micromark-util-character: 1.1.0 - micromark-util-types: 1.0.2 - dev: false - - /micromark-factory-title/1.0.2: - resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} - dependencies: - micromark-factory-space: 1.0.0 - micromark-util-character: 1.1.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - uvu: 0.5.3 - dev: false - - /micromark-factory-whitespace/1.0.0: - resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} - dependencies: - micromark-factory-space: 1.0.0 - micromark-util-character: 1.1.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - dev: false - - /micromark-util-character/1.1.0: - resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} - dependencies: - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - dev: false - - /micromark-util-chunked/1.0.0: - resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} - dependencies: - micromark-util-symbol: 1.0.1 - dev: false - - /micromark-util-classify-character/1.0.0: - resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} - dependencies: - micromark-util-character: 1.1.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - dev: false - - /micromark-util-combine-extensions/1.0.0: - resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} - dependencies: - micromark-util-chunked: 1.0.0 - micromark-util-types: 1.0.2 - dev: false - - /micromark-util-decode-numeric-character-reference/1.0.0: - resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} - dependencies: - micromark-util-symbol: 1.0.1 - dev: false - - /micromark-util-decode-string/1.0.2: - resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} - dependencies: - decode-named-character-reference: 1.0.1 - micromark-util-character: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.0.0 - micromark-util-symbol: 1.0.1 - dev: false - - /micromark-util-encode/1.0.1: - resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} - dev: false - - /micromark-util-html-tag-name/1.0.0: - resolution: {integrity: sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g==} - dev: false - - /micromark-util-normalize-identifier/1.0.0: - resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} - dependencies: - micromark-util-symbol: 1.0.1 - dev: false - - /micromark-util-resolve-all/1.0.0: - resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} - dependencies: - micromark-util-types: 1.0.2 - dev: false - - /micromark-util-sanitize-uri/1.0.0: - resolution: {integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==} - dependencies: - micromark-util-character: 1.1.0 - micromark-util-encode: 1.0.1 - micromark-util-symbol: 1.0.1 - dev: false - - /micromark-util-subtokenize/1.0.2: - resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} - dependencies: - micromark-util-chunked: 1.0.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - uvu: 0.5.3 - dev: false - - /micromark-util-symbol/1.0.1: - resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} - dev: false - - /micromark-util-types/1.0.2: - resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} - dev: false - - /micromark/2.11.4: - resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} - dependencies: - debug: 4.3.4 - parse-entities: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /micromark/3.0.10: - resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==} - dependencies: - '@types/debug': 4.1.7 - debug: 4.3.4 - decode-named-character-reference: 1.0.1 - micromark-core-commonmark: 1.0.6 - micromark-factory-space: 1.0.0 - micromark-util-character: 1.1.0 - micromark-util-chunked: 1.0.0 - micromark-util-combine-extensions: 1.0.0 - micromark-util-decode-numeric-character-reference: 1.0.0 - micromark-util-encode: 1.0.1 - micromark-util-normalize-identifier: 1.0.0 - micromark-util-resolve-all: 1.0.0 - micromark-util-sanitize-uri: 1.0.0 - micromark-util-subtokenize: 1.0.2 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - uvu: 0.5.3 - transitivePeerDependencies: - - supports-color - dev: false - - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - - /mimic-fn/1.2.0: - resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} - engines: {node: '>=4'} - dev: true - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - - /mimic-response/1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: true - - /mimic-response/3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: false - - /minimatch/3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch/4.2.1: - resolution: {integrity: sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimist/1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - - /mkdirp-classic/0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: false - - /mkdirp/1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: true - - /mongodb-connection-string-url/2.5.2: - resolution: {integrity: sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==} - dependencies: - '@types/whatwg-url': 8.2.1 - whatwg-url: 11.0.0 - dev: false - - /mongodb/4.3.1: - resolution: {integrity: sha512-sNa8APSIk+r4x31ZwctKjuPSaeKuvUeNb/fu/3B6dRM02HpEgig7hTHM8A/PJQTlxuC/KFWlDlQjhsk/S43tBg==} - engines: {node: '>=12.9.0'} - dependencies: - bson: 4.6.2 - denque: 2.0.1 - mongodb-connection-string-url: 2.5.2 - socks: 2.6.2 - optionalDependencies: - saslprep: 1.0.3 - dev: false - - /mongoose/6.2.8: - resolution: {integrity: sha512-Wq6HG0sOJEQHp5YqMlxrnf93vBFwdY2zlAwqI97EPPSt69kiVV21pTv4cDanrCNWi4upG8ajQ/p9jpDjcECjkQ==} - engines: {node: '>=12.0.0'} - dependencies: - bson: 4.6.2 - kareem: 2.3.4 - mongodb: 4.3.1 - mpath: 0.8.4 - mquery: 4.0.2 - ms: 2.1.3 - sift: 16.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mpath/0.8.4: - resolution: {integrity: sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==} - engines: {node: '>=4.0.0'} - dev: false - - /mquery/4.0.2: - resolution: {integrity: sha512-oAVF0Nil1mT3rxty6Zln4YiD6x6QsUWYz927jZzjMxOK2aqmhEz5JQ7xmrKK7xRFA2dwV+YaOpKU/S+vfNqKxA==} - engines: {node: '>=12.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - - /mri/1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - /mrmime/1.0.0: - resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==} - engines: {node: '>=10'} - dev: true - - /ms/2.0.0: - resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} - dev: true - - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - /multimatch/4.0.0: - resolution: {integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==} - engines: {node: '>=8'} - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.2 - dev: true - - /mute-stream/0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: true - - /nanoid/3.3.2: - resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: false - - /napi-build-utils/1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - dev: false - - /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} - dev: true - - /next/12.1.1_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-IOfEIAgroMtsoYz6HXpDS+b5WB9WZ+MH266COXGlcpIiYSgUyJf9xV6vF+zY2RPvBJFT4fUW0EVdVnoOmTloDw==} - engines: {node: '>=12.22.0'} - hasBin: true - peerDependencies: - fibers: '>= 3.1.0' - node-sass: ^6.0.0 || ^7.0.0 - react: ^17.0.2 || ^18.0.0-0 - react-dom: ^17.0.2 || ^18.0.0-0 - sass: ^1.3.0 - peerDependenciesMeta: - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true - dependencies: - '@next/env': 12.1.1 - caniuse-lite: 1.0.30001320 - postcss: 8.4.5 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - styled-jsx: 5.0.1_react@17.0.2 - use-subscription: 1.5.1_react@17.0.2 - optionalDependencies: - '@next/swc-android-arm-eabi': 12.1.1 - '@next/swc-android-arm64': 12.1.1 - '@next/swc-darwin-arm64': 12.1.1 - '@next/swc-darwin-x64': 12.1.1 - '@next/swc-linux-arm-gnueabihf': 12.1.1 - '@next/swc-linux-arm64-gnu': 12.1.1 - '@next/swc-linux-arm64-musl': 12.1.1 - '@next/swc-linux-x64-gnu': 12.1.1 - '@next/swc-linux-x64-musl': 12.1.1 - '@next/swc-win32-arm64-msvc': 12.1.1 - '@next/swc-win32-ia32-msvc': 12.1.1 - '@next/swc-win32-x64-msvc': 12.1.1 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - - /no-case/3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - dependencies: - lower-case: 2.0.2 - tslib: 2.3.1 - dev: true - - /node-abi/3.8.0: - resolution: {integrity: sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==} - engines: {node: '>=10'} - dependencies: - semver: 7.3.5 - dev: false - - /node-addon-api/4.3.0: - resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} - dev: false - - /node-domexception/1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - dev: true - - /node-fetch/2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - - /node-int64/0.4.0: - resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} - dev: true - - /node-releases/2.0.2: - resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} - dev: true - - /normalize-path/2.1.1: - resolution: {integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=} - engines: {node: '>=0.10.0'} - dependencies: - remove-trailing-separator: 1.1.0 - dev: true - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /normalize-url/4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - dev: true - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - - /npmlog/4.1.2: - resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} - dependencies: - are-we-there-yet: 1.1.7 - console-control-strings: 1.1.0 - gauge: 2.7.4 - set-blocking: 2.0.0 - dev: false - - /nullthrows/1.1.1: - resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} - dev: true - - /number-is-nan/1.0.1: - resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=} - engines: {node: '>=0.10.0'} - - /nwsapi/2.2.0: - resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} - - /object-assign/4.1.1: - resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} - engines: {node: '>=0.10.0'} - - /object-inspect/1.12.0: - resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} - - /object-keys/1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - /object-path/0.11.8: - resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==} - engines: {node: '>= 10.12.0'} - dev: false - - /object.assign/4.1.2: - resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - has-symbols: 1.0.3 - object-keys: 1.1.1 - - /object.entries/1.1.5: - resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: true - - /object.fromentries/2.0.5: - resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: true - - /object.getownpropertydescriptors/2.1.3: - resolution: {integrity: sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==} - engines: {node: '>= 0.8'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: false - - /object.hasown/1.1.0: - resolution: {integrity: sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==} - dependencies: - define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: true - - /object.values/1.1.5: - resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: true - - /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} - dependencies: - wrappy: 1.0.2 - - /onetime/2.0.1: - resolution: {integrity: sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=} - engines: {node: '>=4'} - dependencies: - mimic-fn: 1.2.0 - dev: true - - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - - /opener/1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - dev: true - - /optionator/0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 - - /optionator/0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - dev: true - - /ora/5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - - /os-tmpdir/1.0.2: - resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} - engines: {node: '>=0.10.0'} - dev: true - - /p-cancelable/1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - dev: true - - /p-limit/1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: true - - /p-limit/3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-locate/2.0.0: - resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} - engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: true - - /p-map/2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: true - - /p-try/1.0.0: - resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} - engines: {node: '>=4'} - dev: true - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true - - /package-json/6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} - engines: {node: '>=8'} - dependencies: - got: 9.6.0 - registry-auth-token: 4.2.1 - registry-url: 5.1.0 - semver: 6.3.0 - dev: true - - /param-case/3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - dependencies: - dot-case: 3.0.4 - tslib: 2.3.1 - dev: true - - /parent-module/1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - - /parse-entities/2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - dev: false - - /parse-filepath/1.0.2: - resolution: {integrity: sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=} - engines: {node: '>=0.8'} - dependencies: - is-absolute: 1.0.0 - map-cache: 0.2.2 - path-root: 0.1.1 - dev: true - - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.16.7 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - - /parse-numeric-range/1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - dev: false - - /parse5-htmlparser2-tree-adapter/6.0.1: - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} - dependencies: - parse5: 6.0.1 - dev: false - - /parse5/6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - - /pascal-case/3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - dev: true - - /path-case/3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.3.1 - dev: true - - /path-exists/3.0.0: - resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} - engines: {node: '>=4'} - dev: true - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-is-absolute/1.0.1: - resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} - engines: {node: '>=0.10.0'} - dev: true - - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-root-regex/0.1.2: - resolution: {integrity: sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=} - engines: {node: '>=0.10.0'} - dev: true - - /path-root/0.1.1: - resolution: {integrity: sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=} - engines: {node: '>=0.10.0'} - dependencies: - path-root-regex: 0.1.2 - dev: true - - /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pirates/4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} - engines: {node: '>= 6'} - dev: true - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - - /postcss/8.4.5: - resolution: {integrity: sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.2 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false - - /prebuild-install/7.0.1: - resolution: {integrity: sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==} - engines: {node: '>=10'} - hasBin: true - dependencies: - detect-libc: 2.0.1 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.6 - mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 3.8.0 - npmlog: 4.1.2 - pump: 3.0.0 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - dev: false - - /prelude-ls/1.1.2: - resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=} - engines: {node: '>= 0.8.0'} - - /prelude-ls/1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /prepend-http/2.0.0: - resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} - engines: {node: '>=4'} - dev: true - - /prettier/2.6.1: - resolution: {integrity: sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true - - /pretty-format/27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 - dev: true - - /pretty-quick/3.1.3_prettier@2.6.1: - resolution: {integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==} - engines: {node: '>=10.13'} - hasBin: true - peerDependencies: - prettier: '>=2.0.0' - dependencies: - chalk: 3.0.0 - execa: 4.1.0 - find-up: 4.1.0 - ignore: 5.2.0 - mri: 1.2.0 - multimatch: 4.0.0 - prettier: 2.6.1 - dev: true - - /prismjs/1.27.0: - resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} - engines: {node: '>=6'} - dev: false - - /process-nextick-args/2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false - - /promise/7.3.1: - resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} - dependencies: - asap: 2.0.6 - - /prompts/2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - - /prop-types/15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - /property-information/6.1.1: - resolution: {integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==} - dev: false - - /psl/1.8.0: - resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} - - /pump/3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - /punycode/2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} - engines: {node: '>=6'} - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /raw-body/2.3.2: - resolution: {integrity: sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.0.0 - http-errors: 1.6.2 - iconv-lite: 0.4.19 - unpipe: 1.0.0 - dev: false - - /rc/1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.6 - strip-json-comments: 2.0.1 - - /react-clientside-effect/1.2.5_react@17.0.2: - resolution: {integrity: sha512-2bL8qFW1TGBHozGGbVeyvnggRpMjibeZM2536AKNENLECutp2yfs44IL8Hmpn8qjFQ2K7A9PnYf3vc7aQq/cPA==} - peerDependencies: - react: ^15.3.0 || ^16.0.0 || ^17.0.0 - dependencies: - '@babel/runtime': 7.17.8 - react: 17.0.2 - dev: false - - /react-dom/17.0.2_react@17.0.2: - resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} - peerDependencies: - react: 17.0.2 - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react: 17.0.2 - scheduler: 0.20.2 - dev: false - - /react-dropzone/12.0.4_react@17.0.2: - resolution: {integrity: sha512-fcqHEYe1MzAghU6/Hz86lHDlBNsA+lO48nAcm7/wA+kIzwS6uuJbUG33tBZjksj7GAZ1iUQ6NHwjUURPmSGang==} - engines: {node: '>= 10.13'} - peerDependencies: - react: '>= 16.8' - dependencies: - attr-accept: 2.2.2 - file-selector: 0.4.0 - prop-types: 15.8.1 - react: 17.0.2 - dev: false - - /react-fast-compare/2.0.4: - resolution: {integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==} - dev: false - - /react-focus-lock/2.8.1_03a98942b76c57740a9573edba2d1cc1: - resolution: {integrity: sha512-4kb9I7JIiBm0EJ+CsIBQ+T1t5qtmwPRbFGYFQ0t2q2qIpbFbYTHDjnjJVFB7oMBtXityEOQehblJPjqSIf3Amg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.17.8 - focus-lock: 0.10.2 - prop-types: 15.8.1 - react: 17.0.2 - react-clientside-effect: 1.2.5_react@17.0.2 - use-callback-ref: 1.2.5_03a98942b76c57740a9573edba2d1cc1 - use-sidecar: 1.0.5_react@17.0.2 - transitivePeerDependencies: - - '@types/react' - dev: false - - /react-icons/4.3.1_react@17.0.2: - resolution: {integrity: sha512-cB10MXLTs3gVuXimblAdI71jrJx8njrJZmNMEMC+sQu5B/BIOmlsAjskdqpn81y8UBVEGuHODd7/ci5DvoSzTQ==} - peerDependencies: - react: '*' - dependencies: - react: 17.0.2 - dev: false - - /react-is/16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - /react-remove-scroll-bar/2.2.0_03a98942b76c57740a9573edba2d1cc1: - resolution: {integrity: sha512-UU9ZBP1wdMR8qoUs7owiVcpaPwsQxUDC2lypP6mmixaGlARZa7ZIBx1jcuObLdhMOvCsnZcvetOho0wzPa9PYg==} - engines: {node: '>=8.5.0'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 - react: ^16.8.0 || ^17.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 17.0.43 - react: 17.0.2 - react-style-singleton: 2.1.1_03a98942b76c57740a9573edba2d1cc1 - tslib: 1.14.1 - dev: false - - /react-remove-scroll/2.4.4_03a98942b76c57740a9573edba2d1cc1: - resolution: {integrity: sha512-EyC5ohYhaeKbThMSQxuN2i+QC5HqV3AJvNZKEdiATITexu0gHm00+5ko0ltNS1ajYJVeDgVG2baRSCei0AUWlQ==} - engines: {node: '>=8.5.0'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 17.0.43 - react: 17.0.2 - react-remove-scroll-bar: 2.2.0_03a98942b76c57740a9573edba2d1cc1 - react-style-singleton: 2.1.1_03a98942b76c57740a9573edba2d1cc1 - tslib: 1.14.1 - use-callback-ref: 1.2.5_03a98942b76c57740a9573edba2d1cc1 - use-sidecar: 1.0.5_react@17.0.2 - dev: false - - /react-shallow-renderer/16.14.1_react@17.0.2: - resolution: {integrity: sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==} - peerDependencies: - react: ^16.0.0 || ^17.0.0 - dependencies: - object-assign: 4.1.1 - react: 17.0.2 - react-is: 17.0.2 - dev: true - - /react-style-singleton/2.1.1_03a98942b76c57740a9573edba2d1cc1: - resolution: {integrity: sha512-jNRp07Jza6CBqdRKNgGhT3u9umWvils1xsuMOjZlghBDH2MU0PL2WZor4PGYjXpnRCa9DQSlHMs/xnABWOwYbA==} - engines: {node: '>=8.5.0'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 - react: ^16.8.0 || ^17.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 17.0.43 - get-nonce: 1.0.1 - invariant: 2.2.4 - react: 17.0.2 - tslib: 1.14.1 - dev: false - - /react-test-renderer/17.0.2_react@17.0.2: - resolution: {integrity: sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==} - peerDependencies: - react: 17.0.2 - dependencies: - object-assign: 4.1.1 - react: 17.0.2 - react-is: 17.0.2 - react-shallow-renderer: 16.14.1_react@17.0.2 - scheduler: 0.20.2 - dev: true - - /react/17.0.2: - resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - dev: false - - /readable-stream/2.3.7: - resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - - /readable-stream/3.6.0: - resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /regenerator-runtime/0.13.9: - resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} - - /regexp.prototype.flags/1.4.1: - resolution: {integrity: sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - dev: true - - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - - /registry-auth-token/4.2.1: - resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} - engines: {node: '>=6.0.0'} - dependencies: - rc: 1.2.8 - dev: true - - /registry-url/5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} - dependencies: - rc: 1.2.8 - dev: true - - /rehype-stringify/9.0.3: - resolution: {integrity: sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==} - dependencies: - '@types/hast': 2.3.4 - hast-util-to-html: 8.0.3 - unified: 10.1.2 - dev: false - - /relay-compiler/12.0.0_graphql@15.8.0: - resolution: {integrity: sha512-SWqeSQZ+AMU/Cr7iZsHi1e78Z7oh00I5SvR092iCJq79aupqJ6Ds+I1Pz/Vzo5uY5PY0jvC4rBJXzlIN5g9boQ==} - hasBin: true - peerDependencies: - graphql: ^15.0.0 - dependencies: - '@babel/core': 7.17.8 - '@babel/generator': 7.17.7 - '@babel/parser': 7.17.8 - '@babel/runtime': 7.17.8 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - babel-preset-fbjs: 3.4.0_@babel+core@7.17.8 - chalk: 4.1.2 - fb-watchman: 2.0.1 - fbjs: 3.0.4 - glob: 7.2.0 - graphql: 15.8.0 - immutable: 3.7.6 - invariant: 2.2.4 - nullthrows: 1.1.1 - relay-runtime: 12.0.0 - signedsource: 1.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - - /relay-runtime/12.0.0: - resolution: {integrity: sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==} - dependencies: - '@babel/runtime': 7.17.8 - fbjs: 3.0.4 - invariant: 2.2.4 - transitivePeerDependencies: - - encoding - dev: true - - /remark-footnotes/3.0.0: - resolution: {integrity: sha512-ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg==} - dependencies: - mdast-util-footnote: 0.1.7 - micromark-extension-footnote: 0.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-frontmatter/3.0.0: - resolution: {integrity: sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==} - dependencies: - mdast-util-frontmatter: 0.2.0 - micromark-extension-frontmatter: 0.2.2 - dev: false - - /remark-gfm/1.0.0: - resolution: {integrity: sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==} - dependencies: - mdast-util-gfm: 0.1.2 - micromark-extension-gfm: 0.3.3 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-parse/10.0.1: - resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-from-markdown: 1.2.0 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-parse/9.0.0: - resolution: {integrity: sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==} - dependencies: - mdast-util-from-markdown: 0.8.5 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-prism/1.3.6: - resolution: {integrity: sha512-yYSXJ2MEK2DeD9UKDKFkQPcVqRx6aX2FYD1kE27ScogpZ/BBO8MoOO6gf/AKqfXvKGnP51wqvDEBmPseypgaug==} - dependencies: - classnames: 2.3.1 - css-selector-parser: 1.4.1 - escape-html: 1.0.3 - jsdom: 16.7.0 - parse-numeric-range: 1.3.0 - parse5: 6.0.1 - parse5-htmlparser2-tree-adapter: 6.0.1 - prismjs: 1.27.0 - unist-util-map: 2.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: false - - /remark-rehype/10.1.0: - resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} - dependencies: - '@types/hast': 2.3.4 - '@types/mdast': 3.0.10 - mdast-util-to-hast: 12.1.1 - unified: 10.1.2 - dev: false - - /remark-stringify/10.0.2: - resolution: {integrity: sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-to-markdown: 1.3.0 - unified: 10.1.2 - dev: false - - /remark/14.0.2: - resolution: {integrity: sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==} - dependencies: - '@types/mdast': 3.0.10 - remark-parse: 10.0.1 - remark-stringify: 10.0.2 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /remedial/1.0.8: - resolution: {integrity: sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==} - dev: true - - /remove-trailing-separator/1.1.0: - resolution: {integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=} - dev: true - - /remove-trailing-spaces/1.0.8: - resolution: {integrity: sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==} - dev: true - - /repeat-string/1.6.1: - resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=} - engines: {node: '>=0.10'} - dev: false - - /replaceall/0.1.6: - resolution: {integrity: sha1-gdgax663LX9cSUKt8ml6MiBojY4=} - engines: {node: '>= 0.8.x'} - dev: true - - /require-directory/2.1.1: - resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} - engines: {node: '>=0.10.0'} - dev: true - - /require-main-filename/2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true - - /resolve-cwd/3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - - /resolve-from/4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true - - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true - - /resolve.exports/1.1.0: - resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} - engines: {node: '>=10'} - dev: true - - /resolve/1.22.0: - resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} - hasBin: true - dependencies: - is-core-module: 2.8.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /resolve/2.0.0-next.3: - resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} - dependencies: - is-core-module: 2.8.1 - path-parse: 1.0.7 - dev: true - - /responselike/1.0.2: - resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} - dependencies: - lowercase-keys: 1.0.1 - dev: true - - /restore-cursor/2.0.0: - resolution: {integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368=} - engines: {node: '>=4'} - dependencies: - onetime: 2.0.1 - signal-exit: 3.0.7 - dev: true - - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /retry/0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - dev: false - - /reusify/1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.0 - dev: true - - /run-async/2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: true - - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /rxjs/6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - dependencies: - tslib: 1.14.1 - dev: true - - /rxjs/7.5.5: - resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} - dependencies: - tslib: 2.3.1 - - /sade/1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - dev: false - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - /saslprep/1.0.3: - resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==} - engines: {node: '>=6'} - requiresBuild: true - dependencies: - sparse-bitfield: 3.0.3 - dev: false - optional: true - - /saxes/5.0.1: - resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} - engines: {node: '>=10'} - dependencies: - xmlchars: 2.2.0 - - /scheduler/0.20.2: - resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - - /scuid/1.1.0: - resolution: {integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==} - dev: true - - /semver/5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - - /semver/6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: true - - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /sentence-case/3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - upper-case-first: 2.0.2 - dev: true - - /set-blocking/2.0.0: - resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} - - /setimmediate/1.0.5: - resolution: {integrity: sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=} - - /setprototypeof/1.0.3: - resolution: {integrity: sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=} - dev: false - - /setprototypeof/1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: false - - /sha.js/2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} - hasBin: true - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: false - - /sharp/0.30.3: - resolution: {integrity: sha512-rjpfJFK58ZOFSG8sxYSo3/JQb4ej095HjXp9X7gVu7gEn1aqSG8TCW29h/Rr31+PXrFADo1H/vKfw0uhMQWFtg==} - engines: {node: '>=12.13.0'} - requiresBuild: true - dependencies: - color: 4.2.1 - detect-libc: 2.0.1 - node-addon-api: 4.3.0 - prebuild-install: 7.0.1 - semver: 7.3.5 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - dev: false - - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /side-channel/1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.1 - object-inspect: 1.12.0 - - /sift/16.0.0: - resolution: {integrity: sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ==} - dev: false - - /signal-exit/3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - /signedsource/1.0.0: - resolution: {integrity: sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=} - dev: true - - /simple-concat/1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - dev: false - - /simple-get/4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - dev: false - - /simple-swizzle/0.2.2: - resolution: {integrity: sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=} - dependencies: - is-arrayish: 0.3.2 - dev: false - - /sirv/1.0.19: - resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} - engines: {node: '>= 10'} - dependencies: - '@polka/url': 1.0.0-next.21 - mrmime: 1.0.0 - totalist: 1.1.0 - dev: true - - /sisteransi/1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /slice-ansi/0.0.4: - resolution: {integrity: sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=} - engines: {node: '>=0.10.0'} - dev: true - - /smart-buffer/4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: false - - /snake-case/3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.3.1 - dev: true - - /socks/2.6.2: - resolution: {integrity: sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} - dependencies: - ip: 1.1.5 - smart-buffer: 4.2.0 - dev: false - - /source-map-js/1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: false - - /source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - - /source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} - engines: {node: '>=0.10.0'} - dev: true - - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - /source-map/0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} - dev: true - - /space-separated-tokens/2.0.1: - resolution: {integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==} - dev: false - - /sparse-bitfield/3.0.3: - resolution: {integrity: sha1-/0rm5oZWBWuks+eSqzM004JzyhE=} - dependencies: - memory-pager: 1.5.0 - dev: false - optional: true - - /sponge-case/1.0.1: - resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} - dependencies: - tslib: 2.3.1 - dev: true - - /sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} - dev: true - - /stack-utils/2.0.5: - resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 - dev: true - - /statuses/1.5.0: - resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} - engines: {node: '>= 0.6'} - dev: false - - /streamsearch/0.1.2: - resolution: {integrity: sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=} - engines: {node: '>=0.8.0'} - dev: false - - /string-env-interpolation/1.0.1: - resolution: {integrity: sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==} - dev: true - - /string-length/4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - dev: true - - /string-width/1.0.2: - resolution: {integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=} - engines: {node: '>=0.10.0'} - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - strip-ansi: 3.0.1 - - /string-width/2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} - dependencies: - is-fullwidth-code-point: 2.0.0 - strip-ansi: 4.0.0 - dev: true - - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string.prototype.matchall/4.0.7: - resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - get-intrinsic: 1.1.1 - has-symbols: 1.0.3 - internal-slot: 1.0.3 - regexp.prototype.flags: 1.4.1 - side-channel: 1.0.4 - dev: true - - /string.prototype.trimend/1.0.4: - resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - - /string.prototype.trimstart/1.0.4: - resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - - /string_decoder/1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: false - - /string_decoder/1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - - /stringify-entities/4.0.2: - resolution: {integrity: sha512-MTxTVcEkorNtBbNpoFJPEh0kKdM6+QbMjLbaxmvaPMmayOXdr/AIVIIJX7FReUVweRBFJfZepK4A4AKgwuFpMQ==} - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - dev: false - - /strip-ansi/3.0.1: - resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: 2.1.1 - - /strip-ansi/4.0.0: - resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=} - engines: {node: '>=4'} - dependencies: - ansi-regex: 3.0.1 - dev: true - - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-bom/3.0.0: - resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} - engines: {node: '>=4'} - dev: true - - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true - - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - - /strip-json-comments/2.0.1: - resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} - engines: {node: '>=0.10.0'} - - /strip-json-comments/3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true - - /styled-jsx/5.0.1_react@17.0.2: - resolution: {integrity: sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - dependencies: - react: 17.0.2 - dev: false - - /subscriptions-transport-ws/0.11.0_graphql@15.8.0: - resolution: {integrity: sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==} - deprecated: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md - peerDependencies: - graphql: ^15.7.2 || ^16.0.0 - dependencies: - backo2: 1.0.2 - eventemitter3: 3.1.2 - graphql: 15.8.0 - iterall: 1.3.0 - symbol-observable: 1.2.0 - ws: 7.5.7 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /subscriptions-transport-ws/0.9.19_graphql@15.8.0: - resolution: {integrity: sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==} - deprecated: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md - peerDependencies: - graphql: '>=0.10.0' - dependencies: - backo2: 1.0.2 - eventemitter3: 3.1.2 - graphql: 15.8.0 - iterall: 1.3.0 - symbol-observable: 1.2.0 - ws: 7.5.7 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /supports-color/2.0.0: - resolution: {integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=} - engines: {node: '>=0.8.0'} - dev: true - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-hyperlinks/2.2.0: - resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - dev: true - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /swap-case/2.0.2: - resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==} - dependencies: - tslib: 2.3.1 - dev: true - - /swr/1.2.2_react@17.0.2: - resolution: {integrity: sha512-ky0BskS/V47GpW8d6RU7CPsr6J8cr7mQD6+do5eky3bM0IyJaoi3vO8UhvrzJaObuTlGhPl2szodeB2dUd76Xw==} - peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 17.0.2 - dev: false - - /symbol-observable/1.2.0: - resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==} - engines: {node: '>=0.10.0'} - - /symbol-tree/3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - /sync-fetch/0.3.1: - resolution: {integrity: sha512-xj5qiCDap/03kpci5a+qc5wSJjc8ZSixgG2EUmH1B8Ea2sfWclQA7eH40hiHPCtkCn6MCk4Wb+dqcXdCy2PP3g==} - engines: {node: '>=8'} - dependencies: - buffer: 5.7.1 - node-fetch: 2.6.7 - transitivePeerDependencies: - - encoding - dev: true - - /tabbable/4.0.0: - resolution: {integrity: sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ==} - dev: false - - /tar-fs/2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 - dev: false - - /tar-stream/2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: false - - /terminal-link/2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} - dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.2.0 - dev: true - - /test-exclude/6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.0 - minimatch: 3.1.2 - dev: true - - /text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} - dev: true - - /throat/6.0.1: - resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} - dev: true - - /through/2.3.8: - resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} - dev: true - - /tiny-warning/1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - dev: false - - /title-case/3.0.3: - resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} - dependencies: - tslib: 2.3.1 - dev: true - - /tmp/0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: true - - /tmpl/1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - dev: true - - /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} - engines: {node: '>=4'} - dev: true - - /to-readable-stream/1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} - dev: true - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /toidentifier/1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: false - - /totalist/1.1.0: - resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} - engines: {node: '>=6'} - dev: true - - /tough-cookie/4.0.0: - resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} - engines: {node: '>=6'} - dependencies: - psl: 1.8.0 - punycode: 2.1.1 - universalify: 0.1.2 - - /tr46/0.0.3: - resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=} - - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.1.1 - - /tr46/3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - dependencies: - punycode: 2.1.1 - dev: false - - /traverse/0.6.6: - resolution: {integrity: sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=} - dev: false - - /trough/1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - dev: false - - /trough/2.1.0: - resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} - dev: false - - /ts-invariant/0.4.4: - resolution: {integrity: sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==} - dependencies: - tslib: 1.14.1 - dev: false - - /ts-jest/27.1.4_9985e1834e803358b7be1e6ce5ca0eea: - resolution: {integrity: sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@types/jest': ^27.0.0 - babel-jest: '>=27.0.0 <28' - esbuild: '*' - jest: ^27.0.0 - typescript: '>=3.8 <5.0' - peerDependenciesMeta: - '@babel/core': - optional: true - '@types/jest': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@types/jest': 27.4.1 - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - jest: 27.5.1 - jest-util: 27.5.1 - json5: 2.2.1 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.3.5 - typescript: 4.6.3 - yargs-parser: 20.2.9 - dev: true - - /ts-log/2.2.4: - resolution: {integrity: sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==} - dev: true - - /ts-node/9.1.1_typescript@4.6.3: - resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} - engines: {node: '>=10.0.0'} - hasBin: true - peerDependencies: - typescript: '>=2.7' - dependencies: - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - source-map-support: 0.5.21 - typescript: 4.6.3 - yn: 3.1.1 - dev: true - - /tsconfig-paths/3.14.1: - resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.1 - minimist: 1.2.6 - strip-bom: 3.0.0 - dev: true - - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - /tslib/2.3.1: - resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} - - /tsutils/3.21.0_typescript@4.6.3: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.6.3 - dev: true - - /tunnel-agent/0.6.0: - resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /type-check/0.3.2: - resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - - /type-check/0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - - /type-detect/4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /type-fest/0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - - /typescript/4.6.3: - resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - - /ua-parser-js/0.7.31: - resolution: {integrity: sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==} - - /unbox-primitive/1.0.1: - resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} - dependencies: - function-bind: 1.1.1 - has-bigints: 1.0.1 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - - /unc-path-regex/0.1.2: - resolution: {integrity: sha1-5z3T17DXxe2G+6xrCufYxqadUPo=} - engines: {node: '>=0.10.0'} - dev: true - - /undici/4.16.0: - resolution: {integrity: sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==} - engines: {node: '>=12.18'} - dev: true - - /unified/10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - dependencies: - '@types/unist': 2.0.6 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.0.0 - trough: 2.1.0 - vfile: 5.3.2 - dev: false - - /unified/9.2.2: - resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} - dependencies: - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - dev: false - - /unist-builder/3.0.0: - resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /unist-util-generated/2.0.0: - resolution: {integrity: sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==} - dev: false - - /unist-util-is/4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - dev: false - - /unist-util-is/5.1.1: - resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==} - dev: false - - /unist-util-map/2.0.1: - resolution: {integrity: sha512-VdNvk4BQUUU9Rgr8iUOvclHa/iN9O+6Dt66FKij8l9OVezGG37gGWCPU5KSax1R2degqXFvl3kWTkvzL79e9tQ==} - dependencies: - '@types/mdast': 3.0.10 - object-assign: 4.1.1 - dev: false - - /unist-util-position/4.0.2: - resolution: {integrity: sha512-Y6+plxR41dOLbyyqVDLuGWgXDmxdXslCSRYQkSDagBnOT9oFsQH0J8FzhirSklUEe0xZTT0WDnAE1gXPaDFljA==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /unist-util-stringify-position/2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /unist-util-stringify-position/3.0.2: - resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /unist-util-visit-parents/3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 4.1.0 - dev: false - - /unist-util-visit-parents/4.1.1: - resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 5.1.1 - dev: false - - /unist-util-visit-parents/5.1.0: - resolution: {integrity: sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 5.1.1 - dev: false - - /unist-util-visit/3.1.0: - resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 5.1.1 - unist-util-visit-parents: 4.1.1 - dev: false - - /unist-util-visit/4.1.0: - resolution: {integrity: sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 5.1.1 - unist-util-visit-parents: 5.1.0 - dev: false - - /universal-cookie/4.0.4: - resolution: {integrity: sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw==} - dependencies: - '@types/cookie': 0.3.3 - cookie: 0.4.2 - dev: false - - /universalify/0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - /unixify/1.0.0: - resolution: {integrity: sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=} - engines: {node: '>=0.10.0'} - dependencies: - normalize-path: 2.1.1 - dev: true - - /unpipe/1.0.0: - resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} - engines: {node: '>= 0.8'} - dev: false - - /upper-case-first/2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} - dependencies: - tslib: 2.3.1 - dev: true - - /upper-case/2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} - dependencies: - tslib: 2.3.1 - dev: true - - /uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.1.1 - dev: true - - /url-parse-lax/3.0.0: - resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - dev: true - - /use-callback-ref/1.2.5_03a98942b76c57740a9573edba2d1cc1: - resolution: {integrity: sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg==} - engines: {node: '>=8.5.0'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 - react: ^16.8.0 || ^17.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 17.0.43 - react: 17.0.2 - dev: false - - /use-sidecar/1.0.5_react@17.0.2: - resolution: {integrity: sha512-k9jnrjYNwN6xYLj1iaGhonDghfvmeTmYjAiGvOr7clwKfPjMXJf4/HOr7oT5tJwYafgp2tG2l3eZEOfoELiMcA==} - engines: {node: '>=8.5.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 - dependencies: - detect-node-es: 1.1.0 - react: 17.0.2 - tslib: 1.14.1 - dev: false - - /use-subscription/1.5.1_react@17.0.2: - resolution: {integrity: sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 - dependencies: - object-assign: 4.1.1 - react: 17.0.2 - dev: false - - /util-deprecate/1.0.2: - resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} - - /util.promisify/1.1.1: - resolution: {integrity: sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - for-each: 0.3.3 - has-symbols: 1.0.3 - object.getownpropertydescriptors: 2.1.3 - dev: false - - /uuid/3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: false - - /uuid/8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: false - - /uvu/0.5.3: - resolution: {integrity: sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==} - engines: {node: '>=8'} - hasBin: true - dependencies: - dequal: 2.0.2 - diff: 5.0.0 - kleur: 4.1.4 - sade: 1.8.1 - dev: false - - /v8-compile-cache/2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} - dev: true - - /v8-to-istanbul/8.1.1: - resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} - engines: {node: '>=10.12.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.8.0 - source-map: 0.7.3 - dev: true - - /valid-url/1.0.9: - resolution: {integrity: sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=} - dev: true - - /value-or-promise/1.0.11: - resolution: {integrity: sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==} - engines: {node: '>=12'} - - /vfile-message/2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - dependencies: - '@types/unist': 2.0.6 - unist-util-stringify-position: 2.0.3 - dev: false - - /vfile-message/3.1.2: - resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} - dependencies: - '@types/unist': 2.0.6 - unist-util-stringify-position: 3.0.2 - dev: false - - /vfile/4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - dependencies: - '@types/unist': 2.0.6 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 - dev: false - - /vfile/5.3.2: - resolution: {integrity: sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA==} - dependencies: - '@types/unist': 2.0.6 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.2 - vfile-message: 3.1.2 - dev: false - - /w3c-hr-time/1.0.2: - resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} - dependencies: - browser-process-hrtime: 1.0.0 - - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - - /walker/1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - dependencies: - makeerror: 1.0.12 - dev: true - - /wcwidth/1.0.1: - resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=} - dependencies: - defaults: 1.0.3 - dev: true - - /web-streams-polyfill/3.2.0: - resolution: {integrity: sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==} - engines: {node: '>= 8'} - dev: true - - /web-streams-polyfill/4.0.0-beta.1: - resolution: {integrity: sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ==} - engines: {node: '>= 12'} - dev: true - - /webidl-conversions/3.0.1: - resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} - - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} - - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - - /webidl-conversions/7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - dev: false - - /webpack-bundle-analyzer/4.3.0: - resolution: {integrity: sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==} - engines: {node: '>= 10.13.0'} - hasBin: true - dependencies: - acorn: 8.7.0 - acorn-walk: 8.2.0 - chalk: 4.1.2 - commander: 6.2.1 - gzip-size: 6.0.0 - lodash: 4.17.21 - opener: 1.5.2 - sirv: 1.0.19 - ws: 7.5.7 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} - dependencies: - iconv-lite: 0.4.24 - - /whatwg-fetch/3.6.2: - resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} - dev: true - - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - - /whatwg-url/11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - dependencies: - tr46: 3.0.0 - webidl-conversions: 7.0.0 - dev: false - - /whatwg-url/5.0.0: - resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=} - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - - /which-boxed-primitive/1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.6 - is-string: 1.0.7 - is-symbol: 1.0.4 - - /which-module/2.0.0: - resolution: {integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=} - dev: true - - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /wide-align/1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - dependencies: - string-width: 1.0.2 - dev: false - - /word-wrap/1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - - /wrap-ansi/3.0.1: - resolution: {integrity: sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=} - engines: {node: '>=4'} - dependencies: - string-width: 2.1.1 - strip-ansi: 4.0.0 - dev: true - - /wrap-ansi/6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} - - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true - - /ws/7.5.7: - resolution: {integrity: sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - /ws/8.5.0: - resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - - /xmlchars/2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - /xss/1.0.11: - resolution: {integrity: sha512-EimjrjThZeK2MO7WKR9mN5ZC1CSqivSl55wvUK5EtU6acf0rzEE1pN+9ZDrFXJ82BRp3JL38pPE6S4o/rpp1zQ==} - engines: {node: '>= 0.10.0'} - hasBin: true - dependencies: - commander: 2.20.3 - cssfilter: 0.0.10 - dev: false - - /y18n/4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - /yaml-ast-parser/0.0.43: - resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} - dev: true - - /yaml/1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yargs-parser/18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: true - - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - - /yargs-parser/21.0.1: - resolution: {integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==} - engines: {node: '>=12'} - dev: true - - /yargs/15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.0 - y18n: 4.0.3 - yargs-parser: 18.1.3 - dev: true - - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true - - /yargs/17.4.0: - resolution: {integrity: sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==} - engines: {node: '>=12'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.0.1 - dev: true - - /yn/3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true - - /yocto-queue/0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true - - /zen-observable-ts/0.8.21: - resolution: {integrity: sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==} - dependencies: - tslib: 1.14.1 - zen-observable: 0.8.15 - dev: false - - /zen-observable/0.8.15: - resolution: {integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==} - dev: false - - /zod/3.14.3: - resolution: {integrity: sha512-OzwRCSXB1+/8F6w6HkYHdbuWysYWnAF4fkRgKDcSFc54CE+Sv0rHXKfeNUReGCrHukm1LNpi6AYeXotznhYJbQ==} - dev: false - - /zwitch/1.0.5: - resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} - dev: false - - /zwitch/2.0.2: - resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} - dev: false diff --git a/scripts/fill b/scripts/fill index 559cab63d..08d4e6364 100644 --- a/scripts/fill +++ b/scripts/fill @@ -9,31 +9,31 @@ const fm = require("./parse-fm"); const { users } = require("../src/fixtures/user-matrix.json"); const connect = async () => - await m.connect("mongodb://127.0.0.1:27017/downwrite", { - useNewUrlParser: true, - useUnifiedTopology: true, - useFindAndModify: false, - useCreateIndex: true, - poolSize: 10 - }); + await m.connect("mongodb://127.0.0.1:27017/downwrite", { + useNewUrlParser: true, + useUnifiedTopology: true, + useFindAndModify: false, + useCreateIndex: true, + poolSize: 10 + }); const postSchema = new m.Schema({ - id: String, - title: String, - author: String, - content: Object, - public: Boolean, - dateAdded: Date, - dateModified: Date, - user: { type: m.Schema.Types.ObjectId, ref: "User" } + id: String, + title: String, + author: String, + content: Object, + public: Boolean, + dateAdded: Date, + dateModified: Date, + user: { type: m.Schema.Types.ObjectId, ref: "User" } }); const userSchema = new m.Schema({ - username: { type: String, required: true, index: { unique: true } }, - email: { type: String, required: true, index: { unique: true } }, - password: { type: String, required: true }, - admin: { type: Boolean, required: true }, - posts: [{ type: m.Schema.Types.ObjectId, ref: "Post" }] + username: { type: String, required: true, index: { unique: true } }, + email: { type: String, required: true, index: { unique: true } }, + password: { type: String, required: true }, + admin: { type: Boolean, required: true }, + posts: [{ type: m.Schema.Types.ObjectId, ref: "Post" }] }); const user = m.model("User", userSchema); @@ -43,64 +43,64 @@ const post = m.model("Post", postSchema); // Loop through users and create posts const getSaltedHash = async (password) => { - const salt = await bcrypt.genSalt(10); - const hash = await bcrypt.hash(password, salt); + const salt = await bcrypt.genSalt(10); + const hash = await bcrypt.hash(password, salt); - return hash; + return hash; }; const createUser = async ({ username, email, password }) => { - console.log("Creating user: ", username); - const hash = await getSaltedHash(password); - const id = uuid(); - const u = await user.create({ - email, - username, - id, - password: hash, - admin: false - }); - return u; + console.log("Creating user: ", username); + const hash = await getSaltedHash(password); + const id = uuid(); + const u = await user.create({ + email, + username, + id, + password: hash, + admin: false + }); + return u; }; const createPost = async ({ title, content }, _id, name) => { - console.log("Creating entry: ", title); - const id = uuid(); - const date = new Date(); - const entry = await post.create({ - title, - content, - id, - public: false, - dateAdded: date, - dateModified: date, - user: _id, - author: name - }); - console.log("Finished"); - return entry; + console.log("Creating entry: ", title); + const id = uuid(); + const date = new Date(); + const entry = await post.create({ + title, + content, + id, + public: false, + dateAdded: date, + dateModified: date, + user: _id, + author: name + }); + console.log("Finished"); + return entry; }; const createPostFromFile = (file) => { - const { body, attributes } = fm(fs.readFileSync(file, "utf8")); + const { body, attributes } = fm(fs.readFileSync(file, "utf8")); - return (_id, name) => - createPost({ content: body, title: attributes.title }, _id, name); + return (_id, name) => + createPost({ content: body, title: attributes.title }, _id, name); }; const generateContent = async (user) => { - const u = await createUser(user); - const f = fs.readdirSync("./src/fixtures/entries"); - await Promise.all( - f.map((file) => - createPostFromFile(join("src/fixtures/entries", file))(u._id, u.username) - ) - ); + const u = await createUser(user); + const f = fs.readdirSync("./src/fixtures/entries"); + await Promise.all( + f.map((file) => + createPostFromFile(join("src/fixtures/entries", file))(u._id, u.username) + ) + ); }; const generateDBContents = async (db) => { - await Promise.all(users.map(generateContent)); - await db.connection.close(); + await Promise.all(users.map(generateContent)); + await db.connection.close(); }; connect().then(generateDBContents); diff --git a/scripts/parse-fm.js b/scripts/parse-fm.js index 1f0f2a94e..282111fa7 100644 --- a/scripts/parse-fm.js +++ b/scripts/parse-fm.js @@ -1,85 +1,85 @@ const optionalByteOrderMark = "\\ufeff?"; const pattern = - "^(" + - optionalByteOrderMark + - "(= yaml =|---)" + - "$([\\s\\S]*?)" + - "^(?:\\2|\\.\\.\\.)\\s*" + - "$" + - "(?:\\n)?)"; + "^(" + + optionalByteOrderMark + + "(= yaml =|---)" + + "$([\\s\\S]*?)" + + "^(?:\\2|\\.\\.\\.)\\s*" + + "$" + + "(?:\\n)?)"; const regex = new RegExp(pattern, "m"); module.exports = function fm(string) { - string = string || ""; - const lines = string.split(/(\r?\n)/); - if (lines[0] && /= yaml =|---/.test(lines[0])) { - return parse(string); - } else { - return { - attributes: {}, - body: string, - bodyBegin: 1 - }; - } + string = string || ""; + const lines = string.split(/(\r?\n)/); + if (lines[0] && /= yaml =|---/.test(lines[0])) { + return parse(string); + } else { + return { + attributes: {}, + body: string, + bodyBegin: 1 + }; + } }; function parse(string) { - const match = regex.exec(string); - if (!match) { - return { - attributes: {}, - body: string, - bodyBegin: 1 - }; - } + const match = regex.exec(string); + if (!match) { + return { + attributes: {}, + body: string, + bodyBegin: 1 + }; + } - const yaml = match[match.length - 1].replace(/^\s+|\s+$/g, ""); - const attributes = computeAttributes(yaml); - const body = string.replace(match[0], ""); - const line = computeLocation(match, string); + const yaml = match[match.length - 1].replace(/^\s+|\s+$/g, ""); + const attributes = computeAttributes(yaml); + const body = string.replace(match[0], ""); + const line = computeLocation(match, string); - return { - attributes: attributes, - body: body, - bodyBegin: line, - frontmatter: yaml - }; + return { + attributes: attributes, + body: body, + bodyBegin: line, + frontmatter: yaml + }; } function computeLocation(match, body) { - let line = 1; - let pos = body.indexOf("\n"); - const offset = match.index + match[0].length; + let line = 1; + let pos = body.indexOf("\n"); + const offset = match.index + match[0].length; - while (pos !== -1) { - if (pos >= offset) { - return line; - } - line++; - pos = body.indexOf("\n", pos + 1); - } + while (pos !== -1) { + if (pos >= offset) { + return line; + } + line++; + pos = body.indexOf("\n", pos + 1); + } - return line; + return line; } function computeAttributes(yaml) { - const splitter = ": "; - const lines = yaml.split(/(\r?\n)/); - let attributes = {}; - lines.forEach((line) => { - if (!line.includes(splitter)) { - return; - } - const split = line.split(splitter); - const key = split[0]; - let value = line.substring(split[0].length + splitter.length).trim(); - if (value.startsWith('"') && value.endsWith('"')) { - value = value.slice(1, -1); - } - attributes = { - ...attributes, - [key]: value - }; - }); - return attributes; + const splitter = ": "; + const lines = yaml.split(/(\r?\n)/); + let attributes = {}; + lines.forEach((line) => { + if (!line.includes(splitter)) { + return; + } + const split = line.split(splitter); + const key = split[0]; + let value = line.substring(split[0].length + splitter.length).trim(); + if (value.startsWith('"') && value.endsWith('"')) { + value = value.slice(1, -1); + } + attributes = { + ...attributes, + [key]: value + }; + }); + return attributes; } diff --git a/scripts/prep-db b/scripts/prep-db index 1f94886a4..6607f6ab8 100755 --- a/scripts/prep-db +++ b/scripts/prep-db @@ -5,21 +5,21 @@ const m = require("mongoose"); const connection = {}; /* creating connection object*/ const clearDB = async () => { - if (connection.isConnected) { - console.log("DB Connection", connection); - } + if (connection.isConnected) { + console.log("DB Connection", connection); + } - console.log("Clearing the database and it's dangerous"); - const db = await m.connect("mongodb://127.0.0.1:27017/downwrite", { - useNewUrlParser: true, - useUnifiedTopology: true, - useFindAndModify: false, - useCreateIndex: true, - poolSize: 10 - }); + console.log("Clearing the database and it's dangerous"); + const db = await m.connect("mongodb://127.0.0.1:27017/downwrite", { + useNewUrlParser: true, + useUnifiedTopology: true, + useFindAndModify: false, + useCreateIndex: true, + poolSize: 10 + }); - await db.connection.dropDatabase(); - await db.connection.close(); + await db.connection.dropDatabase(); + await db.connection.close(); }; clearDB(); diff --git a/src/__generated__/client.ts b/src/__generated__/client.ts index da4b0d82b..1245a92ef 100644 --- a/src/__generated__/client.ts +++ b/src/__generated__/client.ts @@ -5,632 +5,632 @@ export type Maybe = T | null; export type InputMaybe = Maybe; export type Exact = { [K in keyof T]: T[K] }; export type MakeOptional = Omit & { - [SubKey in K]?: Maybe; + [SubKey in K]?: Maybe; }; export type MakeMaybe = Omit & { - [SubKey in K]: Maybe; + [SubKey in K]: Maybe; }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Float: number; - Date: any; + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + Date: any; }; export type IAuthUserPayload = { - __typename?: "AuthUserPayload"; - token: Maybe; + __typename?: "AuthUserPayload"; + token: Maybe; }; export type IAuthor = { - __typename?: "Author"; - gradient: Maybe>>; - username: Maybe; + __typename?: "Author"; + gradient: Maybe>>; + username: Maybe; }; export type IEntry = { - __typename?: "Entry"; - author: Maybe; - content: Maybe; - dateAdded: Maybe; - dateModified: Maybe; - excerpt: Maybe; - id: Maybe; - public: Maybe; - title: Maybe; - user: Maybe; + __typename?: "Entry"; + author: Maybe; + content: Maybe; + dateAdded: Maybe; + dateModified: Maybe; + excerpt: Maybe; + id: Maybe; + public: Maybe; + title: Maybe; + user: Maybe; }; export type IMe = { - __typename?: "Me"; - details: Maybe; - token: Maybe; - usage: IUsageDetails; + __typename?: "Me"; + details: Maybe; + token: Maybe; + usage: IUsageDetails; }; export type IMutation = { - __typename?: "Mutation"; - authenticateUser: Maybe; - createEntry: Maybe; - createUser: Maybe; - deleteEntry: Maybe; - updateEntry: Maybe; - updatePassword: Maybe; - updateUserSettings: Maybe; + __typename?: "Mutation"; + authenticateUser: Maybe; + createEntry: Maybe; + createUser: Maybe; + deleteEntry: Maybe; + updateEntry: Maybe; + updatePassword: Maybe; + updateUserSettings: Maybe; }; export type IMutationAuthenticateUserArgs = { - password: Scalars["String"]; - username: Scalars["String"]; + password: Scalars["String"]; + username: Scalars["String"]; }; export type IMutationCreateEntryArgs = { - content: InputMaybe; - title: InputMaybe; + content: InputMaybe; + title: InputMaybe; }; export type IMutationCreateUserArgs = { - email: Scalars["String"]; - password: Scalars["String"]; - username: Scalars["String"]; + email: Scalars["String"]; + password: Scalars["String"]; + username: Scalars["String"]; }; export type IMutationDeleteEntryArgs = { - id: Scalars["ID"]; + id: Scalars["ID"]; }; export type IMutationUpdateEntryArgs = { - content: Scalars["String"]; - id: Scalars["String"]; - status: Scalars["Boolean"]; - title: Scalars["String"]; + content: Scalars["String"]; + id: Scalars["String"]; + status: Scalars["Boolean"]; + title: Scalars["String"]; }; export type IMutationUpdatePasswordArgs = { - currentPassword: Scalars["String"]; - newPassword: Scalars["String"]; + currentPassword: Scalars["String"]; + newPassword: Scalars["String"]; }; export type IMutationUpdateUserSettingsArgs = { - settings: IUserSettingsInput; + settings: IUserSettingsInput; }; export type IPreview = { - __typename?: "Preview"; - author: Maybe; - content: Maybe; - dateAdded: Maybe; - id: Maybe; - title: Maybe; + __typename?: "Preview"; + author: Maybe; + content: Maybe; + dateAdded: Maybe; + id: Maybe; + title: Maybe; }; export type IQuery = { - __typename?: "Query"; - /** Markdown document */ - entry: Maybe; - /** List of Markdown documents */ - feed: Array; - me: Maybe; - /** Public preview of Markdown document */ - preview: Maybe; - /** User Settings */ - settings: Maybe; + __typename?: "Query"; + /** Markdown document */ + entry: Maybe; + /** List of Markdown documents */ + feed: Array; + me: Maybe; + /** Public preview of Markdown document */ + preview: Maybe; + /** User Settings */ + settings: Maybe; }; export type IQueryEntryArgs = { - id: Scalars["ID"]; + id: Scalars["ID"]; }; export type IQueryPreviewArgs = { - id: Scalars["ID"]; + id: Scalars["ID"]; }; export type IUsageDetails = { - __typename?: "UsageDetails"; - entryCount: Scalars["Int"]; - privateEntries: Scalars["Int"]; - publicEntries: Scalars["Int"]; + __typename?: "UsageDetails"; + entryCount: Scalars["Int"]; + privateEntries: Scalars["Int"]; + publicEntries: Scalars["Int"]; }; export type IUser = { - __typename?: "User"; - admin: Maybe; - email: Scalars["String"]; - id: Scalars["ID"]; - username: Scalars["String"]; + __typename?: "User"; + admin: Maybe; + email: Scalars["String"]; + id: Scalars["ID"]; + username: Scalars["String"]; }; export type IUserSettingsInput = { - email: InputMaybe; - username: InputMaybe; + email: InputMaybe; + username: InputMaybe; }; export type IEntryInfoFragment = { - __typename?: "Entry"; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; + __typename?: "Entry"; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; }; export type IAllPostsQueryVariables = Exact<{ [key: string]: never }>; export type IAllPostsQuery = { - __typename?: "Query"; - feed: Array<{ - __typename?: "Entry"; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; - }>; + __typename?: "Query"; + feed: Array<{ + __typename?: "Entry"; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; + }>; }; export type IEditQueryVariables = Exact<{ - id: Scalars["ID"]; + id: Scalars["ID"]; }>; export type IEditQuery = { - __typename?: "Query"; - entry: { - __typename?: "Entry"; - content: string | null; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; - } | null; + __typename?: "Query"; + entry: { + __typename?: "Entry"; + content: string | null; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; + } | null; }; export type IPreviewQueryVariables = Exact<{ - id: Scalars["ID"]; + id: Scalars["ID"]; }>; export type IPreviewQuery = { - __typename?: "Query"; - preview: { - __typename?: "Preview"; - title: string | null; - dateAdded: any | null; - id: string | null; - content: string | null; - author: { __typename?: "Author"; username: string | null } | null; - } | null; + __typename?: "Query"; + preview: { + __typename?: "Preview"; + title: string | null; + dateAdded: any | null; + id: string | null; + content: string | null; + author: { __typename?: "Author"; username: string | null } | null; + } | null; }; export type IUserDetailsQueryVariables = Exact<{ [key: string]: never }>; export type IUserDetailsQuery = { - __typename?: "Query"; - settings: { __typename?: "User"; username: string; email: string } | null; - me: { - __typename?: "Me"; - usage: { - __typename?: "UsageDetails"; - entryCount: number; - publicEntries: number; - privateEntries: number; - }; - } | null; + __typename?: "Query"; + settings: { __typename?: "User"; username: string; email: string } | null; + me: { + __typename?: "Me"; + usage: { + __typename?: "UsageDetails"; + entryCount: number; + publicEntries: number; + privateEntries: number; + }; + } | null; }; export type IUpdateEntryMutationVariables = Exact<{ - id: Scalars["String"]; - content: Scalars["String"]; - title: Scalars["String"]; - status: Scalars["Boolean"]; + id: Scalars["String"]; + content: Scalars["String"]; + title: Scalars["String"]; + status: Scalars["Boolean"]; }>; export type IUpdateEntryMutation = { - __typename?: "Mutation"; - updateEntry: { - __typename?: "Entry"; - content: string | null; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; - } | null; + __typename?: "Mutation"; + updateEntry: { + __typename?: "Entry"; + content: string | null; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; + } | null; }; export type ICreateEntryMutationVariables = Exact<{ - content: InputMaybe; - title: InputMaybe; + content: InputMaybe; + title: InputMaybe; }>; export type ICreateEntryMutation = { - __typename?: "Mutation"; - createEntry: { - __typename?: "Entry"; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; - } | null; + __typename?: "Mutation"; + createEntry: { + __typename?: "Entry"; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; + } | null; }; export type IRemoveEntryMutationVariables = Exact<{ - id: Scalars["ID"]; + id: Scalars["ID"]; }>; export type IRemoveEntryMutation = { - __typename?: "Mutation"; - deleteEntry: { - __typename?: "Entry"; - title: string | null; - id: string | null; - } | null; + __typename?: "Mutation"; + deleteEntry: { + __typename?: "Entry"; + title: string | null; + id: string | null; + } | null; }; export type ILoginUserMutationVariables = Exact<{ - username: Scalars["String"]; - password: Scalars["String"]; + username: Scalars["String"]; + password: Scalars["String"]; }>; export type ILoginUserMutation = { - __typename?: "Mutation"; - authenticateUser: { __typename?: "AuthUserPayload"; token: string | null } | null; + __typename?: "Mutation"; + authenticateUser: { __typename?: "AuthUserPayload"; token: string | null } | null; }; export type ICreateUserMutationVariables = Exact<{ - username: Scalars["String"]; - email: Scalars["String"]; - password: Scalars["String"]; + username: Scalars["String"]; + email: Scalars["String"]; + password: Scalars["String"]; }>; export type ICreateUserMutation = { - __typename?: "Mutation"; - createUser: { __typename?: "AuthUserPayload"; token: string | null } | null; + __typename?: "Mutation"; + createUser: { __typename?: "AuthUserPayload"; token: string | null } | null; }; export type IUpdateUserSettingsMutationVariables = Exact<{ - settings: IUserSettingsInput; + settings: IUserSettingsInput; }>; export type IUpdateUserSettingsMutation = { - __typename?: "Mutation"; - updateUserSettings: { - __typename?: "User"; - username: string; - email: string; - } | null; + __typename?: "Mutation"; + updateUserSettings: { + __typename?: "User"; + username: string; + email: string; + } | null; }; export type IUpdatePasswordMutationVariables = Exact<{ - current: Scalars["String"]; - newPassword: Scalars["String"]; + current: Scalars["String"]; + newPassword: Scalars["String"]; }>; export type IUpdatePasswordMutation = { - __typename?: "Mutation"; - updatePassword: { __typename?: "AuthUserPayload"; token: string | null } | null; + __typename?: "Mutation"; + updatePassword: { __typename?: "AuthUserPayload"; token: string | null } | null; }; export type IIsMeQueryVariables = Exact<{ [key: string]: never }>; export type IIsMeQuery = { - __typename?: "Query"; - me: { - __typename?: "Me"; - token: string | null; - details: { __typename?: "User"; id: string; username: string } | null; - } | null; + __typename?: "Query"; + me: { + __typename?: "Me"; + token: string | null; + details: { __typename?: "User"; id: string; username: string } | null; + } | null; }; export const EntryInfoFragmentDoc = gql` - fragment EntryInfo on Entry { - title - dateAdded - id - public - } + fragment EntryInfo on Entry { + title + dateAdded + id + public + } `; export const AllPostsDocument = gql` - query AllPosts { - feed { - ...EntryInfo - } - } - ${EntryInfoFragmentDoc} + query AllPosts { + feed { + ...EntryInfo + } + } + ${EntryInfoFragmentDoc} `; export const EditDocument = gql` - query Edit($id: ID!) { - entry(id: $id) { - ...EntryInfo - content - } - } - ${EntryInfoFragmentDoc} + query Edit($id: ID!) { + entry(id: $id) { + ...EntryInfo + content + } + } + ${EntryInfoFragmentDoc} `; export const PreviewDocument = gql` - query Preview($id: ID!) { - preview(id: $id) { - title - dateAdded - id - content - author { - username - } - } - } + query Preview($id: ID!) { + preview(id: $id) { + title + dateAdded + id + content + author { + username + } + } + } `; export const UserDetailsDocument = gql` - query UserDetails { - settings { - username - email - } - me { - usage { - entryCount - publicEntries - privateEntries - } - } - } + query UserDetails { + settings { + username + email + } + me { + usage { + entryCount + publicEntries + privateEntries + } + } + } `; export const UpdateEntryDocument = gql` - mutation UpdateEntry( - $id: String! - $content: String! - $title: String! - $status: Boolean! - ) { - updateEntry(id: $id, content: $content, title: $title, status: $status) { - ...EntryInfo - content - } - } - ${EntryInfoFragmentDoc} + mutation UpdateEntry( + $id: String! + $content: String! + $title: String! + $status: Boolean! + ) { + updateEntry(id: $id, content: $content, title: $title, status: $status) { + ...EntryInfo + content + } + } + ${EntryInfoFragmentDoc} `; export const CreateEntryDocument = gql` - mutation CreateEntry($content: String, $title: String) { - createEntry(content: $content, title: $title) { - ...EntryInfo - } - } - ${EntryInfoFragmentDoc} + mutation CreateEntry($content: String, $title: String) { + createEntry(content: $content, title: $title) { + ...EntryInfo + } + } + ${EntryInfoFragmentDoc} `; export const RemoveEntryDocument = gql` - mutation RemoveEntry($id: ID!) { - deleteEntry(id: $id) { - title - id - } - } + mutation RemoveEntry($id: ID!) { + deleteEntry(id: $id) { + title + id + } + } `; export const LoginUserDocument = gql` - mutation LoginUser($username: String!, $password: String!) { - authenticateUser(username: $username, password: $password) { - token - } - } + mutation LoginUser($username: String!, $password: String!) { + authenticateUser(username: $username, password: $password) { + token + } + } `; export const CreateUserDocument = gql` - mutation CreateUser($username: String!, $email: String!, $password: String!) { - createUser(username: $username, email: $email, password: $password) { - token - } - } + mutation CreateUser($username: String!, $email: String!, $password: String!) { + createUser(username: $username, email: $email, password: $password) { + token + } + } `; export const UpdateUserSettingsDocument = gql` - mutation UpdateUserSettings($settings: UserSettingsInput!) { - updateUserSettings(settings: $settings) { - username - email - } - } + mutation UpdateUserSettings($settings: UserSettingsInput!) { + updateUserSettings(settings: $settings) { + username + email + } + } `; export const UpdatePasswordDocument = gql` - mutation UpdatePassword($current: String!, $newPassword: String!) { - updatePassword(currentPassword: $current, newPassword: $newPassword) { - token - } - } + mutation UpdatePassword($current: String!, $newPassword: String!) { + updatePassword(currentPassword: $current, newPassword: $newPassword) { + token + } + } `; export const IsMeDocument = gql` - query IsMe { - me { - token - details { - id - username - } - } - } + query IsMe { + me { + token + details { + id + username + } + } + } `; export type SdkFunctionWrapper = ( - action: (requestHeaders?: Record) => Promise, - operationName: string, - operationType?: string + action: (requestHeaders?: Record) => Promise, + operationName: string, + operationType?: string ) => Promise; const defaultWrapper: SdkFunctionWrapper = ( - action, - _operationName, - _operationType + action, + _operationName, + _operationType ) => action(); export function getSdk( - client: GraphQLClient, - withWrapper: SdkFunctionWrapper = defaultWrapper + client: GraphQLClient, + withWrapper: SdkFunctionWrapper = defaultWrapper ) { - return { - AllPosts( - variables?: IAllPostsQueryVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(AllPostsDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "AllPosts", - "query" - ); - }, - Edit( - variables: IEditQueryVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(EditDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "Edit", - "query" - ); - }, - Preview( - variables: IPreviewQueryVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(PreviewDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "Preview", - "query" - ); - }, - UserDetails( - variables?: IUserDetailsQueryVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(UserDetailsDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "UserDetails", - "query" - ); - }, - UpdateEntry( - variables: IUpdateEntryMutationVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(UpdateEntryDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "UpdateEntry", - "mutation" - ); - }, - CreateEntry( - variables?: ICreateEntryMutationVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(CreateEntryDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "CreateEntry", - "mutation" - ); - }, - RemoveEntry( - variables: IRemoveEntryMutationVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(RemoveEntryDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "RemoveEntry", - "mutation" - ); - }, - LoginUser( - variables: ILoginUserMutationVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(LoginUserDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "LoginUser", - "mutation" - ); - }, - CreateUser( - variables: ICreateUserMutationVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(CreateUserDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "CreateUser", - "mutation" - ); - }, - UpdateUserSettings( - variables: IUpdateUserSettingsMutationVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request( - UpdateUserSettingsDocument, - variables, - { ...requestHeaders, ...wrappedRequestHeaders } - ), - "UpdateUserSettings", - "mutation" - ); - }, - UpdatePassword( - variables: IUpdatePasswordMutationVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request( - UpdatePasswordDocument, - variables, - { ...requestHeaders, ...wrappedRequestHeaders } - ), - "UpdatePassword", - "mutation" - ); - }, - IsMe( - variables?: IIsMeQueryVariables, - requestHeaders?: Dom.RequestInit["headers"] - ): Promise { - return withWrapper( - (wrappedRequestHeaders) => - client.request(IsMeDocument, variables, { - ...requestHeaders, - ...wrappedRequestHeaders - }), - "IsMe", - "query" - ); - } - }; + return { + AllPosts( + variables?: IAllPostsQueryVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(AllPostsDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "AllPosts", + "query" + ); + }, + Edit( + variables: IEditQueryVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(EditDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "Edit", + "query" + ); + }, + Preview( + variables: IPreviewQueryVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(PreviewDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "Preview", + "query" + ); + }, + UserDetails( + variables?: IUserDetailsQueryVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(UserDetailsDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "UserDetails", + "query" + ); + }, + UpdateEntry( + variables: IUpdateEntryMutationVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(UpdateEntryDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "UpdateEntry", + "mutation" + ); + }, + CreateEntry( + variables?: ICreateEntryMutationVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(CreateEntryDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "CreateEntry", + "mutation" + ); + }, + RemoveEntry( + variables: IRemoveEntryMutationVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(RemoveEntryDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "RemoveEntry", + "mutation" + ); + }, + LoginUser( + variables: ILoginUserMutationVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(LoginUserDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "LoginUser", + "mutation" + ); + }, + CreateUser( + variables: ICreateUserMutationVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(CreateUserDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "CreateUser", + "mutation" + ); + }, + UpdateUserSettings( + variables: IUpdateUserSettingsMutationVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request( + UpdateUserSettingsDocument, + variables, + { ...requestHeaders, ...wrappedRequestHeaders } + ), + "UpdateUserSettings", + "mutation" + ); + }, + UpdatePassword( + variables: IUpdatePasswordMutationVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request( + UpdatePasswordDocument, + variables, + { ...requestHeaders, ...wrappedRequestHeaders } + ), + "UpdatePassword", + "mutation" + ); + }, + IsMe( + variables?: IIsMeQueryVariables, + requestHeaders?: Dom.RequestInit["headers"] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(IsMeDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders + }), + "IsMe", + "query" + ); + } + }; } export type Sdk = ReturnType; diff --git a/src/__generated__/server.ts b/src/__generated__/server.ts index 309678122..50c4bcd25 100644 --- a/src/__generated__/server.ts +++ b/src/__generated__/server.ts @@ -1,328 +1,328 @@ import { - GraphQLResolveInfo, - GraphQLScalarType, - GraphQLScalarTypeConfig + GraphQLResolveInfo, + GraphQLScalarType, + GraphQLScalarTypeConfig } from "graphql"; export type Maybe = T | null; export type InputMaybe = Maybe; export type Exact = { [K in keyof T]: T[K] }; export type MakeOptional = Omit & { - [SubKey in K]?: Maybe; + [SubKey in K]?: Maybe; }; export type MakeMaybe = Omit & { - [SubKey in K]: Maybe; + [SubKey in K]: Maybe; }; export type RequireFields = Omit & { - [P in K]-?: NonNullable; + [P in K]-?: NonNullable; }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Float: number; - Date: any; + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + Date: any; }; export type IAuthUserPayload = { - __typename?: "AuthUserPayload"; - token: Maybe; + __typename?: "AuthUserPayload"; + token: Maybe; }; export type IAuthor = { - __typename?: "Author"; - gradient: Maybe>>; - username: Maybe; + __typename?: "Author"; + gradient: Maybe>>; + username: Maybe; }; export type IEntry = { - __typename?: "Entry"; - author: Maybe; - content: Maybe; - dateAdded: Maybe; - dateModified: Maybe; - excerpt: Maybe; - id: Maybe; - public: Maybe; - title: Maybe; - user: Maybe; + __typename?: "Entry"; + author: Maybe; + content: Maybe; + dateAdded: Maybe; + dateModified: Maybe; + excerpt: Maybe; + id: Maybe; + public: Maybe; + title: Maybe; + user: Maybe; }; export type IMe = { - __typename?: "Me"; - details: Maybe; - token: Maybe; - usage: IUsageDetails; + __typename?: "Me"; + details: Maybe; + token: Maybe; + usage: IUsageDetails; }; export type IMutation = { - __typename?: "Mutation"; - authenticateUser: Maybe; - createEntry: Maybe; - createUser: Maybe; - deleteEntry: Maybe; - updateEntry: Maybe; - updatePassword: Maybe; - updateUserSettings: Maybe; + __typename?: "Mutation"; + authenticateUser: Maybe; + createEntry: Maybe; + createUser: Maybe; + deleteEntry: Maybe; + updateEntry: Maybe; + updatePassword: Maybe; + updateUserSettings: Maybe; }; export type IMutationAuthenticateUserArgs = { - password: Scalars["String"]; - username: Scalars["String"]; + password: Scalars["String"]; + username: Scalars["String"]; }; export type IMutationCreateEntryArgs = { - content: InputMaybe; - title: InputMaybe; + content: InputMaybe; + title: InputMaybe; }; export type IMutationCreateUserArgs = { - email: Scalars["String"]; - password: Scalars["String"]; - username: Scalars["String"]; + email: Scalars["String"]; + password: Scalars["String"]; + username: Scalars["String"]; }; export type IMutationDeleteEntryArgs = { - id: Scalars["ID"]; + id: Scalars["ID"]; }; export type IMutationUpdateEntryArgs = { - content: Scalars["String"]; - id: Scalars["String"]; - status: Scalars["Boolean"]; - title: Scalars["String"]; + content: Scalars["String"]; + id: Scalars["String"]; + status: Scalars["Boolean"]; + title: Scalars["String"]; }; export type IMutationUpdatePasswordArgs = { - currentPassword: Scalars["String"]; - newPassword: Scalars["String"]; + currentPassword: Scalars["String"]; + newPassword: Scalars["String"]; }; export type IMutationUpdateUserSettingsArgs = { - settings: IUserSettingsInput; + settings: IUserSettingsInput; }; export type IPreview = { - __typename?: "Preview"; - author: Maybe; - content: Maybe; - dateAdded: Maybe; - id: Maybe; - title: Maybe; + __typename?: "Preview"; + author: Maybe; + content: Maybe; + dateAdded: Maybe; + id: Maybe; + title: Maybe; }; export type IQuery = { - __typename?: "Query"; - /** Markdown document */ - entry: Maybe; - /** List of Markdown documents */ - feed: Array; - me: Maybe; - /** Public preview of Markdown document */ - preview: Maybe; - /** User Settings */ - settings: Maybe; + __typename?: "Query"; + /** Markdown document */ + entry: Maybe; + /** List of Markdown documents */ + feed: Array; + me: Maybe; + /** Public preview of Markdown document */ + preview: Maybe; + /** User Settings */ + settings: Maybe; }; export type IQueryEntryArgs = { - id: Scalars["ID"]; + id: Scalars["ID"]; }; export type IQueryPreviewArgs = { - id: Scalars["ID"]; + id: Scalars["ID"]; }; export type IUsageDetails = { - __typename?: "UsageDetails"; - entryCount: Scalars["Int"]; - privateEntries: Scalars["Int"]; - publicEntries: Scalars["Int"]; + __typename?: "UsageDetails"; + entryCount: Scalars["Int"]; + privateEntries: Scalars["Int"]; + publicEntries: Scalars["Int"]; }; export type IUser = { - __typename?: "User"; - admin: Maybe; - email: Scalars["String"]; - id: Scalars["ID"]; - username: Scalars["String"]; + __typename?: "User"; + admin: Maybe; + email: Scalars["String"]; + id: Scalars["ID"]; + username: Scalars["String"]; }; export type IUserSettingsInput = { - email: InputMaybe; - username: InputMaybe; + email: InputMaybe; + username: InputMaybe; }; export type IEntryInfoFragment = { - __typename?: "Entry"; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; + __typename?: "Entry"; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; }; export type IAllPostsQueryVariables = Exact<{ [key: string]: never }>; export type IAllPostsQuery = { - __typename?: "Query"; - feed: Array<{ - __typename?: "Entry"; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; - }>; + __typename?: "Query"; + feed: Array<{ + __typename?: "Entry"; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; + }>; }; export type IEditQueryVariables = Exact<{ - id: Scalars["ID"]; + id: Scalars["ID"]; }>; export type IEditQuery = { - __typename?: "Query"; - entry: { - __typename?: "Entry"; - content: string | null; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; - } | null; + __typename?: "Query"; + entry: { + __typename?: "Entry"; + content: string | null; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; + } | null; }; export type IPreviewQueryVariables = Exact<{ - id: Scalars["ID"]; + id: Scalars["ID"]; }>; export type IPreviewQuery = { - __typename?: "Query"; - preview: { - __typename?: "Preview"; - title: string | null; - dateAdded: any | null; - id: string | null; - content: string | null; - author: { __typename?: "Author"; username: string | null } | null; - } | null; + __typename?: "Query"; + preview: { + __typename?: "Preview"; + title: string | null; + dateAdded: any | null; + id: string | null; + content: string | null; + author: { __typename?: "Author"; username: string | null } | null; + } | null; }; export type IUserDetailsQueryVariables = Exact<{ [key: string]: never }>; export type IUserDetailsQuery = { - __typename?: "Query"; - settings: { __typename?: "User"; username: string; email: string } | null; - me: { - __typename?: "Me"; - usage: { - __typename?: "UsageDetails"; - entryCount: number; - publicEntries: number; - privateEntries: number; - }; - } | null; + __typename?: "Query"; + settings: { __typename?: "User"; username: string; email: string } | null; + me: { + __typename?: "Me"; + usage: { + __typename?: "UsageDetails"; + entryCount: number; + publicEntries: number; + privateEntries: number; + }; + } | null; }; export type IUpdateEntryMutationVariables = Exact<{ - id: Scalars["String"]; - content: Scalars["String"]; - title: Scalars["String"]; - status: Scalars["Boolean"]; + id: Scalars["String"]; + content: Scalars["String"]; + title: Scalars["String"]; + status: Scalars["Boolean"]; }>; export type IUpdateEntryMutation = { - __typename?: "Mutation"; - updateEntry: { - __typename?: "Entry"; - content: string | null; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; - } | null; + __typename?: "Mutation"; + updateEntry: { + __typename?: "Entry"; + content: string | null; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; + } | null; }; export type ICreateEntryMutationVariables = Exact<{ - content: InputMaybe; - title: InputMaybe; + content: InputMaybe; + title: InputMaybe; }>; export type ICreateEntryMutation = { - __typename?: "Mutation"; - createEntry: { - __typename?: "Entry"; - title: string | null; - dateAdded: any | null; - id: string | null; - public: boolean | null; - } | null; + __typename?: "Mutation"; + createEntry: { + __typename?: "Entry"; + title: string | null; + dateAdded: any | null; + id: string | null; + public: boolean | null; + } | null; }; export type IRemoveEntryMutationVariables = Exact<{ - id: Scalars["ID"]; + id: Scalars["ID"]; }>; export type IRemoveEntryMutation = { - __typename?: "Mutation"; - deleteEntry: { - __typename?: "Entry"; - title: string | null; - id: string | null; - } | null; + __typename?: "Mutation"; + deleteEntry: { + __typename?: "Entry"; + title: string | null; + id: string | null; + } | null; }; export type ILoginUserMutationVariables = Exact<{ - username: Scalars["String"]; - password: Scalars["String"]; + username: Scalars["String"]; + password: Scalars["String"]; }>; export type ILoginUserMutation = { - __typename?: "Mutation"; - authenticateUser: { __typename?: "AuthUserPayload"; token: string | null } | null; + __typename?: "Mutation"; + authenticateUser: { __typename?: "AuthUserPayload"; token: string | null } | null; }; export type ICreateUserMutationVariables = Exact<{ - username: Scalars["String"]; - email: Scalars["String"]; - password: Scalars["String"]; + username: Scalars["String"]; + email: Scalars["String"]; + password: Scalars["String"]; }>; export type ICreateUserMutation = { - __typename?: "Mutation"; - createUser: { __typename?: "AuthUserPayload"; token: string | null } | null; + __typename?: "Mutation"; + createUser: { __typename?: "AuthUserPayload"; token: string | null } | null; }; export type IUpdateUserSettingsMutationVariables = Exact<{ - settings: IUserSettingsInput; + settings: IUserSettingsInput; }>; export type IUpdateUserSettingsMutation = { - __typename?: "Mutation"; - updateUserSettings: { - __typename?: "User"; - username: string; - email: string; - } | null; + __typename?: "Mutation"; + updateUserSettings: { + __typename?: "User"; + username: string; + email: string; + } | null; }; export type IUpdatePasswordMutationVariables = Exact<{ - current: Scalars["String"]; - newPassword: Scalars["String"]; + current: Scalars["String"]; + newPassword: Scalars["String"]; }>; export type IUpdatePasswordMutation = { - __typename?: "Mutation"; - updatePassword: { __typename?: "AuthUserPayload"; token: string | null } | null; + __typename?: "Mutation"; + updatePassword: { __typename?: "AuthUserPayload"; token: string | null } | null; }; export type IIsMeQueryVariables = Exact<{ [key: string]: never }>; export type IIsMeQuery = { - __typename?: "Query"; - me: { - __typename?: "Me"; - token: string | null; - details: { __typename?: "User"; id: string; username: string } | null; - } | null; + __typename?: "Query"; + me: { + __typename?: "Me"; + token: string | null; + details: { __typename?: "User"; id: string; username: string } | null; + } | null; }; export type WithIndex = TObject & Record; @@ -331,307 +331,307 @@ export type ResolversObject = WithIndex; export type ResolverTypeWrapper = Promise | T; export type ResolverWithResolve = { - resolve: ResolverFn; + resolve: ResolverFn; }; export type Resolver = - | ResolverFn - | ResolverWithResolve; + | ResolverFn + | ResolverWithResolve; export type ResolverFn = ( - parent: TParent, - args: TArgs, - context: TContext, - info: GraphQLResolveInfo + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo ) => Promise | TResult; export type SubscriptionSubscribeFn = ( - parent: TParent, - args: TArgs, - context: TContext, - info: GraphQLResolveInfo + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo ) => AsyncIterable | Promise>; export type SubscriptionResolveFn = ( - parent: TParent, - args: TArgs, - context: TContext, - info: GraphQLResolveInfo + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo ) => TResult | Promise; export interface SubscriptionSubscriberObject< - TResult, - TKey extends string, - TParent, - TContext, - TArgs + TResult, + TKey extends string, + TParent, + TContext, + TArgs > { - subscribe: SubscriptionSubscribeFn< - { [key in TKey]: TResult }, - TParent, - TContext, - TArgs - >; - resolve?: SubscriptionResolveFn< - TResult, - { [key in TKey]: TResult }, - TContext, - TArgs - >; + subscribe: SubscriptionSubscribeFn< + { [key in TKey]: TResult }, + TParent, + TContext, + TArgs + >; + resolve?: SubscriptionResolveFn< + TResult, + { [key in TKey]: TResult }, + TContext, + TArgs + >; } export interface SubscriptionResolverObject { - subscribe: SubscriptionSubscribeFn; - resolve: SubscriptionResolveFn; + subscribe: SubscriptionSubscribeFn; + resolve: SubscriptionResolveFn; } export type SubscriptionObject< - TResult, - TKey extends string, - TParent, - TContext, - TArgs + TResult, + TKey extends string, + TParent, + TContext, + TArgs > = - | SubscriptionSubscriberObject - | SubscriptionResolverObject; + | SubscriptionSubscriberObject + | SubscriptionResolverObject; export type SubscriptionResolver< - TResult, - TKey extends string, - TParent = {}, - TContext = {}, - TArgs = {} + TResult, + TKey extends string, + TParent = {}, + TContext = {}, + TArgs = {} > = - | ((...args: any[]) => SubscriptionObject) - | SubscriptionObject; + | ((...args: any[]) => SubscriptionObject) + | SubscriptionObject; export type TypeResolveFn = ( - parent: TParent, - context: TContext, - info: GraphQLResolveInfo + parent: TParent, + context: TContext, + info: GraphQLResolveInfo ) => Maybe | Promise>; export type IsTypeOfResolverFn = ( - obj: T, - context: TContext, - info: GraphQLResolveInfo + obj: T, + context: TContext, + info: GraphQLResolveInfo ) => boolean | Promise; export type NextResolverFn = () => Promise; export type DirectiveResolverFn< - TResult = {}, - TParent = {}, - TContext = {}, - TArgs = {} + TResult = {}, + TParent = {}, + TContext = {}, + TArgs = {} > = ( - next: NextResolverFn, - parent: TParent, - args: TArgs, - context: TContext, - info: GraphQLResolveInfo + next: NextResolverFn, + parent: TParent, + args: TArgs, + context: TContext, + info: GraphQLResolveInfo ) => TResult | Promise; /** Mapping between all available schema types and the resolvers types */ export type IResolversTypes = ResolversObject<{ - AuthUserPayload: ResolverTypeWrapper; - Author: ResolverTypeWrapper; - Boolean: ResolverTypeWrapper; - Date: ResolverTypeWrapper; - Entry: ResolverTypeWrapper; - ID: ResolverTypeWrapper; - Int: ResolverTypeWrapper; - Me: ResolverTypeWrapper; - Mutation: ResolverTypeWrapper<{}>; - Preview: ResolverTypeWrapper; - Query: ResolverTypeWrapper<{}>; - String: ResolverTypeWrapper; - UsageDetails: ResolverTypeWrapper; - User: ResolverTypeWrapper; - UserSettingsInput: IUserSettingsInput; + AuthUserPayload: ResolverTypeWrapper; + Author: ResolverTypeWrapper; + Boolean: ResolverTypeWrapper; + Date: ResolverTypeWrapper; + Entry: ResolverTypeWrapper; + ID: ResolverTypeWrapper; + Int: ResolverTypeWrapper; + Me: ResolverTypeWrapper; + Mutation: ResolverTypeWrapper<{}>; + Preview: ResolverTypeWrapper; + Query: ResolverTypeWrapper<{}>; + String: ResolverTypeWrapper; + UsageDetails: ResolverTypeWrapper; + User: ResolverTypeWrapper; + UserSettingsInput: IUserSettingsInput; }>; /** Mapping between all available schema types and the resolvers parents */ export type IResolversParentTypes = ResolversObject<{ - AuthUserPayload: IAuthUserPayload; - Author: IAuthor; - Boolean: Scalars["Boolean"]; - Date: Scalars["Date"]; - Entry: IEntry; - ID: Scalars["ID"]; - Int: Scalars["Int"]; - Me: IMe; - Mutation: {}; - Preview: IPreview; - Query: {}; - String: Scalars["String"]; - UsageDetails: IUsageDetails; - User: IUser; - UserSettingsInput: IUserSettingsInput; + AuthUserPayload: IAuthUserPayload; + Author: IAuthor; + Boolean: Scalars["Boolean"]; + Date: Scalars["Date"]; + Entry: IEntry; + ID: Scalars["ID"]; + Int: Scalars["Int"]; + Me: IMe; + Mutation: {}; + Preview: IPreview; + Query: {}; + String: Scalars["String"]; + UsageDetails: IUsageDetails; + User: IUser; + UserSettingsInput: IUserSettingsInput; }>; export type IAuthUserPayloadResolvers< - ContextType = any, - ParentType extends IResolversParentTypes["AuthUserPayload"] = IResolversParentTypes["AuthUserPayload"] + ContextType = any, + ParentType extends IResolversParentTypes["AuthUserPayload"] = IResolversParentTypes["AuthUserPayload"] > = ResolversObject<{ - token: Resolver, ParentType, ContextType>; - __isTypeOf?: IsTypeOfResolverFn; + token: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; }>; export type IAuthorResolvers< - ContextType = any, - ParentType extends IResolversParentTypes["Author"] = IResolversParentTypes["Author"] + ContextType = any, + ParentType extends IResolversParentTypes["Author"] = IResolversParentTypes["Author"] > = ResolversObject<{ - gradient: Resolver< - Maybe>>, - ParentType, - ContextType - >; - username: Resolver, ParentType, ContextType>; - __isTypeOf?: IsTypeOfResolverFn; + gradient: Resolver< + Maybe>>, + ParentType, + ContextType + >; + username: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; }>; export interface IDateScalarConfig - extends GraphQLScalarTypeConfig { - name: "Date"; + extends GraphQLScalarTypeConfig { + name: "Date"; } export type IEntryResolvers< - ContextType = any, - ParentType extends IResolversParentTypes["Entry"] = IResolversParentTypes["Entry"] + ContextType = any, + ParentType extends IResolversParentTypes["Entry"] = IResolversParentTypes["Entry"] > = ResolversObject<{ - author: Resolver, ParentType, ContextType>; - content: Resolver, ParentType, ContextType>; - dateAdded: Resolver, ParentType, ContextType>; - dateModified: Resolver, ParentType, ContextType>; - excerpt: Resolver, ParentType, ContextType>; - id: Resolver, ParentType, ContextType>; - public: Resolver, ParentType, ContextType>; - title: Resolver, ParentType, ContextType>; - user: Resolver, ParentType, ContextType>; - __isTypeOf?: IsTypeOfResolverFn; + author: Resolver, ParentType, ContextType>; + content: Resolver, ParentType, ContextType>; + dateAdded: Resolver, ParentType, ContextType>; + dateModified: Resolver, ParentType, ContextType>; + excerpt: Resolver, ParentType, ContextType>; + id: Resolver, ParentType, ContextType>; + public: Resolver, ParentType, ContextType>; + title: Resolver, ParentType, ContextType>; + user: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; }>; export type IMeResolvers< - ContextType = any, - ParentType extends IResolversParentTypes["Me"] = IResolversParentTypes["Me"] + ContextType = any, + ParentType extends IResolversParentTypes["Me"] = IResolversParentTypes["Me"] > = ResolversObject<{ - details: Resolver, ParentType, ContextType>; - token: Resolver, ParentType, ContextType>; - usage: Resolver; - __isTypeOf?: IsTypeOfResolverFn; + details: Resolver, ParentType, ContextType>; + token: Resolver, ParentType, ContextType>; + usage: Resolver; + __isTypeOf?: IsTypeOfResolverFn; }>; export type IMutationResolvers< - ContextType = any, - ParentType extends IResolversParentTypes["Mutation"] = IResolversParentTypes["Mutation"] + ContextType = any, + ParentType extends IResolversParentTypes["Mutation"] = IResolversParentTypes["Mutation"] > = ResolversObject<{ - authenticateUser: Resolver< - Maybe, - ParentType, - ContextType, - RequireFields - >; - createEntry: Resolver< - Maybe, - ParentType, - ContextType, - Partial - >; - createUser: Resolver< - Maybe, - ParentType, - ContextType, - RequireFields - >; - deleteEntry: Resolver< - Maybe, - ParentType, - ContextType, - RequireFields - >; - updateEntry: Resolver< - Maybe, - ParentType, - ContextType, - RequireFields - >; - updatePassword: Resolver< - Maybe, - ParentType, - ContextType, - RequireFields - >; - updateUserSettings: Resolver< - Maybe, - ParentType, - ContextType, - RequireFields - >; + authenticateUser: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; + createEntry: Resolver< + Maybe, + ParentType, + ContextType, + Partial + >; + createUser: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; + deleteEntry: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; + updateEntry: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; + updatePassword: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; + updateUserSettings: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; }>; export type IPreviewResolvers< - ContextType = any, - ParentType extends IResolversParentTypes["Preview"] = IResolversParentTypes["Preview"] + ContextType = any, + ParentType extends IResolversParentTypes["Preview"] = IResolversParentTypes["Preview"] > = ResolversObject<{ - author: Resolver, ParentType, ContextType>; - content: Resolver, ParentType, ContextType>; - dateAdded: Resolver, ParentType, ContextType>; - id: Resolver, ParentType, ContextType>; - title: Resolver, ParentType, ContextType>; - __isTypeOf?: IsTypeOfResolverFn; + author: Resolver, ParentType, ContextType>; + content: Resolver, ParentType, ContextType>; + dateAdded: Resolver, ParentType, ContextType>; + id: Resolver, ParentType, ContextType>; + title: Resolver, ParentType, ContextType>; + __isTypeOf?: IsTypeOfResolverFn; }>; export type IQueryResolvers< - ContextType = any, - ParentType extends IResolversParentTypes["Query"] = IResolversParentTypes["Query"] + ContextType = any, + ParentType extends IResolversParentTypes["Query"] = IResolversParentTypes["Query"] > = ResolversObject<{ - entry: Resolver< - Maybe, - ParentType, - ContextType, - RequireFields - >; - feed: Resolver, ParentType, ContextType>; - me: Resolver, ParentType, ContextType>; - preview: Resolver< - Maybe, - ParentType, - ContextType, - RequireFields - >; - settings: Resolver, ParentType, ContextType>; + entry: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; + feed: Resolver, ParentType, ContextType>; + me: Resolver, ParentType, ContextType>; + preview: Resolver< + Maybe, + ParentType, + ContextType, + RequireFields + >; + settings: Resolver, ParentType, ContextType>; }>; export type IUsageDetailsResolvers< - ContextType = any, - ParentType extends IResolversParentTypes["UsageDetails"] = IResolversParentTypes["UsageDetails"] + ContextType = any, + ParentType extends IResolversParentTypes["UsageDetails"] = IResolversParentTypes["UsageDetails"] > = ResolversObject<{ - entryCount: Resolver; - privateEntries: Resolver; - publicEntries: Resolver; - __isTypeOf?: IsTypeOfResolverFn; + entryCount: Resolver; + privateEntries: Resolver; + publicEntries: Resolver; + __isTypeOf?: IsTypeOfResolverFn; }>; export type IUserResolvers< - ContextType = any, - ParentType extends IResolversParentTypes["User"] = IResolversParentTypes["User"] + ContextType = any, + ParentType extends IResolversParentTypes["User"] = IResolversParentTypes["User"] > = ResolversObject<{ - admin: Resolver, ParentType, ContextType>; - email: Resolver; - id: Resolver; - username: Resolver; - __isTypeOf?: IsTypeOfResolverFn; + admin: Resolver, ParentType, ContextType>; + email: Resolver; + id: Resolver; + username: Resolver; + __isTypeOf?: IsTypeOfResolverFn; }>; export type IResolvers = ResolversObject<{ - AuthUserPayload: IAuthUserPayloadResolvers; - Author: IAuthorResolvers; - Date: GraphQLScalarType; - Entry: IEntryResolvers; - Me: IMeResolvers; - Mutation: IMutationResolvers; - Preview: IPreviewResolvers; - Query: IQueryResolvers; - UsageDetails: IUsageDetailsResolvers; - User: IUserResolvers; + AuthUserPayload: IAuthUserPayloadResolvers; + Author: IAuthorResolvers; + Date: GraphQLScalarType; + Entry: IEntryResolvers; + Me: IMeResolvers; + Mutation: IMutationResolvers; + Preview: IPreviewResolvers; + Query: IQueryResolvers; + UsageDetails: IUsageDetailsResolvers; + User: IUserResolvers; }>; diff --git a/src/components/avatar.tsx b/src/components/avatar.tsx index 38d4b3855..9bb9963c1 100644 --- a/src/components/avatar.tsx +++ b/src/components/avatar.tsx @@ -2,49 +2,49 @@ import React, { useMemo } from "react"; import { AvatarColors, Gradient } from "@shared/gradients"; export interface IPointedGradientColors { - a: string; - b: string; + a: string; + b: string; } export const gradientPoints = (colors: Gradient = AvatarColors) => ({ - a: colors[0], - b: colors[1] + a: colors[0], + b: colors[1] }); export interface IAvatarCircleProps { - colors: IPointedGradientColors; - centered?: boolean; - size?: number; + colors: IPointedGradientColors; + centered?: boolean; + size?: number; } interface IAvatarProps { - colors: Gradient; - size?: number; - centered?: boolean; + colors: Gradient; + size?: number; + centered?: boolean; } export const Avatar: React.VFC = (props: IAvatarProps) => { - const colors = useMemo(() => gradientPoints(props.colors), [props.colors]); + const colors = useMemo(() => gradientPoints(props.colors), [props.colors]); - return ( -
- -
- ); + .centered { + margin: 0 auto 1rem; + } + `} + + + ); }; diff --git a/src/components/banner.tsx b/src/components/banner.tsx index 7917f38c5..57a85fec0 100644 --- a/src/components/banner.tsx +++ b/src/components/banner.tsx @@ -1,40 +1,40 @@ interface IBannerProps { - variant?: "warning" | "error"; - label: string; + variant?: "warning" | "error"; + label: string; } export const Banner: React.FC = ({ children, label }) => { - return ( -
-
-

- {label}: {children} -

-
- -
- ); + p { + margin: 0; + font-size: 100%; + } + `} + + ); }; diff --git a/src/components/button.tsx b/src/components/button.tsx index 63b2ed293..7a4e59de3 100644 --- a/src/components/button.tsx +++ b/src/components/button.tsx @@ -1,43 +1,43 @@ import css from "styled-jsx/css"; export const buttons = css.global` - .base-button { - background: linear-gradient( - to bottom right, - var(--pixieblue-400), - var(--pixieblue-700) - ); - font-size: inherit; - border-radius: 0.5rem; - color: white; - cursor: pointer; - padding: 0.5rem 1.5rem; - font-weight: 400; - border: 0; - font-family: inherit; - opacity: 1; - transition: opacity 0.2s ease; - } + .base-button { + background: linear-gradient( + to bottom right, + var(--pixieblue-400), + var(--pixieblue-700) + ); + font-size: inherit; + border-radius: 0.5rem; + color: white; + cursor: pointer; + padding: 0.5rem 1.5rem; + font-weight: 400; + border: 0; + font-family: inherit; + opacity: 1; + transition: opacity 0.2s ease; + } - .base-button:hover { - opacity: 0.75; - } + .base-button:hover { + opacity: 0.75; + } - .alt-button { - background: none; - border: 0; - appearance: none; - font-size: inherit; - font-family: inherit; - color: inherit; - cursor: pointer; - } + .alt-button { + background: none; + border: 0; + appearance: none; + font-size: inherit; + font-family: inherit; + color: inherit; + cursor: pointer; + } - .cancel-button { - } + .cancel-button { + } - @media (prefers-color-scheme: dark) { - .base-button { - } - } + @media (prefers-color-scheme: dark) { + .base-button { + } + } `; diff --git a/src/components/content.tsx b/src/components/content.tsx index d48feaed1..c0fb58f03 100644 --- a/src/components/content.tsx +++ b/src/components/content.tsx @@ -4,199 +4,199 @@ import React from "react"; import format from "date-fns/format"; interface IContentWrapperProps { - title?: string; - dateAdded?: Date; - content?: React.ReactNode; + title?: string; + dateAdded?: Date; + content?: React.ReactNode; } export const content = css.global` - .__content h2 { - font-size: 2rem; - font-weight: 800; - margin-bottom: 1.5rem; - } - - .__content h3 { - font-weight: 700; - font-size: 1.5rem; - margin-bottom: 1rem; - } - - .__content li > ul, - .__content li > ol { - margin-bottom: 0; - } - - .__content ul, - .__content ol { - list-style-position: inside; - } - - .__content ul, - .__content ol, - .__content pre, - .__content hr, - .__content p { - margin-bottom: 1.5rem; - } - - .__content p, - .__content li { - line-height: 1.625; - } - - .__content blockquote { - font-style: italic; - background: #d4ecfe; - margin-bottom: 1.5rem; - color: var(--onyx-800); - } - - .__content blockquote p { - padding: 1rem; - } + .__content h2 { + font-size: 2rem; + font-weight: 800; + margin-bottom: 1.5rem; + } + + .__content h3 { + font-weight: 700; + font-size: 1.5rem; + margin-bottom: 1rem; + } + + .__content li > ul, + .__content li > ol { + margin-bottom: 0; + } + + .__content ul, + .__content ol { + list-style-position: inside; + } + + .__content ul, + .__content ol, + .__content pre, + .__content hr, + .__content p { + margin-bottom: 1.5rem; + } + + .__content p, + .__content li { + line-height: 1.625; + } + + .__content blockquote { + font-style: italic; + background: #d4ecfe; + margin-bottom: 1.5rem; + color: var(--onyx-800); + } + + .__content blockquote p { + padding: 1rem; + } `; export const StaticContentWrapper: React.FC< - Omit + Omit > = ({ children, title }) => { - return ( -
-
-
-

{title}

-
-
-
{children}
-
-
- - -
- ); + return ( +
+
+
+

{title}

+
+
+
{children}
+
+
+ + +
+ ); }; export const ContentWrapper: React.FC = (props) => { - return ( -
-
-
- {props.dateAdded && ( - - )} -

{props.title}

-
-
- -
{props.content}
-
-
- - -
- ); + return ( +
+
+
+ {props.dateAdded && ( + + )} +

{props.title}

+
+
+ +
{props.content}
+
+
+ + +
+ ); }; diff --git a/src/components/custom-meta.tsx b/src/components/custom-meta.tsx index 90c030897..5849bf1c3 100644 --- a/src/components/custom-meta.tsx +++ b/src/components/custom-meta.tsx @@ -3,27 +3,27 @@ import { createMetadata } from "@shared/constants"; import { useMemo } from "react"; interface ICustomMetaProps { - title?: string; - path?: string; + title?: string; + path?: string; } export const CustomMeta: React.VFC = ({ title, path }) => { - const meta = useMemo(() => createMetadata(path, title), [title, path]); - return ( - - {meta.PAGE_TITLE} - - - - - - - - - - ); + const meta = useMemo(() => createMetadata(path, title), [title, path]); + return ( + + {meta.PAGE_TITLE} + + + + + + + + + + ); }; diff --git a/src/components/editor.tsx b/src/components/editor.tsx index 81871640c..41ee1f249 100644 --- a/src/components/editor.tsx +++ b/src/components/editor.tsx @@ -1,199 +1,199 @@ import { useRef, useCallback } from "react"; import css from "styled-jsx/css"; import { - Editor, - DraftEditorCommand, - getDefaultKeyBinding, - KeyBindingUtil, - RichUtils + Editor, + DraftEditorCommand, + getDefaultKeyBinding, + KeyBindingUtil, + RichUtils } from "draft-js"; import type { EditorProps, DraftHandleValue } from "draft-js"; const overrides = css.global` - .RichEditor-root { - font-size: 14px; - } - - .RichEditor-editor { - cursor: text; - position: relative; - font-family: var(--monospace); - } - - .public-DraftEditorPlaceholder-inner { - opacity: 0.5; - margin-top: 16px; - position: absolute; - top: 0; - font-style: italic; - } - - .RichEditor-editor .public-DraftEditor-content { - min-height: 100px; - } - - .RichEditor-hidePlaceholder .public-DraftEditorPlaceholder-root { - display: none; - } - - .RichEditor-editor .RichEditor-blockquote { - border-left: 5px solid #eee; - color: #666; - font-family: inherit; - font-style: italic; - margin: 16px 0 16px -5px; - padding: 10px 20px; - } - - .RichEditor-editor .public-DraftStyleDefault-pre { - background-color: rgba(0, 0, 0, 0.05); - font-size: 16px; - padding: 20px; - } - - .RichEditor-controls { - font-family: inherit; - font-size: 13px; - user-select: none; - } - - .RichEditor-styleButton { - color: #999; - cursor: pointer; - margin-right: 16px; - padding: 2px 0; - display: inline-block; - } - - .RichEditor-activeButton { - color: #5890ff; - } - - /* + .RichEditor-root { + font-size: 14px; + } + + .RichEditor-editor { + cursor: text; + position: relative; + font-family: var(--monospace); + } + + .public-DraftEditorPlaceholder-inner { + opacity: 0.5; + margin-top: 16px; + position: absolute; + top: 0; + font-style: italic; + } + + .RichEditor-editor .public-DraftEditor-content { + min-height: 100px; + } + + .RichEditor-hidePlaceholder .public-DraftEditorPlaceholder-root { + display: none; + } + + .RichEditor-editor .RichEditor-blockquote { + border-left: 5px solid #eee; + color: #666; + font-family: inherit; + font-style: italic; + margin: 16px 0 16px -5px; + padding: 10px 20px; + } + + .RichEditor-editor .public-DraftStyleDefault-pre { + background-color: rgba(0, 0, 0, 0.05); + font-size: 16px; + padding: 20px; + } + + .RichEditor-controls { + font-family: inherit; + font-size: 13px; + user-select: none; + } + + .RichEditor-styleButton { + color: #999; + cursor: pointer; + margin-right: 16px; + padding: 2px 0; + display: inline-block; + } + + .RichEditor-activeButton { + color: #5890ff; + } + + /* ** Overrides for Draft.js */ - .RichEditor-editor h2 { - font-size: 137.5%; - } + .RichEditor-editor h2 { + font-size: 137.5%; + } - .RichEditor-editor h3 { - font-size: 125%; - } + .RichEditor-editor h3 { + font-size: 125%; + } - .RichEditor-editor h4 { - font-size: 112.5%; - } + .RichEditor-editor h4 { + font-size: 112.5%; + } - .RichEditor-editor h5 { - font-size: 100%; - } + .RichEditor-editor h5 { + font-size: 100%; + } - .RichEditor-editor h6 { - font-size: 87.5%; - } + .RichEditor-editor h6 { + font-size: 87.5%; + } - .RichEditor-editor pre { - background: #f4f5f5; - padding: 0.75rem; - font-size: 13px; - } + .RichEditor-editor pre { + background: #f4f5f5; + padding: 0.75rem; + font-size: 13px; + } - .public-DraftStyleDefault-orderedListItem > *, - .public-DraftStyleDefault-unorderedListItem > * { - display: inline; - } + .public-DraftStyleDefault-orderedListItem > *, + .public-DraftStyleDefault-unorderedListItem > * { + display: inline; + } `; type OmittedEditorProps = - | "ref" - | "keyBindingFn" - | "customStyleMap" - | "placeholder" - | "spellCheck"; + | "ref" + | "keyBindingFn" + | "customStyleMap" + | "placeholder" + | "spellCheck"; interface IEditorProps extends Omit { - className?: string; - onSave: () => void; + className?: string; + onSave: () => void; } // Custom overrides for "code" style. const styleMap = { - CODE: { - backgroundColor: "rgba(0, 0, 0, 0.05)", - fontFamily: "var(--monospace)", - fontSize: 14, - padding: 2 - } + CODE: { + backgroundColor: "rgba(0, 0, 0, 0.05)", + fontFamily: "var(--monospace)", + fontSize: 14, + padding: 2 + } }; const SAVE_COMMAND = "save_command"; const saveKeyListener = ( - e: React.KeyboardEvent + e: React.KeyboardEvent ): DraftEditorCommand | typeof SAVE_COMMAND | null => { - if (e.keyCode === 83 && KeyBindingUtil.hasCommandModifier(e)) { - return SAVE_COMMAND; - } + if (e.keyCode === 83 && KeyBindingUtil.hasCommandModifier(e)) { + return SAVE_COMMAND; + } - return getDefaultKeyBinding(e); + return getDefaultKeyBinding(e); }; const DownwriteEditor: React.VFC = ({ onSave, ...props }) => { - let editorRef = useRef(null); - - let contentState: Draft.ContentState = props.editorState.getCurrentContent(); - let className = "RichEditor-editor"; - if (!contentState.hasText()) { - if (contentState.getBlockMap().first().getType() !== "unstyled") { - className += " RichEditor-hidePlaceholder"; - } - } - - function onFocus(): void { - editorRef.current!.focus(); - } - - const customHandleKeyCommand = useCallback( - (command: string, state: Draft.EditorState): DraftHandleValue => { - const newState = RichUtils.handleKeyCommand(state, command); - - if (newState) { - props.onChange(newState); - return "handled"; - } - - if (command === SAVE_COMMAND) { - onSave(); - return "handled"; - } - - // handleKeyCommand(command, state, eventTimeStamp); - - return "not-handled"; - }, - - [onSave, props] - ); - - return ( -
-
- -
- -
- ); + let editorRef = useRef(null); + + let contentState: Draft.ContentState = props.editorState.getCurrentContent(); + let className = "RichEditor-editor"; + if (!contentState.hasText()) { + if (contentState.getBlockMap().first().getType() !== "unstyled") { + className += " RichEditor-hidePlaceholder"; + } + } + + function onFocus(): void { + editorRef.current!.focus(); + } + + const customHandleKeyCommand = useCallback( + (command: string, state: Draft.EditorState): DraftHandleValue => { + const newState = RichUtils.handleKeyCommand(state, command); + + if (newState) { + props.onChange(newState); + return "handled"; + } + + if (command === SAVE_COMMAND) { + onSave(); + return "handled"; + } + + // handleKeyCommand(command, state, eventTimeStamp); + + return "not-handled"; + }, + + [onSave, props] + ); + + return ( +
+
+ +
+ +
+ ); }; export default DownwriteEditor; diff --git a/src/components/errors.tsx b/src/components/errors.tsx index d57afe16f..2b7a257ce 100644 --- a/src/components/errors.tsx +++ b/src/components/errors.tsx @@ -1,154 +1,154 @@ import { Component, isValidElement, useState } from "react"; const changedArray = (a: Array = [], b: Array = []) => - a.length !== b.length || a.some((item, index) => !Object.is(item, b[index])); + a.length !== b.length || a.some((item, index) => !Object.is(item, b[index])); export interface IFallbackProps { - error: Error; - resetErrorBoundary: (...args: Array) => void; + error: Error; + resetErrorBoundary: (...args: Array) => void; } interface ErrorBoundaryPropsWithComponent { - onResetKeysChange?: ( - prevResetKeys: Array | undefined, - resetKeys: Array | undefined - ) => void; - onReset?: (...args: Array) => void; - onError?: (error: Error, info: { componentStack: string }) => void; - resetKeys?: Array; - fallback?: never; - FallbackComponent: React.ComponentType; - fallbackRender?: never; + onResetKeysChange?: ( + prevResetKeys: Array | undefined, + resetKeys: Array | undefined + ) => void; + onReset?: (...args: Array) => void; + onError?: (error: Error, info: { componentStack: string }) => void; + resetKeys?: Array; + fallback?: never; + FallbackComponent: React.ComponentType; + fallbackRender?: never; } declare function FallbackRender( - props: IFallbackProps + props: IFallbackProps ): React.ReactElement< - unknown, - string | React.FunctionComponent | typeof Component + unknown, + string | React.FunctionComponent | typeof Component > | null; interface ErrorBoundaryPropsWithRender { - onResetKeysChange?: ( - prevResetKeys: Array | undefined, - resetKeys: Array | undefined - ) => void; - onReset?: (...args: Array) => void; - onError?: (error: Error, info: { componentStack: string }) => void; - resetKeys?: Array; - fallback?: never; - FallbackComponent?: never; - fallbackRender: typeof FallbackRender; + onResetKeysChange?: ( + prevResetKeys: Array | undefined, + resetKeys: Array | undefined + ) => void; + onReset?: (...args: Array) => void; + onError?: (error: Error, info: { componentStack: string }) => void; + resetKeys?: Array; + fallback?: never; + FallbackComponent?: never; + fallbackRender: typeof FallbackRender; } interface ErrorBoundaryPropsWithFallback { - onResetKeysChange?: ( - prevResetKeys: Array | undefined, - resetKeys: Array | undefined - ) => void; - onReset?: (...args: Array) => void; - onError?: (error: Error, info: { componentStack: string }) => void; - resetKeys?: Array; - fallback: React.ReactElement< - unknown, - string | React.FunctionComponent | typeof Component - > | null; - FallbackComponent?: never; - fallbackRender?: never; + onResetKeysChange?: ( + prevResetKeys: Array | undefined, + resetKeys: Array | undefined + ) => void; + onReset?: (...args: Array) => void; + onError?: (error: Error, info: { componentStack: string }) => void; + resetKeys?: Array; + fallback: React.ReactElement< + unknown, + string | React.FunctionComponent | typeof Component + > | null; + FallbackComponent?: never; + fallbackRender?: never; } type ErrorBoundaryProps = - | ErrorBoundaryPropsWithFallback - | ErrorBoundaryPropsWithComponent - | ErrorBoundaryPropsWithRender; + | ErrorBoundaryPropsWithFallback + | ErrorBoundaryPropsWithComponent + | ErrorBoundaryPropsWithRender; type ErrorBoundaryState = { error: Error | null }; const initialState: ErrorBoundaryState = { error: null }; export class ErrorBoundary extends Component< - React.PropsWithRef>, - ErrorBoundaryState + React.PropsWithRef>, + ErrorBoundaryState > { - static getDerivedStateFromError(error: Error) { - return { error }; - } - - state = initialState; - resetErrorBoundary = (...args: Array) => { - this.props.onReset?.(...args); - this.reset(); - }; - - reset() { - this.setState(initialState); - } - - componentDidCatch(error: Error, info: React.ErrorInfo) { - this.props.onError?.(error, info); - } - - componentDidUpdate(prevProps: ErrorBoundaryProps, prevState: ErrorBoundaryState) { - const { error } = this.state; - const { resetKeys } = this.props; - - // There's an edge case where if the thing that triggered the error - // happens to *also* be in the resetKeys array, we'd end up resetting - // the error boundary immediately. This would likely trigger a second - // error to be thrown. - // So we make sure that we don't check the resetKeys on the first call - // of cDU after the error is set - - if ( - error !== null && - prevState.error !== null && - changedArray(prevProps.resetKeys, resetKeys) - ) { - this.props.onResetKeysChange?.(prevProps.resetKeys, resetKeys); - this.reset(); - } - } - - render() { - const { error } = this.state; - - const { fallbackRender, FallbackComponent, fallback } = this.props; - - if (error !== null) { - const props = { - error, - resetErrorBoundary: this.resetErrorBoundary - }; - if (isValidElement(fallback)) { - return fallback; - } else if (typeof fallbackRender === "function") { - return fallbackRender(props); - } else if (FallbackComponent) { - return ; - } else { - throw new Error( - "react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop" - ); - } - } - - return this.props.children; - } + static getDerivedStateFromError(error: Error) { + return { error }; + } + + state = initialState; + resetErrorBoundary = (...args: Array) => { + this.props.onReset?.(...args); + this.reset(); + }; + + reset() { + this.setState(initialState); + } + + componentDidCatch(error: Error, info: React.ErrorInfo) { + this.props.onError?.(error, info); + } + + componentDidUpdate(prevProps: ErrorBoundaryProps, prevState: ErrorBoundaryState) { + const { error } = this.state; + const { resetKeys } = this.props; + + // There's an edge case where if the thing that triggered the error + // happens to *also* be in the resetKeys array, we'd end up resetting + // the error boundary immediately. This would likely trigger a second + // error to be thrown. + // So we make sure that we don't check the resetKeys on the first call + // of cDU after the error is set + + if ( + error !== null && + prevState.error !== null && + changedArray(prevProps.resetKeys, resetKeys) + ) { + this.props.onResetKeysChange?.(prevProps.resetKeys, resetKeys); + this.reset(); + } + } + + render() { + const { error } = this.state; + + const { fallbackRender, FallbackComponent, fallback } = this.props; + + if (error !== null) { + const props = { + error, + resetErrorBoundary: this.resetErrorBoundary + }; + if (isValidElement(fallback)) { + return fallback; + } else if (typeof fallbackRender === "function") { + return fallbackRender(props); + } else if (FallbackComponent) { + return ; + } else { + throw new Error( + "react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop" + ); + } + } + + return this.props.children; + } } export function useErrorHandler(givenError?: unknown): (error: unknown) => void { - const [error, setError] = useState(null); - if (givenError != null) throw givenError; - if (error != null) throw error; - return setError; + const [error, setError] = useState(null); + if (givenError != null) throw givenError; + if (error != null) throw error; + return setError; } export function ErrorFallback({ error, resetErrorBoundary }: IFallbackProps) { - return ( -
-

Something went wrong:

-
{error.message}
- -
- ); + return ( +
+

Something went wrong:

+
{error.message}
+ +
+ ); } diff --git a/src/components/feed.tsx b/src/components/feed.tsx index 124e3a415..29d0caae5 100644 --- a/src/components/feed.tsx +++ b/src/components/feed.tsx @@ -9,335 +9,335 @@ import type { IEntry } from "../__generated__/client"; import { Routes } from "@shared/routes"; interface IBaseFeedItem { - title: string; - id: string; - dateAdded: Date | string; - onDelete: ({ id, title }: IPartialFeedItem) => void; - public: boolean; + title: string; + id: string; + dateAdded: Date | string; + onDelete: ({ id, title }: IPartialFeedItem) => void; + public: boolean; } const Card: React.VFC = (props) => { - const onDelete = useCallback(() => { - if (props.onDelete) { - props.onDelete({ id: props.id, title: props.title }); - } - }, [props]); - - return ( -
-
-

- - {props.title} - -

- {props.dateAdded && ( - added {distance(new Date(props.dateAdded))} ago - )} -
-
-
- - Edit - - {props.public && ( - - Preview - - )} -
- {props.onDelete && ( - - )} -
- - -
- ); + const onDelete = useCallback(() => { + if (props.onDelete) { + props.onDelete({ id: props.id, title: props.title }); + } + }, [props]); + + return ( +
+
+

+ + {props.title} + +

+ {props.dateAdded && ( + added {distance(new Date(props.dateAdded))} ago + )} +
+
+
+ + Edit + + {props.public && ( + + Preview + + )} +
+ {props.onDelete && ( + + )} +
+ + +
+ ); }; const PostListItem: React.VFC = (props) => { - function onDelete() { - props.onDelete({ id: props.id, title: props.title }); - } - - const editLink = `/${props.id}/edit`; - const previewLink = `/${props.id}/preview`; - - return ( -
  • -
    -
    -

    - - {props.title} - -

    - - added {distance(new Date(props.dateAdded))} ago -
    - -
    - {props.public && ( - - - - - - )} - - - - - - - {props.onDelete && ( - - )} -
    -
    - - -
  • - ); + function onDelete() { + props.onDelete({ id: props.id, title: props.title }); + } + + const editLink = `/${props.id}/edit`; + const previewLink = `/${props.id}/preview`; + + return ( +
  • +
    +
    +

    + + {props.title} + +

    + + added {distance(new Date(props.dateAdded))} ago +
    + +
    + {props.public && ( + + + + + + )} + + + + + + + {props.onDelete && ( + + )} +
    +
    + + +
  • + ); }; export type IFeedList = Pick[]; interface IPostListProps { - posts: IFeedList; - onSelect: ({ id, title }: IPartialFeedItem) => void; + posts: IFeedList; + onSelect: ({ id, title }: IPartialFeedItem) => void; } export const PostList: React.VFC = (props) => { - const [isGridView, setGrid] = useState(true); - - const testID = isGridView ? "ENTRIES_GRIDVIEW" : "ENTRIES_LISTVIEW"; - - return ( -
    -
    -

    Entries

    -
    -
    setGrid(true)}> - Grid -
    -
    setGrid(false)}> - List -
    -
    -
    - -
      - {props.posts.map((p, i) => - !isGridView ? ( - - ) : ( -
    • - -
    • - ) - )} -
    - -
    - ); + const [isGridView, setGrid] = useState(true); + + const testID = isGridView ? "ENTRIES_GRIDVIEW" : "ENTRIES_LISTVIEW"; + + return ( +
    +
    +

    Entries

    +
    +
    setGrid(true)}> + Grid +
    +
    setGrid(false)}> + List +
    +
    +
    + +
      + {props.posts.map((p, i) => + !isGridView ? ( + + ) : ( +
    • + +
    • + ) + )} +
    + +
    + ); }; diff --git a/src/components/footer.tsx b/src/components/footer.tsx index f1c1c27ae..3a9443ad9 100644 --- a/src/components/footer.tsx +++ b/src/components/footer.tsx @@ -5,57 +5,57 @@ const GITHUB = "https://github.com/charliewilco/downwrite"; const TWITTER = "https://twitter.com/_charliewilco"; const PAGES = [ - { name: "About", href: Routes.ABOUT }, - { name: "Legal", href: Routes.LEGAL }, - { name: "GitHub", href: GITHUB }, - { name: "@_charliewilco", href: TWITTER } + { name: "About", href: Routes.ABOUT }, + { name: "Legal", href: Routes.LEGAL }, + { name: "GitHub", href: GITHUB }, + { name: "@_charliewilco", href: TWITTER } ] as const; export const SiteFooter = () => { - const date = new Date(Date.now()); - - return ( -
    - - - -
    - ); + const date = new Date(Date.now()); + + return ( +
    + + + +
    + ); }; diff --git a/src/components/gradient-editor.tsx b/src/components/gradient-editor.tsx index e30ea83c8..3e65e899f 100644 --- a/src/components/gradient-editor.tsx +++ b/src/components/gradient-editor.tsx @@ -3,135 +3,135 @@ import { Avatar } from "@components/avatar"; import { startColors, endColors, isValidHex, Gradient } from "@shared/gradients"; interface IHexInputProps { - onChange: (color: string) => void; - initialValue?: string; + onChange: (color: string) => void; + initialValue?: string; } export const FunHexInput: React.VFC = (props) => { - const [hex, setHexColor] = useState(props.initialValue || ""); + const [hex, setHexColor] = useState(props.initialValue || ""); - function handleChange({ - target: { value } - }: React.ChangeEvent): void { - setHexColor(value); - } + function handleChange({ + target: { value } + }: React.ChangeEvent): void { + setHexColor(value); + } - useEffect(() => { - const color = "#" + hex; - const isValid = isValidHex(color); + useEffect(() => { + const color = "#" + hex; + const isValid = isValidHex(color); - if (isValid && props.onChange) { - props.onChange(color); - } - }, [hex, props]); + if (isValid && props.onChange) { + props.onChange(color); + } + }, [hex, props]); - return ( -
    - - # - - -
    - ); + return ( +
    + + # + + +
    + ); }; interface IColorPickerProps { - title?: string; - colors: Gradient; - onPress: (color: string, name: string) => void; - name: string; + title?: string; + colors: Gradient; + onPress: (color: string, name: string) => void; + name: string; } export const ColorPicker: React.VFC = ( - props = { - colors: startColors, - onPress: (color: string, name: string) => ({ color, name }), - name: "Color Picker" - } + props = { + colors: startColors, + onPress: (color: string, name: string) => ({ color, name }), + name: "Color Picker" + } ) => { - return ( -
    - {props.title &&

    {props.title}

    } -
    - {props.colors.map((background) => ( -
    props.onPress(background, props.name)} - style={{ background }} - key={background} - /> - ))} -
    - props.onPress(color, props.name)} /> - -
    - ); + .color-dot { + border-radius: 0.25rem; + width: 2rem; + height: 2rem; + margin-bottom: 0.5rem; + } + `} + +
    + ); }; interface IColors { - a: string; - b: string; + a: string; + b: string; } interface IGradientEditorProps { - initialColors?: any; - onColorChange: (value: string, name: string) => void; - colors: IColors; + initialColors?: any; + onColorChange: (value: string, name: string) => void; + colors: IColors; } export const GradientEditor: React.VFC = (props) => { - function handleColorChange(value: string, name: string): void { - props.onColorChange(value, name); - } + function handleColorChange(value: string, name: string): void { + props.onColorChange(value, name); + } - const colors = useMemo( - () => [props.colors.a, props.colors.b], - [props.colors] - ); + const colors = useMemo( + () => [props.colors.a, props.colors.b], + [props.colors] + ); - return ( -
    - -
    - - -
    -
    - ); + return ( +
    + +
    + + +
    +
    + ); }; diff --git a/src/components/header.tsx b/src/components/header.tsx index 9e8bae0c0..647b117e1 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -2,12 +2,12 @@ import Link from "next/link"; import { forwardRef } from "react"; import { Menu, MenuButton, MenuLink, MenuList } from "@reach/menu-button"; import { - FiPlus, - FiLogOut, - FiBook, - FiEdit3, - FiSettings, - FiMoreHorizontal + FiPlus, + FiLogOut, + FiBook, + FiEdit3, + FiSettings, + FiMoreHorizontal } from "react-icons/fi"; import { Logo } from "@components/logo"; import { UserBlock } from "@components/user-blocks"; @@ -16,191 +16,191 @@ import { useDataSource, useSubjectSubscription } from "@hooks/index"; import { Routes } from "@shared/routes"; const NextMenuLink = forwardRef(({ to, ...props }, ref) => { - return ( - - - - ); + return ( + + + + ); }); NextMenuLink.displayName = "NextMenuLink"; const LoginNav: React.VFC = () => { - return ( - - ); + return ( + + ); }; export const UIHeader: React.VFC = () => { - const dataSource = useDataSource(); - const me = useSubjectSubscription(dataSource.auth.state); - - return ( -
    -

    - - - - - -

    - {me.authed ? ( - - ) : ( - - )} - -
    - ); + const dataSource = useDataSource(); + const me = useSubjectSubscription(dataSource.auth.state); + + return ( +
    +

    + + + + + +

    + {me.authed ? ( + + ) : ( + + )} + +
    + ); }; diff --git a/src/components/loading.tsx b/src/components/loading.tsx index be82f381b..dae870f28 100644 --- a/src/components/loading.tsx +++ b/src/components/loading.tsx @@ -1,68 +1,68 @@ export const Loading: React.VFC = () => { - return ( -
    -
    -
    -
    + return ( +
    +
    +
    +
    - -
    - ); + .ring { + position: absolute; + left: 0; + right: 0; + border: 2px solid; + border-radius: 100%; + margin: auto; + width: var(--size); + height: var(--size); + animation-delay: var(--delay); + animation-fill-mode: both; + animation: ripple-effect 1.25s 0s infinite + cubic-bezier(0.21, 0.53, 0.56, 0.8); + } + `} +
    + ); }; diff --git a/src/components/logo.tsx b/src/components/logo.tsx index 11c2852b3..ce926b619 100644 --- a/src/components/logo.tsx +++ b/src/components/logo.tsx @@ -1,76 +1,76 @@ export const Logo: React.VFC = () => { - return ( -
    - - Downwrite Logo - - - - - - - - - - - - - - - -
    - ); + #nib-b { + color: var(--onyx-200); + } + } + `} +
    + ); }; diff --git a/src/components/not-found.tsx b/src/components/not-found.tsx index 9091172c7..cfc07e640 100644 --- a/src/components/not-found.tsx +++ b/src/components/not-found.tsx @@ -1,24 +1,24 @@ import Image from "next/image"; interface IPostErrorProps { - message: string; - error?: string; + message: string; + error?: string; } export const NotFound: React.VFC = ({ error, message }) => { - return ( -
    - Document with an Negative mark -

    - {error && error.concat(".")}
    - Ummm... something went horribly wrong. -

    -

    {message}

    -
    - ); + return ( +
    + Document with an Negative mark +

    + {error && error.concat(".")}
    + Ummm... something went horribly wrong. +

    +

    {message}

    +
    + ); }; diff --git a/src/components/notification-list.tsx b/src/components/notification-list.tsx index 2ec578ead..5c64ab8e1 100644 --- a/src/components/notification-list.tsx +++ b/src/components/notification-list.tsx @@ -2,32 +2,32 @@ import { ToastUI } from "@components/toast"; import { useSubjectSubscription, useDataSource } from "@hooks/index"; export function NotificationList() { - const dataSource = useDataSource(); - const notifications = useSubjectSubscription(dataSource.notifications.subject); + const dataSource = useDataSource(); + const notifications = useSubjectSubscription(dataSource.notifications.subject); - return ( -
    -
    - {notifications.map((notification, i) => ( - - ))} -
    + return ( +
    +
    + {notifications.map((notification, i) => ( + + ))} +
    - -
    - ); + .container { + position: relative; + } + `} +
    + ); } diff --git a/src/components/portal.tsx b/src/components/portal.tsx index ccbeb959a..9c3974516 100644 --- a/src/components/portal.tsx +++ b/src/components/portal.tsx @@ -3,50 +3,50 @@ import { useLayoutEffect, useEffect, useRef, useState, useCallback } from "react import { createPortal } from "react-dom"; export function useForceUpdate() { - let [, dispatch] = useState<{}>(Object.create(null)); - return useCallback(() => { - dispatch(Object.create(null)); - }, []); + let [, dispatch] = useState<{}>(Object.create(null)); + return useCallback(() => { + dispatch(Object.create(null)); + }, []); } function canUseDOM() { - return !!( - typeof window !== "undefined" && - window.document && - window.document.createElement - ); + return !!( + typeof window !== "undefined" && + window.document && + window.document.createElement + ); } export const useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect; interface IPortalProps { - type: string; - containerRef?: React.RefObject; + type: string; + containerRef?: React.RefObject; } export const Portal: React.FC = ({ type, children, containerRef }) => { - let mountNode = useRef(null); - let portalNode = useRef(null); - - const forceUpdate = useForceUpdate(); - - useIsomorphicLayoutEffect(() => { - if (!mountNode.current) return; - - let ownerDocument = mountNode.current!.ownerDocument; - let body = containerRef?.current || ownerDocument.body; - portalNode.current = ownerDocument?.createElement(type)!; - body.appendChild(portalNode.current); - forceUpdate(); - return () => { - if (portalNode.current && body) { - body.removeChild(portalNode.current); - } - }; - }, [type, forceUpdate, containerRef]); - return portalNode.current ? ( - createPortal(children, portalNode.current) - ) : ( - - ); + let mountNode = useRef(null); + let portalNode = useRef(null); + + const forceUpdate = useForceUpdate(); + + useIsomorphicLayoutEffect(() => { + if (!mountNode.current) return; + + let ownerDocument = mountNode.current!.ownerDocument; + let body = containerRef?.current || ownerDocument.body; + portalNode.current = ownerDocument?.createElement(type)!; + body.appendChild(portalNode.current); + forceUpdate(); + return () => { + if (portalNode.current && body) { + body.removeChild(portalNode.current); + } + }; + }, [type, forceUpdate, containerRef]); + return portalNode.current ? ( + createPortal(children, portalNode.current) + ) : ( + + ); }; diff --git a/src/components/reset.tsx b/src/components/reset.tsx index ffed87675..5149e55d6 100644 --- a/src/components/reset.tsx +++ b/src/components/reset.tsx @@ -1,190 +1,190 @@ import css from "styled-jsx/css"; export const variables = css.global` - :root { - --monospace: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; - --sans-serif: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - --serif: "Newsreader", "Charter", "Times", system-ui, -apple-system, - BlinkMacSystemFont, "Segoe UI", Helvetica, serif, "Apple Color Emoji", - "Segoe UI Emoji", "Segoe UI Symbol"; - --base-spacing: 1rem; - - --onyx-100: #e3e4e4; - --onyx-200: #c8c9ca; - --onyx-300: #aeafb1; - --onyx-400: #949698; - --onyx-500: #7b7d80; - --onyx-600: #636669; - --onyx-700: #4c4f52; - --onyx-800: #36393d; - --onyx-900: #212529; - --onyx-1000: #15171a; - --pixieblue-100: #d4ecfe; - --pixieblue-200: #a9d8fd; - --pixieblue-300: #7cc3fc; - --pixieblue-400: #4cadfb; - --pixieblue-500: #2597f1; - --pixieblue-600: #2082cf; - --pixieblue-700: #1c6dae; - --pixieblue-800: #185a8f; - --pixieblue-900: #144770; - --goldar-100: #fff3d4; - --goldar-200: #ffe7a8; - --goldar-300: #ffdb79; - --goldar-400: #ffcd46; - --goldar-500: #ffbe0f; - --goldar-600: #fdaf04; - --goldar-700: #fb9f0a; - --goldar-800: #f89011; - --goldar-900: #f57f17; - - --bg: var(--onyx-100); - --fg: var(--onyx-900); - --surface: #fff; - --bg-offset: rgb(211, 211, 211); - --highlight: var(--pixieblue-500); - --highlight-hover: #5486a4; - } + :root { + --monospace: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, + Liberation Mono, monospace; + --sans-serif: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, + sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + --serif: "Newsreader", "Charter", "Times", system-ui, -apple-system, + BlinkMacSystemFont, "Segoe UI", Helvetica, serif, "Apple Color Emoji", + "Segoe UI Emoji", "Segoe UI Symbol"; + --base-spacing: 1rem; + + --onyx-100: #e3e4e4; + --onyx-200: #c8c9ca; + --onyx-300: #aeafb1; + --onyx-400: #949698; + --onyx-500: #7b7d80; + --onyx-600: #636669; + --onyx-700: #4c4f52; + --onyx-800: #36393d; + --onyx-900: #212529; + --onyx-1000: #15171a; + --pixieblue-100: #d4ecfe; + --pixieblue-200: #a9d8fd; + --pixieblue-300: #7cc3fc; + --pixieblue-400: #4cadfb; + --pixieblue-500: #2597f1; + --pixieblue-600: #2082cf; + --pixieblue-700: #1c6dae; + --pixieblue-800: #185a8f; + --pixieblue-900: #144770; + --goldar-100: #fff3d4; + --goldar-200: #ffe7a8; + --goldar-300: #ffdb79; + --goldar-400: #ffcd46; + --goldar-500: #ffbe0f; + --goldar-600: #fdaf04; + --goldar-700: #fb9f0a; + --goldar-800: #f89011; + --goldar-900: #f57f17; + + --bg: var(--onyx-100); + --fg: var(--onyx-900); + --surface: #fff; + --bg-offset: rgb(211, 211, 211); + --highlight: var(--pixieblue-500); + --highlight-hover: #5486a4; + } `; export const reset = css.global` - * { - margin: 0; - padding: 0; - } - - *, - *::before, - *::after { - box-sizing: inherit; - } - - html { - box-sizing: border-box; - text-size-adjust: 100%; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - -webkit-tap-highlight-color: transparent; - } - - body { - min-height: 100vh; - scroll-behavior: smooth; - } - - aside, - figcaption, - figure, - hgroup, - main, - menu, - details { - display: block; - } - - [hidden], - template { - display: none; - } - - audio, - canvas, - progress, - video { - display: inline-block; - vertical-align: baseline; - } - - audio:not([controls]) { - display: none; - height: 0; - } - - abbr[title] { - border-bottom-width: 0.5px; - border-bottom-style: dotted; - } - - b, - strong { - font-weight: bold; - } - - i, - em { - font-style: italic; - } - - a { - background-color: transparent; - text-decoration: none; - } - - small { - font-size: 80%; - } - - figure { - margin: 0; - } - - hr { - border: 0; - height: 1px; - overflow: visible; - } - - img { - border-style: none; - font-style: italic; - vertical-align: middle; - } - - svg:not(:root) { - overflow: hidden; - } - - pre { - overflow: auto; - } - - table { - border-collapse: collapse; - } - - textarea { - white-space: revert; - } - - button, - input, - optgroup, - select, - textarea { - margin: 0; - font-family: inherit; - } - - select, - button { - text-transform: none; - } - - button { - overflow: visible; - } - - fieldset { - padding: 0.375rem 0.75rem 0.625rem; - } - - legend { - color: inherit; - display: table; - max-width: 100%; - padding: 0; - white-space: normal; - } + * { + margin: 0; + padding: 0; + } + + *, + *::before, + *::after { + box-sizing: inherit; + } + + html { + box-sizing: border-box; + text-size-adjust: 100%; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + -webkit-tap-highlight-color: transparent; + } + + body { + min-height: 100vh; + scroll-behavior: smooth; + } + + aside, + figcaption, + figure, + hgroup, + main, + menu, + details { + display: block; + } + + [hidden], + template { + display: none; + } + + audio, + canvas, + progress, + video { + display: inline-block; + vertical-align: baseline; + } + + audio:not([controls]) { + display: none; + height: 0; + } + + abbr[title] { + border-bottom-width: 0.5px; + border-bottom-style: dotted; + } + + b, + strong { + font-weight: bold; + } + + i, + em { + font-style: italic; + } + + a { + background-color: transparent; + text-decoration: none; + } + + small { + font-size: 80%; + } + + figure { + margin: 0; + } + + hr { + border: 0; + height: 1px; + overflow: visible; + } + + img { + border-style: none; + font-style: italic; + vertical-align: middle; + } + + svg:not(:root) { + overflow: hidden; + } + + pre { + overflow: auto; + } + + table { + border-collapse: collapse; + } + + textarea { + white-space: revert; + } + + button, + input, + optgroup, + select, + textarea { + margin: 0; + font-family: inherit; + } + + select, + button { + text-transform: none; + } + + button { + overflow: visible; + } + + fieldset { + padding: 0.375rem 0.75rem 0.625rem; + } + + legend { + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; + } `; diff --git a/src/components/sticky-header.tsx b/src/components/sticky-header.tsx index 3e92e7692..53b2b65d0 100644 --- a/src/components/sticky-header.tsx +++ b/src/components/sticky-header.tsx @@ -1,35 +1,35 @@ import { forwardRef } from "react"; export const StickyContainer = forwardRef< - HTMLDivElement, - React.PropsWithChildren<{ - debug?: boolean; - }> + HTMLDivElement, + React.PropsWithChildren<{ + debug?: boolean; + }> >((props, ref) => { - return ( -
    - {props.children} + return ( +
    + {props.children} - -
    - ); + margin: 0 auto; + background: rgba(19, 20, 21, 0.5); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } + `} +
    + ); }); StickyContainer.displayName = "StickyContainer"; diff --git a/src/components/time-marker.tsx b/src/components/time-marker.tsx index bb7979035..dd2a3ef03 100644 --- a/src/components/time-marker.tsx +++ b/src/components/time-marker.tsx @@ -1,15 +1,15 @@ import format from "date-fns/format"; interface ITimeMarkProps { - dateAdded: Date; + dateAdded: Date; } export const TimeMarker: React.VFC = (props) => { - const date = new Date(props.dateAdded.toString()); + const date = new Date(props.dateAdded.toString()); - return ( -
    - Added on -
    - ); + return ( +
    + Added on +
    + ); }; diff --git a/src/components/toast.tsx b/src/components/toast.tsx index c2f79e9af..1fe33a879 100644 --- a/src/components/toast.tsx +++ b/src/components/toast.tsx @@ -3,86 +3,86 @@ import { useDataSource, useTimeout } from "@hooks/index"; import { NotificationType, UINotificationMessage } from "@data/base/notifications"; interface IToastUIProps { - notification: UINotificationMessage; + notification: UINotificationMessage; } export const ToastUI: React.VFC = (props) => { - const dataSource = useDataSource(); + const dataSource = useDataSource(); - const onRemove = useCallback(() => { - dataSource.notifications.remove(props.notification.id); - }, [props, dataSource]); + const onRemove = useCallback(() => { + dataSource.notifications.remove(props.notification.id); + }, [props, dataSource]); - useTimeout(15000, props.notification.dismissable ? onRemove : undefined); + useTimeout(15000, props.notification.dismissable ? onRemove : undefined); - const bg = - props.notification.type === NotificationType.WARNING - ? "var(--goldar-500)" - : props.notification.type === NotificationType.ERROR - ? "var(--goldar-900)" - : "var(--surface)"; + const bg = + props.notification.type === NotificationType.WARNING + ? "var(--goldar-500)" + : props.notification.type === NotificationType.ERROR + ? "var(--goldar-900)" + : "var(--surface)"; - const fg = - props.notification.type === NotificationType.WARNING || - props.notification.type === NotificationType.ERROR - ? "var(--onyx-900)" - : "inherit"; + const fg = + props.notification.type === NotificationType.WARNING || + props.notification.type === NotificationType.ERROR + ? "var(--onyx-900)" + : "inherit"; - return ( -
    -
    -

    - {props.notification.type !== NotificationType.DEFAULT && ( - {props.notification.type} - )} - {props.notification.text} -

    + return ( +
    +
    +

    + {props.notification.type !== NotificationType.DEFAULT && ( + {props.notification.type} + )} + {props.notification.text} +

    - {!props.notification.dismissable && ( - - )} -
    + {!props.notification.dismissable && ( + + )} +
    - -
    - ); + button { + font-weight: 700; + font-size: 0.875rem; + } + `} +
    + ); }; diff --git a/src/components/typography.tsx b/src/components/typography.tsx index 9a80cee6c..ae78a4c34 100644 --- a/src/components/typography.tsx +++ b/src/components/typography.tsx @@ -1,9 +1,9 @@ import css from "styled-jsx/css"; export const typography = css.global` - .page-title { - font-weight: 300; - font-size: 1.75rem; - line-height: 2rem; - } + .page-title { + font-weight: 300; + font-size: 1.75rem; + line-height: 2rem; + } `; diff --git a/src/components/ui-input.tsx b/src/components/ui-input.tsx index 54837402a..e59267a42 100644 --- a/src/components/ui-input.tsx +++ b/src/components/ui-input.tsx @@ -1,106 +1,106 @@ import { useRef, useReducer } from "react"; interface IUIInputProps { - onChange(e: React.ChangeEvent): void; - label: string; - value: string; - name?: string; - type?: string; - placeholder?: string; - autoComplete?: string; - className?: string; - testID?: string; + onChange(e: React.ChangeEvent): void; + label: string; + value: string; + name?: string; + type?: string; + placeholder?: string; + autoComplete?: string; + className?: string; + testID?: string; } export const UIInputError: React.FC> = ({ - style, - ...props + style, + ...props }) => { - return ( - - {props.children} - - - ); + return ( + + {props.children} + + + ); }; export const UIInput: React.VFC = ({ testID, label, ...props }) => { - const id = useRef("UI_TEXT_INPUT_".concat(label.replace(" ", ""))); + const id = useRef("UI_TEXT_INPUT_".concat(label.replace(" ", ""))); - const [isFocused, dispatch] = useReducer( - (state: boolean, action: "focus" | "blur") => { - return action !== "blur"; - }, - false - ); + const [isFocused, dispatch] = useReducer( + (state: boolean, action: "focus" | "blur") => { + return action !== "blur"; + }, + false + ); - return ( - - ); + return ( + + ); }; export const EditorInput: React.VFC> = ( - props + props ) => { - return ( -
    - - -
    - ); + return ( +
    + + +
    + ); }; diff --git a/src/components/ui-shell.tsx b/src/components/ui-shell.tsx index 80770259a..0d0a99b64 100644 --- a/src/components/ui-shell.tsx +++ b/src/components/ui-shell.tsx @@ -8,75 +8,75 @@ import { ErrorBoundary, ErrorFallback } from "./errors"; import { useIsomorphicLayoutEffect } from "./portal"; const customErrorHandler = (error: Error, info: { componentStack: string }) => { - console.log(error, info.componentStack); + console.log(error, info.componentStack); }; export const UIShell: React.FC = ({ children }) => { - const ds = useDataSource(); - useIsomorphicLayoutEffect(() => { - ds.auth.check(); - }, [ds]); - return ( - -
    - -
    {children}
    - -
    - - - - - + + + + - + -
    - ); + main { + flex: 2; + height: 100%; + } + `} + + ); }; diff --git a/src/components/user-blocks.tsx b/src/components/user-blocks.tsx index a309e34ca..2781c01b9 100644 --- a/src/components/user-blocks.tsx +++ b/src/components/user-blocks.tsx @@ -2,60 +2,60 @@ import { Avatar } from "@components/avatar"; import { Gradient } from "@shared/gradients"; interface IUserBlockProps { - name: string; - border: boolean; - colors: Gradient; + name: string; + border: boolean; + colors: Gradient; } export const UserBlock: React.VFC = (props) => { - return ( -
    - - {props.name} - -
    - ); + return ( +
    + + {props.name} + +
    + ); }; interface IAuthorProps { - name: string; - colors: Gradient; + name: string; + colors: Gradient; } export const AuthorBlock = (props: IAuthorProps): JSX.Element => { - return ( -
    - -
    {props.name}
    + return ( +
    + +
    {props.name}
    - -
    - ); + div { + display: flex; + align-items: center; + } + `} +
    + ); }; diff --git a/src/components/visibility-toggle.tsx b/src/components/visibility-toggle.tsx index e3eed57c2..0ca2f082f 100644 --- a/src/components/visibility-toggle.tsx +++ b/src/components/visibility-toggle.tsx @@ -3,34 +3,34 @@ import { VisuallyHidden } from "@reach/visually-hidden"; import { useRef } from "react"; interface IVisibilityToggleProps { - checked: boolean; - onCheck(ev: React.ChangeEvent): void; + checked: boolean; + onCheck(ev: React.ChangeEvent): void; } export const VisibilityToggle: React.FC = ({ - checked, - onCheck, - children + checked, + onCheck, + children }) => { - let inputRef = useRef(null); - let [inputProps, stateData] = useMixedCheckbox(inputRef, { - checked, - onChange: onCheck - }); + let inputRef = useRef(null); + let [inputProps, stateData] = useMixedCheckbox(inputRef, { + checked, + onChange: onCheck + }); - return ( - - ); + return ( + + ); }; diff --git a/src/data/base/auth.ts b/src/data/base/auth.ts index 2579ef804..b60dc7746 100644 --- a/src/data/base/auth.ts +++ b/src/data/base/auth.ts @@ -8,127 +8,127 @@ import { TOKEN_NAME } from "@shared/constants"; import type { TokenContents } from "@shared/types"; export interface ICurrentUserState { - username?: string; - id?: string; - authed: boolean; + username?: string; + id?: string; + authed: boolean; } export interface IRegisterValues { - username: string; - password: string; - legalChecked: boolean; - email: string; + username: string; + password: string; + legalChecked: boolean; + email: string; } export interface ILoginValues { - user: string; - password: string; + user: string; + password: string; } export class Auth { - #internalState: ICurrentUserState = { - username: "", - id: "", - authed: false - }; - readonly state = new BehaviorSubject({ - username: "", - id: "", - authed: false - }); - #client: DownwriteClient; - #store: IAppState; - constructor(_graphql: DownwriteClient, store: IAppState) { - this.#client = _graphql; - this.#store = store; - } - - async check() { - const cookies = this.#client.cookies.getAll(); - - if (cookies[TOKEN_NAME]) { - try { - const value = await this.#client.isMe(); - - if (value) { - console.log(value); - this.#internalState.id = value.me.details.id; - this.#internalState.username = value.me.details.username; - this.#callNext(); - } - } catch (error) { - this.#internalState.id = ""; - this.#internalState.username = ""; - - console.log(error.message); - } - } - } - - #callNext() { - this.state.next({ - ...this.#internalState, - authed: !!this.#internalState.username && !!this.#internalState.id - }); - } - - onLogin(username: string, id: string) { - this.#internalState.username = username; - this.#internalState.id = id; - - this.#callNext(); - } - - onLogout() { - this.#internalState.username = ""; - this.#internalState.id = ""; - - this.#callNext(); - } - - async login(values: ILoginValues) { - try { - const value = await this.#client.loginUser({ - username: values.user, - password: base64.encode(values.password) - }); - - const token = value.authenticateUser.token; - - const d = decode(token); - this.onLogin(d.name, d.user); - this.#client.setToken(token); - - for (const n of this.#store.notifications.getAll()) { - this.#store.notifications.remove(n.id); - } - } catch (error) { - this.#store.notifications.error(error.message); - } - } - - async register({ legalChecked, ...values }: IRegisterValues) { - if (legalChecked) { - try { - const value = await this.#client.createUser({ - ...values, - password: base64.encode(values.password) - }); - - if (value.createUser.token) { - const token = value.createUser.token; - - const d = decode(token); - this.onLogin(d.name, d.user); - this.#client.setToken(token); - - for (const n of this.#store.notifications.getAll()) { - this.#store.notifications.remove(n.id); - } - } - } catch (error) { - this.#store.notifications.error(error.message); - } - } - } + #internalState: ICurrentUserState = { + username: "", + id: "", + authed: false + }; + readonly state = new BehaviorSubject({ + username: "", + id: "", + authed: false + }); + #client: DownwriteClient; + #store: IAppState; + constructor(_graphql: DownwriteClient, store: IAppState) { + this.#client = _graphql; + this.#store = store; + } + + async check() { + const cookies = this.#client.cookies.getAll(); + + if (cookies[TOKEN_NAME]) { + try { + const value = await this.#client.isMe(); + + if (value) { + console.log(value); + this.#internalState.id = value.me.details.id; + this.#internalState.username = value.me.details.username; + this.#callNext(); + } + } catch (error) { + this.#internalState.id = ""; + this.#internalState.username = ""; + + console.log(error.message); + } + } + } + + #callNext() { + this.state.next({ + ...this.#internalState, + authed: !!this.#internalState.username && !!this.#internalState.id + }); + } + + onLogin(username: string, id: string) { + this.#internalState.username = username; + this.#internalState.id = id; + + this.#callNext(); + } + + onLogout() { + this.#internalState.username = ""; + this.#internalState.id = ""; + + this.#callNext(); + } + + async login(values: ILoginValues) { + try { + const value = await this.#client.loginUser({ + username: values.user, + password: base64.encode(values.password) + }); + + const token = value.authenticateUser.token; + + const d = decode(token); + this.onLogin(d.name, d.user); + this.#client.setToken(token); + + for (const n of this.#store.notifications.getAll()) { + this.#store.notifications.remove(n.id); + } + } catch (error) { + this.#store.notifications.error(error.message); + } + } + + async register({ legalChecked, ...values }: IRegisterValues) { + if (legalChecked) { + try { + const value = await this.#client.createUser({ + ...values, + password: base64.encode(values.password) + }); + + if (value.createUser.token) { + const token = value.createUser.token; + + const d = decode(token); + this.onLogin(d.name, d.user); + this.#client.setToken(token); + + for (const n of this.#store.notifications.getAll()) { + this.#store.notifications.remove(n.id); + } + } + } catch (error) { + this.#store.notifications.error(error.message); + } + } + } } diff --git a/src/data/base/notifications.ts b/src/data/base/notifications.ts index 86550148a..15bc7f774 100644 --- a/src/data/base/notifications.ts +++ b/src/data/base/notifications.ts @@ -2,61 +2,61 @@ import cuid from "cuid"; import { BehaviorSubject } from "rxjs"; export enum NotificationType { - DEFAULT = "DEFAULT", - ERROR = "ERROR", - WARNING = "WARNING" + DEFAULT = "DEFAULT", + ERROR = "ERROR", + WARNING = "WARNING" } export class UINotificationMessage { - public id: string = cuid(); - public text: string; - public dateAdded: number = Date.now(); - public type: NotificationType; - public dismissable: boolean; - constructor(text: string, type?: NotificationType, dismissable?: boolean) { - this.text = text; - this.type = type || NotificationType.DEFAULT; - this.dismissable = dismissable || false; - } + public id: string = cuid(); + public text: string; + public dateAdded: number = Date.now(); + public type: NotificationType; + public dismissable: boolean; + constructor(text: string, type?: NotificationType, dismissable?: boolean) { + this.text = text; + this.type = type || NotificationType.DEFAULT; + this.dismissable = dismissable || false; + } } export class GlobalNotifications { - subject: BehaviorSubject; - #_list: UINotificationMessage[] = []; - constructor() { - this.subject = new BehaviorSubject([...this.#_list]); - } - - getAll() { - return this.#_list; - } - - #_add(text: string, variant?: NotificationType, dismissable?: boolean) { - this.#_list.unshift(new UINotificationMessage(text, variant, dismissable)); - this.subject.next(Array.from(this.#_list)); - } - #_remove(id: string) { - const index = this.#_list.findIndex((n) => n.id === id); - - if (index > -1) { - this.#_list.splice(index, 1); - } - } - - warn(text: string, dismissable?: boolean) { - this.#_add(text, NotificationType.WARNING, dismissable); - } - - error(text: string, dismissable?: boolean) { - this.#_add(text, NotificationType.ERROR, dismissable); - } - - add(text: string, dismissable?: boolean) { - this.#_add(text, NotificationType.DEFAULT, dismissable); - } - - remove(id: string) { - this.#_remove(id); - this.subject.next(Array.from(this.#_list)); - } + subject: BehaviorSubject; + #_list: UINotificationMessage[] = []; + constructor() { + this.subject = new BehaviorSubject([...this.#_list]); + } + + getAll() { + return this.#_list; + } + + #_add(text: string, variant?: NotificationType, dismissable?: boolean) { + this.#_list.unshift(new UINotificationMessage(text, variant, dismissable)); + this.subject.next(Array.from(this.#_list)); + } + #_remove(id: string) { + const index = this.#_list.findIndex((n) => n.id === id); + + if (index > -1) { + this.#_list.splice(index, 1); + } + } + + warn(text: string, dismissable?: boolean) { + this.#_add(text, NotificationType.WARNING, dismissable); + } + + error(text: string, dismissable?: boolean) { + this.#_add(text, NotificationType.ERROR, dismissable); + } + + add(text: string, dismissable?: boolean) { + this.#_add(text, NotificationType.DEFAULT, dismissable); + } + + remove(id: string) { + this.#_remove(id); + this.subject.next(Array.from(this.#_list)); + } } diff --git a/src/data/base/settings.ts b/src/data/base/settings.ts index 21cf5c8bf..ee028d08b 100644 --- a/src/data/base/settings.ts +++ b/src/data/base/settings.ts @@ -3,64 +3,64 @@ import type { IAppState } from "@data/types"; import base64 from "base-64"; export interface ISettings { - isDarkMode: boolean; - fileExtension: string; + isDarkMode: boolean; + fileExtension: string; } export interface IUserFormValues { - username: string; - email: string; + username: string; + email: string; } export interface IPasswordSettings { - oldPassword: string; - newPassword: string; - confirmPassword: string; + oldPassword: string; + newPassword: string; + confirmPassword: string; } export enum LocalSettings { - EXTENSION = "DW_FILE_EXTENSION" + EXTENSION = "DW_FILE_EXTENSION" } export class GlobalSettings implements ISettings { - isDarkMode = true; - fileExtension = ".md"; - #client: DownwriteClient; - #store: IAppState; - constructor(_graphql: DownwriteClient, store: IAppState) { - this.#client = _graphql; - this.#store = store; - } + isDarkMode = true; + fileExtension = ".md"; + #client: DownwriteClient; + #store: IAppState; + constructor(_graphql: DownwriteClient, store: IAppState) { + this.#client = _graphql; + this.#store = store; + } - handleSettingsUpdate(values: { fileExtension: string }) { - this.fileExtension = values.fileExtension; - } + handleSettingsUpdate(values: { fileExtension: string }) { + this.fileExtension = values.fileExtension; + } - toggleDarkMode() { - this.isDarkMode = !this.isDarkMode; - } + toggleDarkMode() { + this.isDarkMode = !this.isDarkMode; + } - async update(settings: IUserFormValues) { - try { - return this.#client.updateSettings({ - settings: { - username: settings.username, - email: settings.email - } - }); - } catch (error) { - this.#store.notifications.error(error.message); - } - } + async update(settings: IUserFormValues) { + try { + return this.#client.updateSettings({ + settings: { + username: settings.username, + email: settings.email + } + }); + } catch (error) { + this.#store.notifications.error(error.message); + } + } - async changePassword(_: IPasswordSettings) { - try { - return this.#client.updatePassword( - base64.encode(_.oldPassword), - base64.encode(_.newPassword) - ); - } catch (error) { - this.#store.notifications.error(error.message, true); - } - } + async changePassword(_: IPasswordSettings) { + try { + return this.#client.updatePassword( + base64.encode(_.oldPassword), + base64.encode(_.newPassword) + ); + } catch (error) { + this.#store.notifications.error(error.message, true); + } + } } diff --git a/src/data/client.ts b/src/data/client.ts index 209c7c5d9..09a8733e9 100644 --- a/src/data/client.ts +++ b/src/data/client.ts @@ -5,116 +5,116 @@ import { TOKEN_NAME } from "@shared/constants"; import { getSdk } from "../__generated__/client"; import type { - IIsMeQuery, - ICreateEntryMutationVariables, - ICreateUserMutationVariables, - ILoginUserMutationVariables, - IUpdateEntryMutationVariables, - IUpdateUserSettingsMutationVariables + IIsMeQuery, + ICreateEntryMutationVariables, + ICreateUserMutationVariables, + ILoginUserMutationVariables, + IUpdateEntryMutationVariables, + IUpdateUserSettingsMutationVariables } from "../__generated__/client"; export class DownwriteClient extends GraphQLClient { - cookies = new Cookie(); - constructor(options?: RequestInit) { - super("/api/graphql", options); - - this._checkToken(); - - this.cookies.addChangeListener((options) => { - if (options.name === TOKEN_NAME && options.value) { - this.setToken(options.value); - } - }); - } - - private _checkToken() { - const token = this.cookies.get(TOKEN_NAME); - - if (token) { - this.setToken(token); - } - } - - setToken(token: string) { - this.setHeader("Authorization", token); - this.cookies.set(TOKEN_NAME, token); - } - - allPosts() { - return getSdk(this).AllPosts(); - } - - isMe() { - return getSdk(this).IsMe(); - } - - edit(id: string) { - return getSdk(this).Edit({ id }); - } - - preview(id: string) { - return getSdk(this).Preview({ id }); - } - - userDetails() { - return getSdk(this).UserDetails(); - } - - updateEntry(variables: IUpdateEntryMutationVariables) { - return getSdk(this).UpdateEntry(variables); - } - - createEntry(variables: ICreateEntryMutationVariables) { - return getSdk(this).CreateEntry(variables); - } - - removeEntry(id: string) { - return getSdk(this).RemoveEntry({ id }); - } - - loginUser(variables: ILoginUserMutationVariables) { - return getSdk(this).LoginUser(variables); - } - - createUser(variables: ICreateUserMutationVariables) { - return getSdk(this).CreateUser(variables); - } - - updateSettings(variables: IUpdateUserSettingsMutationVariables) { - return getSdk(this).UpdateUserSettings(variables); - } - - updatePassword(current: string, newPassword: string) { - return getSdk(this).UpdatePassword({ - current, - newPassword - }); - } + cookies = new Cookie(); + constructor(options?: RequestInit) { + super("/api/graphql", options); + + this._checkToken(); + + this.cookies.addChangeListener((options) => { + if (options.name === TOKEN_NAME && options.value) { + this.setToken(options.value); + } + }); + } + + private _checkToken() { + const token = this.cookies.get(TOKEN_NAME); + + if (token) { + this.setToken(token); + } + } + + setToken(token: string) { + this.setHeader("Authorization", token); + this.cookies.set(TOKEN_NAME, token); + } + + allPosts() { + return getSdk(this).AllPosts(); + } + + isMe() { + return getSdk(this).IsMe(); + } + + edit(id: string) { + return getSdk(this).Edit({ id }); + } + + preview(id: string) { + return getSdk(this).Preview({ id }); + } + + userDetails() { + return getSdk(this).UserDetails(); + } + + updateEntry(variables: IUpdateEntryMutationVariables) { + return getSdk(this).UpdateEntry(variables); + } + + createEntry(variables: ICreateEntryMutationVariables) { + return getSdk(this).CreateEntry(variables); + } + + removeEntry(id: string) { + return getSdk(this).RemoveEntry({ id }); + } + + loginUser(variables: ILoginUserMutationVariables) { + return getSdk(this).LoginUser(variables); + } + + createUser(variables: ICreateUserMutationVariables) { + return getSdk(this).CreateUser(variables); + } + + updateSettings(variables: IUpdateUserSettingsMutationVariables) { + return getSdk(this).UpdateUserSettings(variables); + } + + updatePassword(current: string, newPassword: string) { + return getSdk(this).UpdatePassword({ + current, + newPassword + }); + } } export class MockClient { - cookies = new Cookie({ [TOKEN_NAME]: "" }); - setToken(value: string) { - this.cookies.set(TOKEN_NAME, value); - } - async loginUser(variables: ILoginUserMutationVariables) { - console.log(variables); - return { - authenticateUser: { - token: "..." - } - }; - } - - async isMe(): Promise { - return { - me: { - token: "MOCK_TOKEN_2", - details: { - id: "1", - username: "david-yates" - } - } - }; - } + cookies = new Cookie({ [TOKEN_NAME]: "" }); + setToken(value: string) { + this.cookies.set(TOKEN_NAME, value); + } + async loginUser(variables: ILoginUserMutationVariables) { + console.log(variables); + return { + authenticateUser: { + token: "..." + } + }; + } + + async isMe(): Promise { + return { + me: { + token: "MOCK_TOKEN_2", + details: { + id: "1", + username: "david-yates" + } + } + }; + } } diff --git a/src/data/modules/base-draft.ts b/src/data/modules/base-draft.ts index 93d45d47d..30c00426f 100644 --- a/src/data/modules/base-draft.ts +++ b/src/data/modules/base-draft.ts @@ -8,70 +8,70 @@ import { __IS_BROWSER__ } from "@shared/constants"; import { fmParserr } from "@shared/fm"; interface IMarkdown { - body: string; - attributes: { - [key: string]: any; - }; + body: string; + attributes: { + [key: string]: any; + }; } const GC_TIMEOUT = 1000 * 60; export abstract class BaseDraft { - #reader: FileReader = null; - parser = new DraftParser(); + #reader: FileReader = null; + parser = new DraftParser(); - async importFiles(files: File[]) { - return new Promise<{ - title: string; - editorState: EditorState; - }>((resolve, reject) => { - if (this.#reader === null) { - this.#reader = new FileReader(); - } + async importFiles(files: File[]) { + return new Promise<{ + title: string; + editorState: EditorState; + }>((resolve, reject) => { + if (this.#reader === null) { + this.#reader = new FileReader(); + } - this.#reader.onload = () => { - const md: IMarkdown = fmParserr(this.#reader!.result as string); - const markdown = mdToDraftjs(md.body); + this.#reader.onload = () => { + const md: IMarkdown = fmParserr(this.#reader!.result as string); + const markdown = mdToDraftjs(md.body); - resolve({ - title: md.attributes.title || "", - editorState: EditorState.createWithContent(convertFromRaw(markdown)) - }); - }; + resolve({ + title: md.attributes.title || "", + editorState: EditorState.createWithContent(convertFromRaw(markdown)) + }); + }; - this.#reader.readAsText(files[0]); + this.#reader.readAsText(files[0]); - this.#reader.onerror = () => reject(this.#reader.error); - }); - } + this.#reader.onerror = () => reject(this.#reader.error); + }); + } - exportEntry(values: { title: string; date: Date; editorState: EditorState }) { - let localFileExtension = localStorage.getItem(LocalSettings.EXTENSION) || ""; - let extension = localFileExtension.replace(/\./g, "") || "md"; - let isFileSaverSupported = !!new Blob(); + exportEntry(values: { title: string; date: Date; editorState: EditorState }) { + let localFileExtension = localStorage.getItem(LocalSettings.EXTENSION) || ""; + let extension = localFileExtension.replace(/\./g, "") || "md"; + let isFileSaverSupported = !!new Blob(); - if (isFileSaverSupported) { - const cx: ContentState = values.editorState.getCurrentContent(); - const content: RawDraftContentState = convertToRaw(cx); - let md = this.parser.createMarkdown( - values.title, - draftjsToMd(content), - values.date - ); - let blob = new Blob([md.trim()], { type: "text/markdown; charset=UTF-8" }); - let url = URL.createObjectURL(blob); - const a = document.createElement("a"); - a.href = url; - a.download = `${values.title.replace(/\s+/g, "-").toLowerCase()}.${extension}`; - const click = new MouseEvent("click"); + if (isFileSaverSupported) { + const cx: ContentState = values.editorState.getCurrentContent(); + const content: RawDraftContentState = convertToRaw(cx); + let md = this.parser.createMarkdown( + values.title, + draftjsToMd(content), + values.date + ); + let blob = new Blob([md.trim()], { type: "text/markdown; charset=UTF-8" }); + let url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = `${values.title.replace(/\s+/g, "-").toLowerCase()}.${extension}`; + const click = new MouseEvent("click"); - requestAnimationFrame(() => { - a.dispatchEvent(click); - }); + requestAnimationFrame(() => { + a.dispatchEvent(click); + }); - setTimeout(() => { - URL.revokeObjectURL(url); - }, GC_TIMEOUT); - } - } + setTimeout(() => { + URL.revokeObjectURL(url); + }, GC_TIMEOUT); + } + } } diff --git a/src/data/modules/create.ts b/src/data/modules/create.ts index cf3870429..f3d83f25e 100644 --- a/src/data/modules/create.ts +++ b/src/data/modules/create.ts @@ -5,33 +5,33 @@ import type { IAppState } from "@data/types"; import { __IS_BROWSER__ } from "@shared/constants"; export interface INewEditorValues { - title: string; + title: string; } interface ICreateEntryState { - title: string; - editorState: EditorState; + title: string; + editorState: EditorState; } export class CreateEntryState extends BaseDraft { - #client: DownwriteClient; - #store: IAppState; - constructor(_graphql: DownwriteClient, store: IAppState) { - super(); - this.#client = _graphql; - this.#store = store; - } + #client: DownwriteClient; + #store: IAppState; + constructor(_graphql: DownwriteClient, store: IAppState) { + super(); + this.#client = _graphql; + this.#store = store; + } - async create({ editorState, title }: ICreateEntryState) { - const content = this.parser.fromEditorState(editorState); - try { - return this.#client.createEntry({ content, title }); - } catch (error) { - this.#store.notifications.error(error.message); - } - } + async create({ editorState, title }: ICreateEntryState) { + const content = this.parser.fromEditorState(editorState); + try { + return this.#client.createEntry({ content, title }); + } catch (error) { + this.#store.notifications.error(error.message); + } + } - onDrop(acceptedFiles: File[]) { - return this.importFiles(acceptedFiles); - } + onDrop(acceptedFiles: File[]) { + return this.importFiles(acceptedFiles); + } } diff --git a/src/data/modules/dashboard.ts b/src/data/modules/dashboard.ts index d5bb34f86..c04f1fc23 100644 --- a/src/data/modules/dashboard.ts +++ b/src/data/modules/dashboard.ts @@ -3,39 +3,39 @@ import type { IAppState } from "../types"; import type { IAllPostsQuery } from "../../__generated__/client"; export interface IPartialFeedItem { - id: string; - title: string; + id: string; + title: string; } export class DashboardState { - #client: DownwriteClient; - #store: IAppState; - constructor(_graphql: DownwriteClient, store: IAppState) { - this.#client = _graphql; - this.#store = store; - } + #client: DownwriteClient; + #store: IAppState; + constructor(_graphql: DownwriteClient, store: IAppState) { + this.#client = _graphql; + this.#store = store; + } - getFeed() { - return this.#client.allPosts(); - } + getFeed() { + return this.#client.allPosts(); + } - async remove(id: string) { - try { - const value = this.#client.removeEntry(id); - return value; - } catch (error) { - this.#store.notifications.error(error.message, true); - } - } + async remove(id: string) { + try { + const value = this.#client.removeEntry(id); + return value; + } catch (error) { + this.#store.notifications.error(error.message, true); + } + } - mutateFeedList(data: IAllPostsQuery, selectedId: string): IAllPostsQuery { - const index = data.feed.findIndex(({ id }) => selectedId === id); + mutateFeedList(data: IAllPostsQuery, selectedId: string): IAllPostsQuery { + const index = data.feed.findIndex(({ id }) => selectedId === id); - if (index > -1) { - data.feed.splice(index, 1); - } - return { - ...data - }; - } + if (index > -1) { + data.feed.splice(index, 1); + } + return { + ...data + }; + } } diff --git a/src/data/modules/editor.ts b/src/data/modules/editor.ts index a432c52f4..7b3c858b1 100644 --- a/src/data/modules/editor.ts +++ b/src/data/modules/editor.ts @@ -5,51 +5,51 @@ import type { IEntry } from "../../__generated__/client"; import { BaseDraft } from "./base-draft"; export interface IEdit { - publicStatus: boolean; - title: string; - initialFocus: boolean; - editorState: EditorState | null; + publicStatus: boolean; + title: string; + initialFocus: boolean; + editorState: EditorState | null; } export class UpdateEntryState extends BaseDraft { - #client: DownwriteClient; - #store: IAppState; - constructor(_graphql: DownwriteClient, store: IAppState) { - super(); - this.#client = _graphql; - this.#store = store; - } + #client: DownwriteClient; + #store: IAppState; + constructor(_graphql: DownwriteClient, store: IAppState) { + super(); + this.#client = _graphql; + this.#store = store; + } - async submit(id: string, state: IEdit) { - if (state.editorState !== null) { - const content = this.parser.fromEditorState(state.editorState); - try { - const value = await this.#client.updateEntry({ - id, - content, - title: state.title, - status: state.publicStatus - }); - return value; - } catch (err) { - this.#store.notifications.error(err.message); - } - } - } + async submit(id: string, state: IEdit) { + if (state.editorState !== null) { + const content = this.parser.fromEditorState(state.editorState); + try { + const value = await this.#client.updateEntry({ + id, + content, + title: state.title, + status: state.publicStatus + }); + return value; + } catch (err) { + this.#store.notifications.error(err.message); + } + } + } - load(entry: Pick): IEdit { - const editorState = this.parser.fromMarkdown(entry.content); - return { - title: entry.title, - publicStatus: entry.public, - editorState, - initialFocus: false - }; - } + load(entry: Pick): IEdit { + const editorState = this.parser.fromMarkdown(entry.content); + return { + title: entry.title, + publicStatus: entry.public, + editorState, + initialFocus: false + }; + } - async getEntry(id: string) { - if (id) { - return this.#client.edit(id); - } - } + async getEntry(id: string) { + if (id) { + return this.#client.edit(id); + } + } } diff --git a/src/data/modules/parser.ts b/src/data/modules/parser.ts index 094de1dea..8f865b014 100644 --- a/src/data/modules/parser.ts +++ b/src/data/modules/parser.ts @@ -3,37 +3,37 @@ import { mdToDraftjs, draftjsToMd } from "draftjs-md-converter"; import format from "date-fns/format"; import { - imageLinkDecorators, - prismHighlightDecorator, - MultiDecorator + imageLinkDecorators, + prismHighlightDecorator, + MultiDecorator } from "../../editor"; const decorators = new MultiDecorator([ - imageLinkDecorators, - prismHighlightDecorator + imageLinkDecorators, + prismHighlightDecorator ]); export class DraftParser { - fromMarkdown(content: string): EditorState { - const rawEditorState = mdToDraftjs(content); - return EditorState.createWithContent( - convertFromRaw({ - blocks: [...rawEditorState.blocks], - entityMap: {} - }), - decorators - ); - } + fromMarkdown(content: string): EditorState { + const rawEditorState = mdToDraftjs(content); + return EditorState.createWithContent( + convertFromRaw({ + blocks: [...rawEditorState.blocks], + entityMap: {} + }), + decorators + ); + } - fromEditorState(editorState: EditorState) { - const raw = convertToRaw(editorState.getCurrentContent()); - const content = draftjsToMd(raw); + fromEditorState(editorState: EditorState) { + const raw = convertToRaw(editorState.getCurrentContent()); + const content = draftjsToMd(raw); - return content; - } + return content; + } - createMarkdown(title: string, content: string, date?: Date): string { - return ` + createMarkdown(title: string, content: string, date?: Date): string { + return ` --- title: ${title} ${date && `dateAdded: ${format(new Date(date), "dd MMMM yyyy")}`} @@ -41,5 +41,5 @@ export class DraftParser { ${content} `; - } + } } diff --git a/src/data/store.ts b/src/data/store.ts index 67ebe52d7..d31c1ed8b 100644 --- a/src/data/store.ts +++ b/src/data/store.ts @@ -4,37 +4,37 @@ import { __IS_BROWSER__ } from "@shared/constants"; import type { IAppState, IStoreContructor } from "./types"; export class DownwriteUIState implements IAppState { - settings: GlobalSettings; - auth: Auth; - notifications: GlobalNotifications; - isOffline: boolean = false; - #client: DownwriteClient; - /** - * @param client should be a mock for testing - */ - constructor(client?: any) { - this.#client = client ?? new DownwriteClient(); - this.auth = new Auth(this.#client, this); - this.settings = new GlobalSettings(this.#client, this); - this.notifications = new GlobalNotifications(); + settings: GlobalSettings; + auth: Auth; + notifications: GlobalNotifications; + isOffline: boolean = false; + #client: DownwriteClient; + /** + * @param client should be a mock for testing + */ + constructor(client?: any) { + this.#client = client ?? new DownwriteClient(); + this.auth = new Auth(this.#client, this); + this.settings = new GlobalSettings(this.#client, this); + this.notifications = new GlobalNotifications(); - if (__IS_BROWSER__) { - window.addEventListener("offline", this.handleOfflineChange); - window.addEventListener("online", this.handleOfflineChange); - } - } + if (__IS_BROWSER__) { + window.addEventListener("offline", this.handleOfflineChange); + window.addEventListener("online", this.handleOfflineChange); + } + } - handleOfflineChange() { - if (__IS_BROWSER__) { - this.isOffline = window.navigator.onLine; - } - } + handleOfflineChange() { + if (__IS_BROWSER__) { + this.isOffline = window.navigator.onLine; + } + } - get graphql() { - return this.#client; - } + get graphql() { + return this.#client; + } - createConnectedStore(Cntor: IStoreContructor) { - return new Cntor(this.#client, this); - } + createConnectedStore(Cntor: IStoreContructor) { + return new Cntor(this.#client, this); + } } diff --git a/src/data/types.ts b/src/data/types.ts index 9301f11e8..bf94328b7 100644 --- a/src/data/types.ts +++ b/src/data/types.ts @@ -4,11 +4,11 @@ import { GlobalNotifications } from "./base/notifications"; import { DownwriteClient } from "./client"; export interface IAppState { - settings: GlobalSettings; - auth: Auth; - notifications: GlobalNotifications; + settings: GlobalSettings; + auth: Auth; + notifications: GlobalNotifications; } export interface IStoreContructor { - new (gql: DownwriteClient, store: IAppState): T; + new (gql: DownwriteClient, store: IAppState): T; } diff --git a/src/editor/checklist.tsx b/src/editor/checklist.tsx index 46e27975b..02aa33e95 100644 --- a/src/editor/checklist.tsx +++ b/src/editor/checklist.tsx @@ -1,71 +1,71 @@ import { - EditorBlock, - ContentBlock, - EditorState, - ContentState, - SelectionState + EditorBlock, + ContentBlock, + EditorState, + ContentState, + SelectionState } from "draft-js"; import { Map, Iterable } from "immutable"; function adjustBlockDepthForContentState( - contentState: ContentState, - selectionState: SelectionState, - adjustment: number, - maxDepth: number + contentState: ContentState, + selectionState: SelectionState, + adjustment: number, + maxDepth: number ): ContentState { - const startKey = selectionState.getStartKey(); - const endKey = selectionState.getEndKey(); - let blockMap = contentState.getBlockMap()!; - const blocks = blockMap - .toSeq() - .skipUntil((_, k) => k === startKey) - .takeUntil((_, k) => k === endKey) - .concat([[endKey, blockMap.get(endKey)]]) - .map((block) => { - let depth = block!.getDepth() + adjustment; - depth = Math.max(0, Math.min(depth, maxDepth)); - return block?.set("depth", depth); - }) as Iterable>; - - blockMap = blockMap.merge(blocks as any); - - return contentState.merge({ - blockMap, - selectionBefore: selectionState, - selectionAfter: selectionState - }) as ContentState; + const startKey = selectionState.getStartKey(); + const endKey = selectionState.getEndKey(); + let blockMap = contentState.getBlockMap()!; + const blocks = blockMap + .toSeq() + .skipUntil((_, k) => k === startKey) + .takeUntil((_, k) => k === endKey) + .concat([[endKey, blockMap.get(endKey)]]) + .map((block) => { + let depth = block!.getDepth() + adjustment; + depth = Math.max(0, Math.min(depth, maxDepth)); + return block?.set("depth", depth); + }) as Iterable>; + + blockMap = blockMap.merge(blocks as any); + + return contentState.merge({ + blockMap, + selectionBefore: selectionState, + selectionAfter: selectionState + }) as ContentState; } const adjustBlockDepth = ( - editorState: EditorState, - adjustment: number, - maxDepth: number + editorState: EditorState, + adjustment: number, + maxDepth: number ): EditorState => { - const content = adjustBlockDepthForContentState( - editorState.getCurrentContent(), - editorState.getSelection(), - adjustment, - maxDepth - ); - - return EditorState.push(editorState, content, "adjust-depth"); + const content = adjustBlockDepthForContentState( + editorState.getCurrentContent(), + editorState.getSelection(), + adjustment, + maxDepth + ); + + return EditorState.push(editorState, content, "adjust-depth"); }; const mergeBlockDataByKey = ( - editorState: EditorState, - blockKey: string, - data: { [id: string]: any } + editorState: EditorState, + blockKey: string, + data: { [id: string]: any } ): EditorState => { - const contentState = editorState.getCurrentContent(); - const updatedBlock = contentState.getBlockForKey(blockKey).mergeIn(["data"], data); - const blockMap = contentState - .getBlockMap() - .merge({ [blockKey]: updatedBlock } as any); - return EditorState.push( - editorState, - contentState.merge({ blockMap }) as ContentState, - "change-block-data" - ); + const contentState = editorState.getCurrentContent(); + const updatedBlock = contentState.getBlockForKey(blockKey).mergeIn(["data"], data); + const blockMap = contentState + .getBlockMap() + .merge({ [blockKey]: updatedBlock } as any); + return EditorState.push( + editorState, + contentState.merge({ blockMap }) as ContentState, + "change-block-data" + ); }; export const CHECKABLE_LIST_ITEM = "checkable-list-item"; @@ -73,110 +73,110 @@ export const UNORDERED_LIST_ITEM = "unordered-list-item"; export const ORDERED_LIST_ITEM = "ordered-list-item"; export class CheckableListItemUtils { - static toggleChecked(editorState: EditorState, block: ContentBlock): EditorState { - return mergeBlockDataByKey(editorState, block.getKey(), { - checked: !block.getData().get("checked") - }); - } - - static onTab( - event: React.KeyboardEvent, - editorState: EditorState, - maxDepth: number - ): EditorState { - const selection = editorState.getSelection(); - const key = selection.getAnchorKey(); - if (key !== selection.getFocusKey()) { - return editorState; - } - - const content = editorState.getCurrentContent(); - const block = content.getBlockForKey(key); - const type = block.getType(); - if ( - type !== UNORDERED_LIST_ITEM && - type !== ORDERED_LIST_ITEM && - type !== CHECKABLE_LIST_ITEM - ) { - return editorState; - } - - event.preventDefault(); - - // Only allow indenting one level beyond the block above, and only if - // the block above is a list item as well. - const blockAbove = content.getBlockBefore(key); - if (!blockAbove) { - return editorState; - } - - const typeAbove = blockAbove.getType(); - if ( - typeAbove !== UNORDERED_LIST_ITEM && - typeAbove !== ORDERED_LIST_ITEM && - typeAbove !== CHECKABLE_LIST_ITEM - ) { - return editorState; - } - - const depth = block.getDepth(); - if (!event.shiftKey && depth === maxDepth) { - return editorState; - } - - maxDepth = Math.min(blockAbove.getDepth() + 1, maxDepth); - - return adjustBlockDepth(editorState, event.shiftKey ? -1 : 1, maxDepth); - } + static toggleChecked(editorState: EditorState, block: ContentBlock): EditorState { + return mergeBlockDataByKey(editorState, block.getKey(), { + checked: !block.getData().get("checked") + }); + } + + static onTab( + event: React.KeyboardEvent, + editorState: EditorState, + maxDepth: number + ): EditorState { + const selection = editorState.getSelection(); + const key = selection.getAnchorKey(); + if (key !== selection.getFocusKey()) { + return editorState; + } + + const content = editorState.getCurrentContent(); + const block = content.getBlockForKey(key); + const type = block.getType(); + if ( + type !== UNORDERED_LIST_ITEM && + type !== ORDERED_LIST_ITEM && + type !== CHECKABLE_LIST_ITEM + ) { + return editorState; + } + + event.preventDefault(); + + // Only allow indenting one level beyond the block above, and only if + // the block above is a list item as well. + const blockAbove = content.getBlockBefore(key); + if (!blockAbove) { + return editorState; + } + + const typeAbove = blockAbove.getType(); + if ( + typeAbove !== UNORDERED_LIST_ITEM && + typeAbove !== ORDERED_LIST_ITEM && + typeAbove !== CHECKABLE_LIST_ITEM + ) { + return editorState; + } + + const depth = block.getDepth(); + if (!event.shiftKey && depth === maxDepth) { + return editorState; + } + + maxDepth = Math.min(blockAbove.getDepth() + 1, maxDepth); + + return adjustBlockDepth(editorState, event.shiftKey ? -1 : 1, maxDepth); + } } const WRAPPER =
      ; export const checkboxBlockRenderMap = Map({ - [CHECKABLE_LIST_ITEM]: { - element: "li", - wrapper: WRAPPER - } + [CHECKABLE_LIST_ITEM]: { + element: "li", + wrapper: WRAPPER + } }); export const blockRenderMapForSameWrapperAsUnorderedListItem = - checkboxBlockRenderMap.merge( - Map({ - [UNORDERED_LIST_ITEM]: { - element: "li", - wrapper: WRAPPER - } - }) - ); + checkboxBlockRenderMap.merge( + Map({ + [UNORDERED_LIST_ITEM]: { + element: "li", + wrapper: WRAPPER + } + }) + ); type BlockProps = { - onChangeChecked: () => void; - checked: boolean; + onChangeChecked: () => void; + checked: boolean; }; interface ICheckableListItemProps { - blockProps: BlockProps; - offsetKey: string; + blockProps: BlockProps; + offsetKey: string; } export const CheckableListItem: React.FC = (props) => { - const { - offsetKey, - blockProps: { onChangeChecked, checked } - } = props; - return ( -
      -
      - -
      -
      - -
      -
      - ); + const { + offsetKey, + blockProps: { onChangeChecked, checked } + } = props; + return ( +
      +
      + +
      +
      + +
      +
      + ); }; diff --git a/src/editor/create-editor-props.tsx b/src/editor/create-editor-props.tsx index 491b28ce3..135fac387 100644 --- a/src/editor/create-editor-props.tsx +++ b/src/editor/create-editor-props.tsx @@ -1,233 +1,233 @@ import { - EditorProps, - EditorState, - DefaultDraftBlockRenderMap, - DraftHandleValue + EditorProps, + EditorState, + DefaultDraftBlockRenderMap, + DraftHandleValue } from "draft-js"; import { Map } from "immutable"; import { - changeCurrentBlockType, - handleBlockType, - handleImage, - handleInlineStyle, - handleLink, - handleNewCodeBlock, - leaveList, - insertEmptyBlock, - insertText, - replaceText + changeCurrentBlockType, + handleBlockType, + handleImage, + handleInlineStyle, + handleLink, + handleNewCodeBlock, + leaveList, + insertEmptyBlock, + insertText, + replaceText } from "./modifiers"; import { - CHECKABLE_LIST_ITEM, - CheckableListItemUtils, - checkboxBlockRenderMap, - CheckableListItem + CHECKABLE_LIST_ITEM, + CheckableListItemUtils, + checkboxBlockRenderMap, + CheckableListItem } from "./checklist"; interface IEditorConfig { - insertEmptyBlockOnReturnWithModifierKey: boolean; + insertEmptyBlockOnReturnWithModifierKey: boolean; } function checkCharacterForState(editorState: EditorState, character: string) { - let newEditorState = handleBlockType(editorState, character); - const contentState = editorState.getCurrentContent(); - const selection = editorState.getSelection(); - const key = selection.getStartKey(); - const currentBlock = contentState.getBlockForKey(key); - const type = currentBlock.getType(); - if (editorState === newEditorState) { - newEditorState = handleImage(editorState, character); - } - if (editorState === newEditorState) { - newEditorState = handleLink(editorState, character); - } - if (editorState === newEditorState && type !== "code-block") { - newEditorState = handleInlineStyle(editorState, character); - } - return newEditorState; + let newEditorState = handleBlockType(editorState, character); + const contentState = editorState.getCurrentContent(); + const selection = editorState.getSelection(); + const key = selection.getStartKey(); + const currentBlock = contentState.getBlockForKey(key); + const type = currentBlock.getType(); + if (editorState === newEditorState) { + newEditorState = handleImage(editorState, character); + } + if (editorState === newEditorState) { + newEditorState = handleLink(editorState, character); + } + if (editorState === newEditorState && type !== "code-block") { + newEditorState = handleInlineStyle(editorState, character); + } + return newEditorState; } function checkReturnForState( - editorState: EditorState, - config: IEditorConfig, - ev?: React.KeyboardEvent + editorState: EditorState, + config: IEditorConfig, + ev?: React.KeyboardEvent ) { - let newEditorState = editorState; - const contentState = editorState.getCurrentContent(); - const selection = editorState.getSelection(); - const key = selection.getStartKey(); - const currentBlock = contentState.getBlockForKey(key); - const type = currentBlock.getType(); - const text = currentBlock.getText(); - if (/-list-item$/.test(type) && text === "") { - newEditorState = leaveList(editorState); - } - if ( - newEditorState === editorState && - config.insertEmptyBlockOnReturnWithModifierKey && - ev && - (ev.ctrlKey || - ev.shiftKey || - ev.metaKey || - ev.altKey || - (/^header-/.test(type) && - selection.isCollapsed() && - selection.getEndOffset() === text.length)) - ) { - newEditorState = insertEmptyBlock(editorState); - } - if ( - newEditorState === editorState && - type !== "code-block" && - /^```([\w-]+)?$/.test(text) - ) { - newEditorState = handleNewCodeBlock(editorState); - } - if (newEditorState === editorState && type === "code-block") { - if (/```\s*$/.test(text)) { - newEditorState = changeCurrentBlockType( - newEditorState, - type, - text.replace(/\n```\s*$/, "") - ); - newEditorState = insertEmptyBlock(newEditorState); - } else { - newEditorState = insertText(editorState, "\n"); - } - } - if (editorState === newEditorState) { - newEditorState = handleInlineStyle(editorState, "\n"); - } - return newEditorState; + let newEditorState = editorState; + const contentState = editorState.getCurrentContent(); + const selection = editorState.getSelection(); + const key = selection.getStartKey(); + const currentBlock = contentState.getBlockForKey(key); + const type = currentBlock.getType(); + const text = currentBlock.getText(); + if (/-list-item$/.test(type) && text === "") { + newEditorState = leaveList(editorState); + } + if ( + newEditorState === editorState && + config.insertEmptyBlockOnReturnWithModifierKey && + ev && + (ev.ctrlKey || + ev.shiftKey || + ev.metaKey || + ev.altKey || + (/^header-/.test(type) && + selection.isCollapsed() && + selection.getEndOffset() === text.length)) + ) { + newEditorState = insertEmptyBlock(editorState); + } + if ( + newEditorState === editorState && + type !== "code-block" && + /^```([\w-]+)?$/.test(text) + ) { + newEditorState = handleNewCodeBlock(editorState); + } + if (newEditorState === editorState && type === "code-block") { + if (/```\s*$/.test(text)) { + newEditorState = changeCurrentBlockType( + newEditorState, + type, + text.replace(/\n```\s*$/, "") + ); + newEditorState = insertEmptyBlock(newEditorState); + } else { + newEditorState = insertText(editorState, "\n"); + } + } + if (editorState === newEditorState) { + newEditorState = handleInlineStyle(editorState, "\n"); + } + return newEditorState; } export type EditorStateGetter = () => EditorState; export interface IPropCreation { - getEditorState: EditorStateGetter; - setEditorState(state: EditorState): void; + getEditorState: EditorStateGetter; + setEditorState(state: EditorState): void; } const extendedBlocks = Map({ - "code-block": { - element: "code", - wrapper:
      -  }
      +	"code-block": {
      +		element: "code",
      +		wrapper: 
      +	}
       }).merge(checkboxBlockRenderMap);
       
       export type EditorPropKeys =
      -  | "blockRenderMap"
      -  | "blockStyleFn"
      -  | "blockRendererFn"
      -  | "handleReturn"
      -  | "handleBeforeInput"
      -  | "handlePastedText";
      +	| "blockRenderMap"
      +	| "blockStyleFn"
      +	| "blockRendererFn"
      +	| "handleReturn"
      +	| "handleBeforeInput"
      +	| "handlePastedText";
       
       export type CreatedEditorProps = Pick;
       
       export const createEditorProps = (
      -  props: IPropCreation,
      -  config: IEditorConfig = { insertEmptyBlockOnReturnWithModifierKey: true }
      +	props: IPropCreation,
      +	config: IEditorConfig = { insertEmptyBlockOnReturnWithModifierKey: true }
       ): CreatedEditorProps => ({
      -  blockRenderMap: DefaultDraftBlockRenderMap.merge(extendedBlocks),
      -  blockStyleFn(block) {
      -    switch (block.getType()) {
      -      case "paragraph":
      -        return "text-md";
      -      case "header-one":
      -        return "text-3xl font-bold mb-6";
      -      case "header-two":
      -        return "text-2xl font-bold mb-4";
      -      case "header-three":
      -        return "text-xl font-bold mb-4";
      -      case "blockquote":
      -        return "border-l-4 text-lg bg-blue-100 border-blue-400 p-4 italic font-serif dark:text-gray-800";
      -      case CHECKABLE_LIST_ITEM:
      -        return CHECKABLE_LIST_ITEM;
      -      default:
      -        break;
      -    }
      -    return "";
      -  },
      -  blockRendererFn(block) {
      -    switch (block.getType()) {
      -      case CHECKABLE_LIST_ITEM: {
      -        return {
      -          component: CheckableListItem,
      -          props: {
      -            onChangeChecked: () =>
      -              props.setEditorState(
      -                CheckableListItemUtils.toggleChecked(props.getEditorState(), block)
      -              ),
      -            checked: !!block.getData().get("checked")
      -          }
      -        };
      -      }
      -      default:
      -        return null;
      -    }
      -  },
      -  handleReturn(ev: React.KeyboardEvent, editorState: EditorState): DraftHandleValue {
      -    const newEditorState = checkReturnForState(editorState, config, ev);
      -    if (editorState !== newEditorState) {
      -      props.setEditorState(newEditorState);
      -      return "handled";
      -    }
      -    return "not-handled";
      -  },
      -  handleBeforeInput(character: string, editorState: EditorState): DraftHandleValue {
      -    if (character.match(/[A-z0-9_*~`]/)) {
      -      return "not-handled";
      -    }
      -    const newEditorState = checkCharacterForState(editorState, character);
      -    if (editorState !== newEditorState) {
      -      props.setEditorState(newEditorState);
      -      return "handled";
      -    }
      -    return "not-handled";
      -  },
      -  handlePastedText(
      -    text: string,
      -    html: string,
      -    editorState: EditorState
      -  ): DraftHandleValue {
      -    if (html) {
      -      return "not-handled";
      -    }
      +	blockRenderMap: DefaultDraftBlockRenderMap.merge(extendedBlocks),
      +	blockStyleFn(block) {
      +		switch (block.getType()) {
      +			case "paragraph":
      +				return "text-md";
      +			case "header-one":
      +				return "text-3xl font-bold mb-6";
      +			case "header-two":
      +				return "text-2xl font-bold mb-4";
      +			case "header-three":
      +				return "text-xl font-bold mb-4";
      +			case "blockquote":
      +				return "border-l-4 text-lg bg-blue-100 border-blue-400 p-4 italic font-serif dark:text-gray-800";
      +			case CHECKABLE_LIST_ITEM:
      +				return CHECKABLE_LIST_ITEM;
      +			default:
      +				break;
      +		}
      +		return "";
      +	},
      +	blockRendererFn(block) {
      +		switch (block.getType()) {
      +			case CHECKABLE_LIST_ITEM: {
      +				return {
      +					component: CheckableListItem,
      +					props: {
      +						onChangeChecked: () =>
      +							props.setEditorState(
      +								CheckableListItemUtils.toggleChecked(props.getEditorState(), block)
      +							),
      +						checked: !!block.getData().get("checked")
      +					}
      +				};
      +			}
      +			default:
      +				return null;
      +		}
      +	},
      +	handleReturn(ev: React.KeyboardEvent, editorState: EditorState): DraftHandleValue {
      +		const newEditorState = checkReturnForState(editorState, config, ev);
      +		if (editorState !== newEditorState) {
      +			props.setEditorState(newEditorState);
      +			return "handled";
      +		}
      +		return "not-handled";
      +	},
      +	handleBeforeInput(character: string, editorState: EditorState): DraftHandleValue {
      +		if (character.match(/[A-z0-9_*~`]/)) {
      +			return "not-handled";
      +		}
      +		const newEditorState = checkCharacterForState(editorState, character);
      +		if (editorState !== newEditorState) {
      +			props.setEditorState(newEditorState);
      +			return "handled";
      +		}
      +		return "not-handled";
      +	},
      +	handlePastedText(
      +		text: string,
      +		html: string,
      +		editorState: EditorState
      +	): DraftHandleValue {
      +		if (html) {
      +			return "not-handled";
      +		}
       
      -    if (!text) {
      -      return "not-handled";
      -    }
      +		if (!text) {
      +			return "not-handled";
      +		}
       
      -    let newEditorState = editorState;
      -    let buffer = [];
      -    for (let i = 0; i < text.length; i += 1) {
      -      // eslint-disable-line no-plusplus
      -      if (text[i].match(/[^A-z0-9_*~`]/)) {
      -        newEditorState = replaceText(newEditorState, buffer.join("") + text[i]);
      -        newEditorState = checkCharacterForState(newEditorState, text[i]);
      -        buffer = [];
      -      } else if (text[i].charCodeAt(0) === 10) {
      -        newEditorState = replaceText(newEditorState, buffer.join(""));
      -        const tmpEditorState = checkReturnForState(newEditorState, config);
      -        if (newEditorState === tmpEditorState) {
      -          newEditorState = insertEmptyBlock(tmpEditorState);
      -        } else {
      -          newEditorState = tmpEditorState;
      -        }
      -        buffer = [];
      -      } else if (i === text.length - 1) {
      -        newEditorState = replaceText(newEditorState, buffer.join("") + text[i]);
      -        buffer = [];
      -      } else {
      -        buffer.push(text[i]);
      -      }
      -    }
      +		let newEditorState = editorState;
      +		let buffer = [];
      +		for (let i = 0; i < text.length; i += 1) {
      +			// eslint-disable-line no-plusplus
      +			if (text[i].match(/[^A-z0-9_*~`]/)) {
      +				newEditorState = replaceText(newEditorState, buffer.join("") + text[i]);
      +				newEditorState = checkCharacterForState(newEditorState, text[i]);
      +				buffer = [];
      +			} else if (text[i].charCodeAt(0) === 10) {
      +				newEditorState = replaceText(newEditorState, buffer.join(""));
      +				const tmpEditorState = checkReturnForState(newEditorState, config);
      +				if (newEditorState === tmpEditorState) {
      +					newEditorState = insertEmptyBlock(tmpEditorState);
      +				} else {
      +					newEditorState = tmpEditorState;
      +				}
      +				buffer = [];
      +			} else if (i === text.length - 1) {
      +				newEditorState = replaceText(newEditorState, buffer.join("") + text[i]);
      +				buffer = [];
      +			} else {
      +				buffer.push(text[i]);
      +			}
      +		}
       
      -    if (editorState !== newEditorState) {
      -      props.setEditorState(newEditorState);
      -      return "handled";
      -    }
      -    return "not-handled";
      -  }
      +		if (editorState !== newEditorState) {
      +			props.setEditorState(newEditorState);
      +			return "handled";
      +		}
      +		return "not-handled";
      +	}
       });
      diff --git a/src/editor/decorators.tsx b/src/editor/decorators.tsx
      index 3a6be0737..4ccd13c62 100644
      --- a/src/editor/decorators.tsx
      +++ b/src/editor/decorators.tsx
      @@ -1,76 +1,76 @@
       import {
      -  ContentBlock,
      -  ContentState,
      -  CompositeDecorator,
      -  DraftDecorator
      +	ContentBlock,
      +	ContentState,
      +	CompositeDecorator,
      +	DraftDecorator
       } from "draft-js";
       import { prismHighlightDecorator } from "./prism";
       
       export const createLinkStrategy = () => {
      -  const findLinkEntities = (
      -    block: ContentBlock,
      -    callback: (start: number, end: number) => void,
      -    contentState: ContentState
      -  ) => {
      -    block.findEntityRanges((character) => {
      -      const entityKey = character.getEntity();
      -      return (
      -        entityKey !== null && contentState.getEntity(entityKey).getType() === "LINK"
      -      );
      -    }, callback);
      -  };
      -  return findLinkEntities;
      +	const findLinkEntities = (
      +		block: ContentBlock,
      +		callback: (start: number, end: number) => void,
      +		contentState: ContentState
      +	) => {
      +		block.findEntityRanges((character) => {
      +			const entityKey = character.getEntity();
      +			return (
      +				entityKey !== null && contentState.getEntity(entityKey).getType() === "LINK"
      +			);
      +		}, callback);
      +	};
      +	return findLinkEntities;
       };
       
       export const createImageStrategy = () => {
      -  const findImageEntities = (
      -    block: ContentBlock,
      -    callback: (start: number, end: number) => void,
      -    contentState: ContentState
      -  ) => {
      -    block.findEntityRanges((character) => {
      -      const entityKey = character.getEntity();
      -      return (
      -        entityKey !== null && contentState.getEntity(entityKey).getType() === "IMG"
      -      );
      -    }, callback);
      -  };
      -  return findImageEntities;
      +	const findImageEntities = (
      +		block: ContentBlock,
      +		callback: (start: number, end: number) => void,
      +		contentState: ContentState
      +	) => {
      +		block.findEntityRanges((character) => {
      +			const entityKey = character.getEntity();
      +			return (
      +				entityKey !== null && contentState.getEntity(entityKey).getType() === "IMG"
      +			);
      +		}, callback);
      +	};
      +	return findImageEntities;
       };
       
       interface IDecoratorProps {
      -  entityKey: string;
      -  contentState: ContentState;
      +	entityKey: string;
      +	contentState: ContentState;
       }
       
       const Link: React.FC = (props) => {
      -  const { contentState, children, entityKey } = props;
      -  const { href, title } = contentState.getEntity(entityKey).getData();
      -  return (
      -    
      -      {children}
      -    
      -  );
      +	const { contentState, children, entityKey } = props;
      +	const { href, title } = contentState.getEntity(entityKey).getData();
      +	return (
      +		
      +			{children}
      +		
      +	);
       };
       
       const Image: React.FC = ({ entityKey, children, contentState }) => {
      -  const { src, alt, title } = contentState.getEntity(entityKey).getData();
      -  return (
      -    
      -      {children}
      -      {alt}
      -    
      -  );
      +	const { src, alt, title } = contentState.getEntity(entityKey).getData();
      +	return (
      +		
      +			{children}
      +			{alt}
      +		
      +	);
       };
       
       const LINK: DraftDecorator = {
      -  strategy: createLinkStrategy(),
      -  component: Link
      +	strategy: createLinkStrategy(),
      +	component: Link
       };
       
       const IMAGE: DraftDecorator = {
      -  strategy: createImageStrategy(),
      -  component: Image
      +	strategy: createImageStrategy(),
      +	component: Image
       };
       
       export const imageLinkDecorators = new CompositeDecorator([LINK, IMAGE]);
      diff --git a/src/editor/modifiers.tsx b/src/editor/modifiers.tsx
      index 365552da5..7dc2e80dd 100644
      --- a/src/editor/modifiers.tsx
      +++ b/src/editor/modifiers.tsx
      @@ -1,398 +1,400 @@
       import {
      -  genKey,
      -  RichUtils,
      -  EditorState,
      -  Modifier,
      -  ContentState,
      -  BlockMap,
      -  SelectionState,
      -  ContentBlock,
      -  DraftInlineStyle,
      -  DraftBlockType,
      -  EditorChangeType
      +	genKey,
      +	RichUtils,
      +	EditorState,
      +	Modifier,
      +	ContentState,
      +	BlockMap,
      +	SelectionState,
      +	ContentBlock,
      +	DraftInlineStyle,
      +	DraftBlockType,
      +	EditorChangeType
       } from "draft-js";
       import { List, Map } from "immutable";
       import { CHECKABLE_LIST_ITEM } from "./checklist";
       
       export const leaveList = (editorState: EditorState) => {
      -  const contentState = editorState.getCurrentContent();
      -  const selection = editorState.getSelection();
      -  const key = selection.getStartKey();
      -  const currentBlock = contentState.getBlockForKey(key);
      -  const type = currentBlock.getType();
      -  return RichUtils.toggleBlockType(editorState, type);
      +	const contentState = editorState.getCurrentContent();
      +	const selection = editorState.getSelection();
      +	const key = selection.getStartKey();
      +	const currentBlock = contentState.getBlockForKey(key);
      +	const type = currentBlock.getType();
      +	return RichUtils.toggleBlockType(editorState, type);
       };
       
       export const insertText = (editorState: EditorState, text: string) => {
      -  const selection = editorState.getSelection();
      -  const content = editorState.getCurrentContent();
      -  const newContentState = Modifier.insertText(
      -    content,
      -    selection,
      -    text,
      -    editorState.getCurrentInlineStyle()
      -  );
      -  return EditorState.push(editorState, newContentState, "insert-fragment");
      +	const selection = editorState.getSelection();
      +	const content = editorState.getCurrentContent();
      +	const newContentState = Modifier.insertText(
      +		content,
      +		selection,
      +		text,
      +		editorState.getCurrentInlineStyle()
      +	);
      +	return EditorState.push(editorState, newContentState, "insert-fragment");
       };
       
       export const changeCurrentBlockType = (
      -  editorState: EditorState,
      -  type: DraftBlockType,
      -  text: string,
      -  blockMetadata: any = {}
      +	editorState: EditorState,
      +	type: DraftBlockType,
      +	text: string,
      +	blockMetadata: any = {}
       ) => {
      -  const t = (type as unknown) as Iterable<[string, any]>;
      -  const currentContent: ContentState = editorState.getCurrentContent();
      -  const selection: SelectionState = editorState.getSelection();
      -  const key: string = selection.getStartKey();
      -  const blockMap: BlockMap = currentContent.getBlockMap();
      -  const block: ContentBlock | undefined = blockMap.get(key);
      -  const data = block?.getData().merge(blockMetadata);
      -  const newBlock: ContentBlock = block?.merge({
      -    type: t,
      -    data,
      -    text: text || ""
      -  }) as any;
      -  const newSelection = selection.merge({
      -    anchorOffset: 0,
      -    focusOffset: 0
      -  });
      -  const newContentState = currentContent.merge({
      -    blockMap: blockMap.set(key, newBlock),
      -    selectionAfter: newSelection
      -  }) as ContentState;
      -  return EditorState.push(editorState, newContentState, "change-block-type");
      +	const t = type as unknown as Iterable<[string, any]>;
      +	const currentContent: ContentState = editorState.getCurrentContent();
      +	const selection: SelectionState = editorState.getSelection();
      +	const key: string = selection.getStartKey();
      +	const blockMap: BlockMap = currentContent.getBlockMap();
      +	const block: ContentBlock | undefined = blockMap.get(key);
      +	const data = block?.getData().merge(blockMetadata);
      +	const newBlock: ContentBlock = block?.merge({
      +		type: t,
      +		data,
      +		text: text || ""
      +	}) as any;
      +	const newSelection = selection.merge({
      +		anchorOffset: 0,
      +		focusOffset: 0
      +	});
      +	const newContentState = currentContent.merge({
      +		blockMap: blockMap.set(key, newBlock),
      +		selectionAfter: newSelection
      +	}) as ContentState;
      +	return EditorState.push(editorState, newContentState, "change-block-type");
       };
       
       export const changeCurrentInlineStyle = (
      -  editorState: EditorState,
      -  matchArr: RegExpExecArray,
      -  style: string | DraftInlineStyle
      +	editorState: EditorState,
      +	matchArr: RegExpExecArray,
      +	style: string | DraftInlineStyle
       ) => {
      -  const currentContent = editorState.getCurrentContent();
      -  const selection = editorState.getSelection();
      -  const key = selection.getStartKey();
      -  const { index } = matchArr;
      +	const currentContent = editorState.getCurrentContent();
      +	const selection = editorState.getSelection();
      +	const key = selection.getStartKey();
      +	const { index } = matchArr;
       
      -  const blockMap = currentContent.getBlockMap();
      -  const block = blockMap.get(key);
      -  const currentInlineStyle = block?.getInlineStyleAt(index).merge();
      -  const newStyle: DraftInlineStyle = currentInlineStyle.merge([style as any]);
      -  const focusOffset = index + matchArr[0].length;
      -  const wordSelection = SelectionState.createEmpty(key).merge({
      -    anchorOffset: index + matchArr[0].indexOf(matchArr[1]),
      -    focusOffset
      -  });
      -  let newContentState = Modifier.replaceText(
      -    currentContent,
      -    wordSelection,
      -    matchArr[2],
      -    newStyle
      -  );
      -  newContentState = Modifier.insertText(
      -    newContentState,
      -    newContentState.getSelectionAfter(),
      -    matchArr[4]
      -  );
      -  const newEditorState = EditorState.push(
      -    editorState,
      -    newContentState,
      -    "change-inline-style"
      -  );
      -  return EditorState.forceSelection(
      -    newEditorState,
      -    newContentState.getSelectionAfter()
      -  );
      +	const blockMap = currentContent.getBlockMap();
      +	const block = blockMap.get(key);
      +	const currentInlineStyle = block?.getInlineStyleAt(index).merge();
      +	const newStyle: DraftInlineStyle = currentInlineStyle.merge([style as any]);
      +	const focusOffset = index + matchArr[0].length;
      +	const wordSelection = SelectionState.createEmpty(key).merge({
      +		anchorOffset: index + matchArr[0].indexOf(matchArr[1]),
      +		focusOffset
      +	});
      +	let newContentState = Modifier.replaceText(
      +		currentContent,
      +		wordSelection,
      +		matchArr[2],
      +		newStyle
      +	);
      +	newContentState = Modifier.insertText(
      +		newContentState,
      +		newContentState.getSelectionAfter(),
      +		matchArr[4]
      +	);
      +	const newEditorState = EditorState.push(
      +		editorState,
      +		newContentState,
      +		"change-inline-style"
      +	);
      +	return EditorState.forceSelection(
      +		newEditorState,
      +		newContentState.getSelectionAfter()
      +	);
       };
       
       export function addText(editorState: EditorState, bufferText: string) {
      -  const contentState = Modifier.insertText(
      -    editorState.getCurrentContent(),
      -    editorState.getSelection(),
      -    bufferText
      -  );
      -  return EditorState.push(editorState, contentState, "insert-characters");
      +	const contentState = Modifier.insertText(
      +		editorState.getCurrentContent(),
      +		editorState.getSelection(),
      +		bufferText
      +	);
      +	return EditorState.push(editorState, contentState, "insert-characters");
       }
       
       export function replaceText(editorState: EditorState, bufferText: string) {
      -  const contentState = Modifier.replaceText(
      -    editorState.getCurrentContent(),
      -    editorState.getSelection(),
      -    bufferText
      -  );
      -  return EditorState.push(editorState, contentState, "insert-characters");
      +	const contentState = Modifier.replaceText(
      +		editorState.getCurrentContent(),
      +		editorState.getSelection(),
      +		bufferText
      +	);
      +	return EditorState.push(editorState, contentState, "insert-characters");
       }
       
       export const sharps = (len: number) => {
      -  let ret = "";
      -  while (ret.length < len) {
      -    ret += "#";
      -  }
      -  return ret;
      +	let ret = "";
      +	while (ret.length < len) {
      +		ret += "#";
      +	}
      +	return ret;
       };
       
       const blockTypes: DraftBlockType[] = [
      -  "null",
      -  "header-one",
      -  "header-two",
      -  "header-three",
      -  "header-four",
      -  "header-five",
      -  "header-six",
      -  "blockquote"
      +	"null",
      +	"header-one",
      +	"header-two",
      +	"header-three",
      +	"header-four",
      +	"header-five",
      +	"header-six",
      +	"blockquote"
       ];
       
       export const handleBlockType = (editorState: EditorState, character: string) => {
      -  const currentSelection = editorState.getSelection();
      -  const key = currentSelection.getStartKey();
      -  const text = editorState.getCurrentContent().getBlockForKey(key).getText();
      -  const position = currentSelection.getAnchorOffset();
      -  const line = [text.slice(0, position), character, text.slice(position)].join("");
      -  const blockType = RichUtils.getCurrentBlockType(editorState);
      -  for (let i = 1; i <= 6; i += 1) {
      -    if (line.indexOf(`${sharps(i)} `) === 0 && blockType !== "code-block") {
      -      return changeCurrentBlockType(
      -        editorState,
      -        blockTypes[i],
      -        line.replace(/^#+\s/, "")
      -      );
      -    }
      -  }
      -  let matchArr = line.match(/^[*-] (.*)$/);
      -  if (matchArr) {
      -    return changeCurrentBlockType(editorState, "unordered-list-item", matchArr[1]);
      -  }
      -  matchArr = line.match(/^[\d]\. (.*)$/);
      -  if (matchArr) {
      -    return changeCurrentBlockType(editorState, "ordered-list-item", matchArr[1]);
      -  }
      -  matchArr = line.match(/^> (.*)$/);
      -  if (matchArr) {
      -    return changeCurrentBlockType(editorState, "blockquote", matchArr[1]);
      -  }
      -  matchArr = line.match(/^\[([x ])] (.*)$/i);
      -  if (matchArr && blockType === "unordered-list-item") {
      -    return changeCurrentBlockType(editorState, CHECKABLE_LIST_ITEM, matchArr[2], {
      -      checked: matchArr[1] !== " "
      -    });
      -  }
      -  return editorState;
      +	const currentSelection = editorState.getSelection();
      +	const key = currentSelection.getStartKey();
      +	const text = editorState.getCurrentContent().getBlockForKey(key).getText();
      +	const position = currentSelection.getAnchorOffset();
      +	const line = [text.slice(0, position), character, text.slice(position)].join("");
      +	const blockType = RichUtils.getCurrentBlockType(editorState);
      +	for (let i = 1; i <= 6; i += 1) {
      +		if (line.indexOf(`${sharps(i)} `) === 0 && blockType !== "code-block") {
      +			return changeCurrentBlockType(
      +				editorState,
      +				blockTypes[i],
      +				line.replace(/^#+\s/, "")
      +			);
      +		}
      +	}
      +	let matchArr = line.match(/^[*-] (.*)$/);
      +	if (matchArr) {
      +		return changeCurrentBlockType(editorState, "unordered-list-item", matchArr[1]);
      +	}
      +	matchArr = line.match(/^[\d]\. (.*)$/);
      +	if (matchArr) {
      +		return changeCurrentBlockType(editorState, "ordered-list-item", matchArr[1]);
      +	}
      +	matchArr = line.match(/^> (.*)$/);
      +	if (matchArr) {
      +		return changeCurrentBlockType(editorState, "blockquote", matchArr[1]);
      +	}
      +	matchArr = line.match(/^\[([x ])] (.*)$/i);
      +	if (matchArr && blockType === "unordered-list-item") {
      +		return changeCurrentBlockType(editorState, CHECKABLE_LIST_ITEM, matchArr[2], {
      +			checked: matchArr[1] !== " "
      +		});
      +	}
      +	return editorState;
       };
       
       export const handleImage = (editorState: EditorState, character: string) => {
      -  const re = /!\[([^\]]*)]\(([^)"]+)(?: "([^"]+)")?\)/g;
      -  const key = editorState.getSelection().getStartKey();
      -  const text = editorState.getCurrentContent().getBlockForKey(key).getText();
      -  const line = `${text}${character}`;
      -  let newEditorState = editorState;
      -  let matchArr;
      -  do {
      -    matchArr = re.exec(line);
      -    if (matchArr) {
      -      newEditorState = insertImage(newEditorState, matchArr);
      -    }
      -  } while (matchArr);
      -  return newEditorState;
      +	const re = /!\[([^\]]*)]\(([^)"]+)(?: "([^"]+)")?\)/g;
      +	const key = editorState.getSelection().getStartKey();
      +	const text = editorState.getCurrentContent().getBlockForKey(key).getText();
      +	const line = `${text}${character}`;
      +	let newEditorState = editorState;
      +	let matchArr;
      +	do {
      +		matchArr = re.exec(line);
      +		if (matchArr) {
      +			newEditorState = insertImage(newEditorState, matchArr);
      +		}
      +	} while (matchArr);
      +	return newEditorState;
       };
       
       type Matchers = {
      -  BOLD: RegExp;
      -  ITALIC: RegExp;
      -  CODE: RegExp;
      -  STRIKETHROUGH: RegExp;
      +	BOLD: RegExp;
      +	ITALIC: RegExp;
      +	CODE: RegExp;
      +	STRIKETHROUGH: RegExp;
       };
       
       const inlineMatchers: Matchers = {
      -  BOLD: /(?:^|\s|\n|[^A-z0-9_*~`])(\*{2}|_{2})((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g,
      -  ITALIC: /(?:^|\s|\n|[^A-z0-9_*~`])(\*{1}|_{1})((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g,
      -  CODE: /(?:^|\s|\n|[^A-z0-9_*~`])(`)((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g,
      -  STRIKETHROUGH: /(?:^|\s|\n|[^A-z0-9_*~`])(~{2})((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g
      +	BOLD: /(?:^|\s|\n|[^A-z0-9_*~`])(\*{2}|_{2})((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g,
      +	ITALIC:
      +		/(?:^|\s|\n|[^A-z0-9_*~`])(\*{1}|_{1})((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g,
      +	CODE: /(?:^|\s|\n|[^A-z0-9_*~`])(`)((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g,
      +	STRIKETHROUGH:
      +		/(?:^|\s|\n|[^A-z0-9_*~`])(~{2})((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g
       };
       
       export const handleInlineStyle = (editorState: EditorState, character: string) => {
      -  const key = editorState.getSelection().getStartKey();
      -  const text = editorState.getCurrentContent().getBlockForKey(key).getText();
      -  const line = `${text}${character}`;
      -  let newEditorState = editorState;
      -  Object.keys(inlineMatchers).some((k) => {
      -    const re = inlineMatchers[k as keyof Matchers];
      -    let matchArr;
      -    do {
      -      matchArr = re.exec(line);
      -      if (matchArr) {
      -        newEditorState = changeCurrentInlineStyle(newEditorState, matchArr, k);
      -      }
      -    } while (matchArr);
      -    return newEditorState !== editorState;
      -  });
      -  return newEditorState;
      +	const key = editorState.getSelection().getStartKey();
      +	const text = editorState.getCurrentContent().getBlockForKey(key).getText();
      +	const line = `${text}${character}`;
      +	let newEditorState = editorState;
      +	Object.keys(inlineMatchers).some((k) => {
      +		const re = inlineMatchers[k as keyof Matchers];
      +		let matchArr;
      +		do {
      +			matchArr = re.exec(line);
      +			if (matchArr) {
      +				newEditorState = changeCurrentInlineStyle(newEditorState, matchArr, k);
      +			}
      +		} while (matchArr);
      +		return newEditorState !== editorState;
      +	});
      +	return newEditorState;
       };
       
       export const insertEmptyBlock = (
      -  editorState: EditorState,
      -  blockType = "unstyled",
      -  data = {}
      +	editorState: EditorState,
      +	blockType = "unstyled",
      +	data = {}
       ) => {
      -  const contentState = editorState.getCurrentContent();
      -  const selection = editorState.getSelection();
      -  const key = selection.getStartKey();
      -  const currentBlock = contentState.getBlockForKey(key);
      -  const emptyBlockKey = genKey();
      -  const emptyBlock = new ContentBlock({
      -    characterList: List(),
      -    depth: 0,
      -    key: emptyBlockKey,
      -    text: "",
      -    type: blockType,
      -    data: Map().merge(data)
      -  });
      -  const blockMap = contentState.getBlockMap();
      -  const blocksBefore = blockMap.toSeq().takeUntil((value) => value === currentBlock);
      -  const blocksAfter = blockMap
      -    .toSeq()
      -    .skipUntil((value) => value === currentBlock)
      -    .rest();
      -  const augmentedBlocks = [
      -    [currentBlock.getKey(), currentBlock],
      -    [emptyBlockKey, emptyBlock]
      -  ];
      -  const newBlocks = blocksBefore.concat(augmentedBlocks, blocksAfter).toOrderedMap();
      -  const focusKey = emptyBlockKey;
      -  const newContentState: ContentState = contentState.merge({
      -    blockMap: newBlocks,
      -    selectionBefore: selection,
      -    selectionAfter: selection.merge({
      -      anchorKey: focusKey,
      -      anchorOffset: 0,
      -      focusKey,
      -      focusOffset: 0,
      -      isBackward: false
      -    })
      -  }) as ContentState;
      -  return EditorState.push(editorState, newContentState, "split-block");
      +	const contentState = editorState.getCurrentContent();
      +	const selection = editorState.getSelection();
      +	const key = selection.getStartKey();
      +	const currentBlock = contentState.getBlockForKey(key);
      +	const emptyBlockKey = genKey();
      +	const emptyBlock = new ContentBlock({
      +		characterList: List(),
      +		depth: 0,
      +		key: emptyBlockKey,
      +		text: "",
      +		type: blockType,
      +		data: Map().merge(data)
      +	});
      +	const blockMap = contentState.getBlockMap();
      +	const blocksBefore = blockMap.toSeq().takeUntil((value) => value === currentBlock);
      +	const blocksAfter = blockMap
      +		.toSeq()
      +		.skipUntil((value) => value === currentBlock)
      +		.rest();
      +	const augmentedBlocks = [
      +		[currentBlock.getKey(), currentBlock],
      +		[emptyBlockKey, emptyBlock]
      +	];
      +	const newBlocks = blocksBefore.concat(augmentedBlocks, blocksAfter).toOrderedMap();
      +	const focusKey = emptyBlockKey;
      +	const newContentState: ContentState = contentState.merge({
      +		blockMap: newBlocks,
      +		selectionBefore: selection,
      +		selectionAfter: selection.merge({
      +			anchorKey: focusKey,
      +			anchorOffset: 0,
      +			focusKey,
      +			focusOffset: 0,
      +			isBackward: false
      +		})
      +	}) as ContentState;
      +	return EditorState.push(editorState, newContentState, "split-block");
       };
       
       export const insertImage = (editorState: EditorState, matchArr: any) => {
      -  const currentContent = editorState.getCurrentContent();
      -  const selection = editorState.getSelection();
      -  const key = selection.getStartKey();
      -  const [matchText, alt, src, title] = matchArr;
      -  const { index } = matchArr;
      -  const focusOffset = index + matchText.length;
      -  const wordSelection = SelectionState.createEmpty(key).merge({
      -    anchorOffset: index,
      -    focusOffset
      -  });
      -  const nextContent = currentContent.createEntity("IMG", "IMMUTABLE", {
      -    alt,
      -    src,
      -    title
      -  });
      -  const entityKey = nextContent.getLastCreatedEntityKey();
      -  let newContentState = Modifier.replaceText(
      -    nextContent,
      -    wordSelection,
      -    "\u200B",
      -    undefined,
      -    entityKey
      -  );
      -  newContentState = Modifier.insertText(
      -    newContentState,
      -    newContentState.getSelectionAfter(),
      -    " "
      -  );
      -  const newWordSelection = wordSelection.merge({
      -    focusOffset: index + 1
      -  });
      -  let newEditorState = EditorState.push(
      -    editorState,
      -    newContentState,
      -    "insert-image" as EditorChangeType
      -  );
      -  newEditorState = RichUtils.toggleLink(newEditorState, newWordSelection, entityKey);
      -  return EditorState.forceSelection(
      -    newEditorState,
      -    newContentState.getSelectionAfter()
      -  );
      +	const currentContent = editorState.getCurrentContent();
      +	const selection = editorState.getSelection();
      +	const key = selection.getStartKey();
      +	const [matchText, alt, src, title] = matchArr;
      +	const { index } = matchArr;
      +	const focusOffset = index + matchText.length;
      +	const wordSelection = SelectionState.createEmpty(key).merge({
      +		anchorOffset: index,
      +		focusOffset
      +	});
      +	const nextContent = currentContent.createEntity("IMG", "IMMUTABLE", {
      +		alt,
      +		src,
      +		title
      +	});
      +	const entityKey = nextContent.getLastCreatedEntityKey();
      +	let newContentState = Modifier.replaceText(
      +		nextContent,
      +		wordSelection,
      +		"\u200B",
      +		undefined,
      +		entityKey
      +	);
      +	newContentState = Modifier.insertText(
      +		newContentState,
      +		newContentState.getSelectionAfter(),
      +		" "
      +	);
      +	const newWordSelection = wordSelection.merge({
      +		focusOffset: index + 1
      +	});
      +	let newEditorState = EditorState.push(
      +		editorState,
      +		newContentState,
      +		"insert-image" as EditorChangeType
      +	);
      +	newEditorState = RichUtils.toggleLink(newEditorState, newWordSelection, entityKey);
      +	return EditorState.forceSelection(
      +		newEditorState,
      +		newContentState.getSelectionAfter()
      +	);
       };
       
       export const insertLink = (editorState: EditorState, matchArr: any) => {
      -  const currentContent = editorState.getCurrentContent();
      -  const selection = editorState.getSelection();
      -  const key = selection.getStartKey();
      -  const [matchText, text, href, title] = matchArr;
      -  const { index } = matchArr;
      -  const focusOffset = index + matchText.length;
      -  const wordSelection = SelectionState.createEmpty(key).merge({
      -    anchorOffset: index,
      -    focusOffset
      -  });
      -  const nextContent = currentContent.createEntity("LINK", "MUTABLE", {
      -    href,
      -    title
      -  });
      -  const entityKey = nextContent.getLastCreatedEntityKey();
      -  let newContentState = Modifier.replaceText(
      -    nextContent,
      -    wordSelection,
      -    text,
      -    undefined,
      -    entityKey
      -  );
      -  newContentState = Modifier.insertText(
      -    newContentState,
      -    newContentState.getSelectionAfter(),
      -    " "
      -  );
      -  const newWordSelection = wordSelection.merge({
      -    focusOffset: index + text.length
      -  });
      -  let newEditorState = EditorState.push(
      -    editorState,
      -    newContentState,
      -    "insert-link" as EditorChangeType
      -  );
      -  newEditorState = RichUtils.toggleLink(newEditorState, newWordSelection, entityKey);
      -  return EditorState.forceSelection(
      -    newEditorState,
      -    newContentState.getSelectionAfter()
      -  );
      +	const currentContent = editorState.getCurrentContent();
      +	const selection = editorState.getSelection();
      +	const key = selection.getStartKey();
      +	const [matchText, text, href, title] = matchArr;
      +	const { index } = matchArr;
      +	const focusOffset = index + matchText.length;
      +	const wordSelection = SelectionState.createEmpty(key).merge({
      +		anchorOffset: index,
      +		focusOffset
      +	});
      +	const nextContent = currentContent.createEntity("LINK", "MUTABLE", {
      +		href,
      +		title
      +	});
      +	const entityKey = nextContent.getLastCreatedEntityKey();
      +	let newContentState = Modifier.replaceText(
      +		nextContent,
      +		wordSelection,
      +		text,
      +		undefined,
      +		entityKey
      +	);
      +	newContentState = Modifier.insertText(
      +		newContentState,
      +		newContentState.getSelectionAfter(),
      +		" "
      +	);
      +	const newWordSelection = wordSelection.merge({
      +		focusOffset: index + text.length
      +	});
      +	let newEditorState = EditorState.push(
      +		editorState,
      +		newContentState,
      +		"insert-link" as EditorChangeType
      +	);
      +	newEditorState = RichUtils.toggleLink(newEditorState, newWordSelection, entityKey);
      +	return EditorState.forceSelection(
      +		newEditorState,
      +		newContentState.getSelectionAfter()
      +	);
       };
       
       export const handleLink = (editorState: EditorState, character: string) => {
      -  const re = /\[([^\]]+)]\(([^)"]+)(?: "([^"]+)")?\)/g;
      -  const key = editorState.getSelection().getStartKey();
      -  const text = editorState.getCurrentContent().getBlockForKey(key).getText();
      -  const line = `${text}${character}`;
      -  let newEditorState = editorState;
      -  let matchArr;
      -  do {
      -    matchArr = re.exec(line);
      -    if (matchArr) {
      -      newEditorState = insertLink(newEditorState, matchArr);
      -    }
      -  } while (matchArr);
      -  return newEditorState;
      +	const re = /\[([^\]]+)]\(([^)"]+)(?: "([^"]+)")?\)/g;
      +	const key = editorState.getSelection().getStartKey();
      +	const text = editorState.getCurrentContent().getBlockForKey(key).getText();
      +	const line = `${text}${character}`;
      +	let newEditorState = editorState;
      +	let matchArr;
      +	do {
      +		matchArr = re.exec(line);
      +		if (matchArr) {
      +			newEditorState = insertLink(newEditorState, matchArr);
      +		}
      +	} while (matchArr);
      +	return newEditorState;
       };
       
       export const handleNewCodeBlock = (editorState: EditorState) => {
      -  const contentState = editorState.getCurrentContent();
      -  const selection = editorState.getSelection();
      -  const key = selection.getStartKey();
      -  const currentBlock = contentState.getBlockForKey(key);
      -  const matchData = /^```([\w-]+)?$/.exec(currentBlock.getText());
      -  const isLast = selection.getEndOffset() === currentBlock.getLength();
      -  if (matchData && isLast) {
      -    const data: any = {};
      -    const language = matchData[1];
      -    if (language) {
      -      data.language = language;
      -    }
      -    return changeCurrentBlockType(editorState, "code-block", "", data);
      -  }
      -  const type = currentBlock.getType();
      -  if (type === "code-block" && isLast) {
      -    return insertEmptyBlock(editorState, "code-block", currentBlock.getData());
      -  }
      -  return editorState;
      +	const contentState = editorState.getCurrentContent();
      +	const selection = editorState.getSelection();
      +	const key = selection.getStartKey();
      +	const currentBlock = contentState.getBlockForKey(key);
      +	const matchData = /^```([\w-]+)?$/.exec(currentBlock.getText());
      +	const isLast = selection.getEndOffset() === currentBlock.getLength();
      +	if (matchData && isLast) {
      +		const data: any = {};
      +		const language = matchData[1];
      +		if (language) {
      +			data.language = language;
      +		}
      +		return changeCurrentBlockType(editorState, "code-block", "", data);
      +	}
      +	const type = currentBlock.getType();
      +	if (type === "code-block" && isLast) {
      +		return insertEmptyBlock(editorState, "code-block", currentBlock.getData());
      +	}
      +	return editorState;
       };
      diff --git a/src/editor/multidecorator.ts b/src/editor/multidecorator.ts
      index 016b14ed8..09c57bb3a 100644
      --- a/src/editor/multidecorator.ts
      +++ b/src/editor/multidecorator.ts
      @@ -4,54 +4,54 @@ import { CompositeDecorator, ContentBlock, ContentState } from "draft-js";
       var KEY_SEPARATOR = "-";
       
       export class MultiDecorator implements CompositeDecorator {
      -  public decorators: Immutable.List;
      -  constructor(decorators: CompositeDecorator[]) {
      -    this.decorators = Immutable.List(decorators);
      -  }
      +	public decorators: Immutable.List;
      +	constructor(decorators: CompositeDecorator[]) {
      +		this.decorators = Immutable.List(decorators);
      +	}
       
      -  public getDecorations(block: ContentBlock, contentState: ContentState) {
      -    var decorations = Array(block.getText().length).fill(null);
      +	public getDecorations(block: ContentBlock, contentState: ContentState) {
      +		var decorations = Array(block.getText().length).fill(null);
       
      -    this.decorators.forEach((decorator?: CompositeDecorator, i?: number) => {
      -      if (!decorator) {
      -        return;
      -      }
      +		this.decorators.forEach((decorator?: CompositeDecorator, i?: number) => {
      +			if (!decorator) {
      +				return;
      +			}
       
      -      var _decorations = decorator.getDecorations(block, contentState);
      +			var _decorations = decorator.getDecorations(block, contentState);
       
      -      _decorations.forEach((key?: string, offset?: number) => {
      -        if (!key) {
      -          return;
      -        }
      +			_decorations.forEach((key?: string, offset?: number) => {
      +				if (!key) {
      +					return;
      +				}
       
      -        key = i + KEY_SEPARATOR + key;
      +				key = i + KEY_SEPARATOR + key;
       
      -        decorations[offset!] = key;
      -      });
      -    });
      +				decorations[offset!] = key;
      +			});
      +		});
       
      -    return Immutable.List(decorations);
      -  }
      +		return Immutable.List(decorations);
      +	}
       
      -  public getComponentForKey(key: string) {
      -    var decorator = this.getDecoratorForKey(key);
      -    return decorator.getComponentForKey(this.getInnerKey(key));
      -  }
      +	public getComponentForKey(key: string) {
      +		var decorator = this.getDecoratorForKey(key);
      +		return decorator.getComponentForKey(this.getInnerKey(key));
      +	}
       
      -  public getDecoratorForKey(key: string) {
      -    var parts = key.split(KEY_SEPARATOR);
      -    var index = Number(parts[0]);
      +	public getDecoratorForKey(key: string) {
      +		var parts = key.split(KEY_SEPARATOR);
      +		var index = Number(parts[0]);
       
      -    return this.decorators.get(index);
      -  }
      +		return this.decorators.get(index);
      +	}
       
      -  private getInnerKey(key: string) {
      -    var parts = key.split(KEY_SEPARATOR);
      -    return parts.slice(1).join(KEY_SEPARATOR);
      -  }
      +	private getInnerKey(key: string) {
      +		var parts = key.split(KEY_SEPARATOR);
      +		return parts.slice(1).join(KEY_SEPARATOR);
      +	}
       
      -  public getPropsForKey(key: string) {
      -    var decorator = this.getDecoratorForKey(key);
      -    return decorator.getPropsForKey(this.getInnerKey(key));
      -  }
      +	public getPropsForKey(key: string) {
      +		var decorator = this.getDecoratorForKey(key);
      +		return decorator.getPropsForKey(this.getInnerKey(key));
      +	}
       }
      diff --git a/src/editor/prism.ts b/src/editor/prism.ts
      index 2b049997a..127e6e302 100644
      --- a/src/editor/prism.ts
      +++ b/src/editor/prism.ts
      @@ -4,128 +4,128 @@ import { ContentBlock, CompositeDecorator } from "draft-js";
       import Prism from "prismjs";
       
       function defaultFilter(block: ContentBlock) {
      -  return block.getType() === "code-block";
      +	return block.getType() === "code-block";
       }
       
       function defaultGetSyntax(block: ContentBlock) {
      -  const data = block.getData();
      -  const language = data.get("language") || data.get("syntax");
      -  if (typeof Prism.languages[language] === "object") {
      -    return language;
      -  }
      -  return null;
      +	const data = block.getData();
      +	const language = data.get("language") || data.get("syntax");
      +	if (typeof Prism.languages[language] === "object") {
      +		return language;
      +	}
      +	return null;
       }
       
       function defaultRender(props: any) {
      -  return createElement(
      -    "span",
      -    { className: "prism-token token " + props.type },
      -    props.children
      -  );
      +	return createElement(
      +		"span",
      +		{ className: "prism-token token " + props.type },
      +		props.children
      +	);
       }
       
       export class PrismDecorator implements CompositeDecorator {
      -  private options = {
      -    // Default language to use
      -    defaultSyntax: "javascript",
      -
      -    // Filter block before highlighting
      -    filter: defaultFilter,
      -
      -    // Function to get syntax for a block
      -    getSyntax: defaultGetSyntax,
      -
      -    // Render a decorated text for a token
      -    render: defaultRender,
      -
      -    // Prism module
      -    prism: Prism
      -  };
      -  private highlighted: any = {};
      -
      -  public getDecorations(block: ContentBlock) {
      -    var tokens,
      -      token,
      -      tokenId,
      -      resultId,
      -      offset = 0,
      -      tokenCount = 0;
      -    var filter = this.options.filter;
      -    var getSyntax = this.options.getSyntax;
      -    var blockKey = block.getKey();
      -    var blockText = block.getText();
      -    var decorations = Array(blockText.length).fill(null);
      -    var highlighted = this.highlighted;
      -
      -    highlighted[blockKey] = {};
      -
      -    if (!filter(block)) {
      -      return Immutable.List(decorations);
      -    }
      -
      -    var syntax = getSyntax(block) || this.options.defaultSyntax;
      -
      -    // Allow for no syntax highlighting
      -    if (syntax == null) {
      -      return Immutable.List(decorations);
      -    }
      -
      -    // Parse text using Prism
      -    var grammar = Prism.languages[syntax];
      -    tokens = Prism.tokenize(blockText, grammar);
      -
      -    function processToken(decorations: any, token: any, offset: number) {
      -      if (typeof token === "string") {
      -        return;
      -      }
      -      //First write this tokens full length
      -      tokenId = "tok" + tokenCount++;
      -      resultId = blockKey + "-" + tokenId;
      -      highlighted[blockKey][tokenId] = token;
      -      occupySlice(decorations, offset, offset + token.length, resultId);
      -      //Then recurse through the child tokens, overwriting the parent
      -      var childOffset = offset;
      -      for (var i = 0; i < token.content.length; i++) {
      -        var childToken = token.content[i];
      -        processToken(decorations, childToken, childOffset);
      -        childOffset += childToken.length;
      -      }
      -    }
      -
      -    for (var i = 0; i < tokens.length; i++) {
      -      token = tokens[i];
      -      processToken(decorations, token, offset);
      -      offset += token.length;
      -    }
      -
      -    return Immutable.List(decorations);
      -  }
      -
      -  public getComponentForKey(_: string) {
      -    return this.options.render;
      -  }
      -
      -  public getPropsForKey(key: string) {
      -    var parts = key.split("-");
      -    var blockKey = parts[0];
      -    var tokId = parts[1];
      -    var token = this.highlighted[blockKey][tokId];
      -
      -    return {
      -      type: token.type
      -    };
      -  }
      +	private options = {
      +		// Default language to use
      +		defaultSyntax: "javascript",
      +
      +		// Filter block before highlighting
      +		filter: defaultFilter,
      +
      +		// Function to get syntax for a block
      +		getSyntax: defaultGetSyntax,
      +
      +		// Render a decorated text for a token
      +		render: defaultRender,
      +
      +		// Prism module
      +		prism: Prism
      +	};
      +	private highlighted: any = {};
      +
      +	public getDecorations(block: ContentBlock) {
      +		var tokens,
      +			token,
      +			tokenId,
      +			resultId,
      +			offset = 0,
      +			tokenCount = 0;
      +		var filter = this.options.filter;
      +		var getSyntax = this.options.getSyntax;
      +		var blockKey = block.getKey();
      +		var blockText = block.getText();
      +		var decorations = Array(blockText.length).fill(null);
      +		var highlighted = this.highlighted;
      +
      +		highlighted[blockKey] = {};
      +
      +		if (!filter(block)) {
      +			return Immutable.List(decorations);
      +		}
      +
      +		var syntax = getSyntax(block) || this.options.defaultSyntax;
      +
      +		// Allow for no syntax highlighting
      +		if (syntax == null) {
      +			return Immutable.List(decorations);
      +		}
      +
      +		// Parse text using Prism
      +		var grammar = Prism.languages[syntax];
      +		tokens = Prism.tokenize(blockText, grammar);
      +
      +		function processToken(decorations: any, token: any, offset: number) {
      +			if (typeof token === "string") {
      +				return;
      +			}
      +			//First write this tokens full length
      +			tokenId = "tok" + tokenCount++;
      +			resultId = blockKey + "-" + tokenId;
      +			highlighted[blockKey][tokenId] = token;
      +			occupySlice(decorations, offset, offset + token.length, resultId);
      +			//Then recurse through the child tokens, overwriting the parent
      +			var childOffset = offset;
      +			for (var i = 0; i < token.content.length; i++) {
      +				var childToken = token.content[i];
      +				processToken(decorations, childToken, childOffset);
      +				childOffset += childToken.length;
      +			}
      +		}
      +
      +		for (var i = 0; i < tokens.length; i++) {
      +			token = tokens[i];
      +			processToken(decorations, token, offset);
      +			offset += token.length;
      +		}
      +
      +		return Immutable.List(decorations);
      +	}
      +
      +	public getComponentForKey(_: string) {
      +		return this.options.render;
      +	}
      +
      +	public getPropsForKey(key: string) {
      +		var parts = key.split("-");
      +		var blockKey = parts[0];
      +		var tokId = parts[1];
      +		var token = this.highlighted[blockKey][tokId];
      +
      +		return {
      +			type: token.type
      +		};
      +	}
       }
       
       export const prismHighlightDecorator = new PrismDecorator();
       
       function occupySlice(
      -  targetArr: any,
      -  start: number,
      -  end: number,
      -  componentKey: string
      +	targetArr: any,
      +	start: number,
      +	end: number,
      +	componentKey: string
       ) {
      -  for (var ii = start; ii < end; ii++) {
      -    targetArr[ii] = componentKey;
      -  }
      +	for (var ii = start; ii < end; ii++) {
      +		targetArr[ii] = componentKey;
      +	}
       }
      diff --git a/src/editor/raw.ts b/src/editor/raw.ts
      index 117064956..a96b7b146 100644
      --- a/src/editor/raw.ts
      +++ b/src/editor/raw.ts
      @@ -2,17 +2,17 @@ import { RawDraftContentState } from "draft-js";
       import cuid from "cuid";
       
       export const fixRawContentState = (raw: RawDraftContentState) => {
      -  let keyCache: Record = {};
      +	let keyCache: Record = {};
       
      -  const clone = Object.assign({}, raw);
      +	const clone = Object.assign({}, raw);
       
      -  clone.blocks = raw.blocks.map((n) => {
      -    let key = !!keyCache[n.key] ? n.key : cuid();
      -    return {
      -      ...n,
      -      key
      -    };
      -  });
      +	clone.blocks = raw.blocks.map((n) => {
      +		let key = !!keyCache[n.key] ? n.key : cuid();
      +		return {
      +			...n,
      +			key
      +		};
      +	});
       
      -  return clone;
      +	return clone;
       };
      diff --git a/src/editor/remarkable.d.ts b/src/editor/remarkable.d.ts
      index 789f95bc3..e47cbd916 100644
      --- a/src/editor/remarkable.d.ts
      +++ b/src/editor/remarkable.d.ts
      @@ -1,951 +1,951 @@
       declare module "remarkable" {
      -  function isString(obj?: any): boolean;
      -
      -  function has(object: any, key: string): boolean;
      -
      -  function assign(target: any, ...sources: any[]): any;
      -
      -  function unescapeMd(str: string): string;
      -
      -  function isValidEntityCode(c: number): boolean;
      -
      -  function fromCodePoint(c: number): string;
      -
      -  function replaceEntities(str: string): string;
      -
      -  function escapeHtml(str: string): string;
      -
      -  export { Remarkable };
      -
      -  export class Renderer {
      -    rules: Remarkable.Rules;
      -
      -    /**
      -     * Exported helper, for custom rules only.
      -     */
      -    getBreak: Remarkable.GetBreak;
      -
      -    /**
      -     * Render a string of inline HTML with the given `tokens` and
      -     * `options`.
      -     */
      -    renderInline(
      -      tokens: Remarkable.Token[],
      -      options: Remarkable.Options,
      -      env: Remarkable.Env
      -    ): string;
      -
      -    /**
      -     * Render a string of HTML with the given `tokens` and
      -     * `options`.
      -     */
      -    render(
      -      tokens: Remarkable.Token[],
      -      options: Remarkable.Options,
      -      env: Remarkable.Env
      -    ): string;
      -  }
      -
      -  export class Ruler {
      -    /**
      -     * Replace the rule `ruleName` with a new rule.
      -     */
      -    at(ruleName: string, fn: RULE, options: Remarkable.Options): void;
      -
      -    /**
      -     * Add a rule to the chain before given the `ruleName`.
      -     */
      -    before(
      -      beforeName: string,
      -      ruleName: string,
      -      fn: RULE,
      -      options: Remarkable.Options
      -    ): void;
      -
      -    /**
      -     * Add a rule to the chain after the given `ruleName`.
      -     */
      -    after(
      -      afterName: string,
      -      ruleName: string,
      -      fn: RULE,
      -      options: Remarkable.Options
      -    ): void;
      -
      -    /**
      -     * Add a rule to the end of chain.
      -     */
      -    push(ruleName: string, fn: RULE, options: Remarkable.Options): void;
      -
      -    /**
      -     * Enable a rule or list of rules.
      -     *
      -     * @param list Name or array of rule names to enable.
      -     * @param strict If `true`, all non listed rules will be disabled.
      -     */
      -    enable(list: string | string[], strict?: boolean): void;
      -
      -    /**
      -     * Disable a rule or list of rules.
      -     *
      -     * @param list Name or array of rule names to disable.
      -     */
      -    disable(list: string | string[]): void;
      -
      -    /**
      -     * Get a rules list as an array of functions.
      -     */
      -    getRules(chainName: string): Remarkable.Rule[];
      -  }
      -
      -  declare class Remarkable {
      -    /**
      -     * Useful helper functions for custom rendering.
      -     */
      -    static utils: typeof Utils;
      -
      -    inline: { ruler: Ruler };
      -
      -    block: { ruler: Ruler };
      -
      -    core: { ruler: Ruler };
      -
      -    renderer: Renderer;
      -
      -    /**
      -     * Markdown parser, done right.
      -     */
      -    constructor(options?: Remarkable.Options);
      -
      -    /**
      -     * Remarkable offers some "presets" as a convenience to quickly enable/disable
      -     * active syntax rules and options for common use cases.
      -     */
      -    constructor(
      -      preset: "commonmark" | "full" | "remarkable",
      -      options?: Remarkable.Options
      -    );
      -
      -    /**
      -     * `"# Remarkable rulezz!"` => `"

      Remarkable rulezz!

      "` - */ - render(markdown: string, env?: Remarkable.Env): string; - - /** - * Define options. - * - * Note: To achieve the best possible performance, don't modify a Remarkable instance - * on the fly. If you need multiple configurations, create multiple instances and - * initialize each with a configuration that is ideal for that instance. - */ - set(options: Remarkable.Options): void; - - /** - * Use a plugin. - */ - use(plugin: Remarkable.Plugin, options?: any): Remarkable; - - /** - * Batch loader for components rules states, and options. - */ - configure(presets: Remarkable.Presets): void; - - /** - * Parse the input `string` and return a tokens array. - * Modifies `env` with definitions data. - */ - parse(str: string, env: Remarkable.Env): Remarkable.Token[]; - - /** - * Parse the given content `string` as a single string. - */ - parseInline(str: string, env: Remarkable.Env): Remarkable.Token[]; - - /** - * Render a single content `string`, without wrapping it - * to paragraphs. - */ - renderInline(str: string, env?: Remarkable.Env): string; - } - - declare namespace Remarkable { - interface Env { - [key: string]: any; - } - - export type GetBreak = Rule; - - export interface Options { - /** - * Enable HTML tags in source. - */ - html?: boolean; - - /** - * Use "/" to close single tags (
      ). - */ - xhtmlOut?: boolean; - - /** - * Convert "\n" in paragraphs into
      . - */ - breaks?: boolean; - - /** - * CSS language prefix for fenced blocks. - */ - langPrefix?: string; - - /** - * Autoconvert URL-like text to links. - */ - linkify?: boolean; - - /** - * Set target to open link in - */ - linkTarget?: string; - - /** - * Enable some language-neutral replacement + quotes beautification. - */ - typographer?: boolean; - - /** - * Double + single quotes replacement pairs, when typographer enabled, - * and smartquotes on. Set doubles to "«»" for Russian, "„“" for German. - */ - quotes?: string; - - /** - * Highlighter function. Should return escaped HTML, or "" if the source - * string is not changed. - */ - highlight?(str: string, lang: string): string; - } - - export type Plugin = (md: Remarkable, options?: any) => void; - - export interface Presets { - components: { - [name: string]: { - rules: Rules; - }; - }; - - options: Options; - } - - export interface StateBlock { - src: string; - /** Shortcuts to simplify nested calls */ - parser: ParserBlock; - options: Options; - env: Env; - tokens: BlockContentToken[]; - bMarks: number[]; - eMarks: number[]; - tShift: number[]; - /** required block content indent */ - blkIndent: number; - /** line index in src */ - line: number; - /** lines count */ - lineMax: number; - /** loose/tight mode for lists */ - tight: boolean; - /** If `list`, block parser stops on two newlines */ - parentType: "root" | "list"; - /** Indent of the current dd block, -1 if there isn't any */ - ddIndent: number; - level: number; - result: string; - isEmpty: (line: number) => boolean; - skipEmptyLines: (from: number) => number; - skipSpaces: (pos: number) => number; - skipChars: (pos: number, code: number) => number; - getLines: ( - begin: number, - end: number, - indent: number, - keepLastLF: boolean - ) => string; - } - interface StateInline { - src: string; - env: Env; - parser: ParserInline; - tokens: ContentToken[]; - pos: number; - posMax: number; - level: number; - pending: string; - pendingLevel: number; - /** Set true when seek link label */ - isInLabel: boolean; - /** - * Increment for each nesting link. - * Used to prevent nesting in definitions. - */ - linkLevel: number; - /** - * Temporary storage for link url. - */ - linkContent: string; - - /** - * Track unpaired `[` for link labels. - */ - labelUnmatchedScopes: number; - push: (token: ContentToken) => void; - pushPending: () => void; - } - - /** - * Return `true` if the parsing function has recognized the current position - * in the input as one if its tokens. - */ - type CoreParsingRule = ( - /** - * Representation of the current input stream, and the results of - * parsing it so far. - */ - state: StateInline - ) => boolean; - - /** - * Return `true` if the parsing function has recognized the current position - * in the input as one if its tokens. - */ - type InlineParsingRule = ( - /** - * Representation of the current input stream, and the results of - * parsing it so far. - */ - state: StateInline, - - /** - * If `true` we just do the recognition part, and don't bother to push a - * token. - */ - silent: boolean - ) => boolean; - - /** - * Return `true` if the parsing function has recognized the current position - * in the input as one if its tokens. - */ - type BlockParsingRule = ( - /** - * Representation of the current input stream, and the results of - * parsing it so far. - */ - state: StateBlock, - - /** - * The index of the current line. - */ - startLine: number, - - /** - * The index of the last available line. - */ - endLine: number, - - /** - * If `true` we just do the recognition part, and don't bother to push a - * token. - */ - silent: boolean - ) => boolean; - - export type Rule = ( - /** - * The list of tokens currently being processed. - */ - // tslint:disable-next-line:no-unnecessary-generics - tokens: T[], - - /** - * The index of the token currently being processed. - */ - idx: number, - - /** - * The options given to remarkable. - */ - options?: Options, - - /** - * The key-value store created by the parsing rules. - */ - env?: Env, - - /** - * The possible instance of Remarkable. See `fence` renderer function. - */ - instance?: Remarkable - ) => R; - - /** - * Renderer rules. - */ - interface Rules { - [name: string]: Rule | { [name: string]: Rule }; - blockquote_open: Rule; - blockquote_close: Rule; - code: Rule; - fence: Rule; - fence_custom: { [name: string]: Rule }; - heading_open: Rule; - heading_close: Rule; - hr: Rule; - bullet_list_open: Rule; - bullet_list_close: Rule; - list_item_open: Rule; - list_item_close: Rule; - ordered_list_open: Rule; - ordered_list_close: Rule; - paragraph_open: Rule; - paragraph_close: Rule; - link_open: Rule; - link_close: Rule; - image: Rule; - table_open: Rule; - table_close: Rule; - thead_open: Rule; - thead_close: Rule; - tbody_open: Rule; - tbody_close: Rule; - tr_open: Rule; - tr_close: Rule; - th_open: Rule; - th_close: Rule; - td_open: Rule; - td_close: Rule; - strong_open: Rule; - strong_close: Rule; - em_open: Rule; - em_close: Rule; - del_open: Rule; - del_close: Rule; - ins_open: Rule; - ins_close: Rule; - mark_open: Rule; - mark_close: Rule; - sub: Rule; - sup: Rule; - hardbreak: Rule; - softbreak: Rule; - text: Rule; - htmlblock: Rule; - htmltag: Rule; - abbr_open: Rule; - abbr_close: Rule; - footnote_ref: Rule; - footnote_block_open: Rule; - footnote_block_close: Rule; - footnote_open: Rule; - footnote_close: Rule; - footnote_anchor: Rule; - dl_open: Rule; - dt_open: Rule; - dd_open: Rule; - dl_close: Rule; - dt_close: Rule; - dd_close: Rule; - - /** - * Check to see if `\n` is needed before the next token. - */ - getBreak: GetBreak; - } - - interface TagToken { - /** - * The nesting level of the associated markdown structure in the source. - */ - level: number; - - /** - * The type of the token. - */ - type: string; - - /** - * Tokens generated by block parsing rules also include a `lines` - * property which is a 2 elements array marking the first and last line of the - * `src` used to generate the token. - */ - lines?: [number, number]; - } - - interface BlockContentToken extends TagToken { - /** - * The content of the block. This might include inline mardown syntax - * which may need further processing by the inline rules. - */ - content?: string; - - /** - * This is initialized with an empty array (`[]`) and will be filled - * with the inline parser tokens as the inline parsing rules are applied. - */ - children?: Token[]; - } - - interface ContentToken extends TagToken { - /** - * A text token has a `content` property. This is passed to - * the corresponding renderer to be converted for output. - */ - content?: any; - - /** - * Is this a block element - */ - block?: boolean; - } - - // --------------- - // Specific Block Tokens - // --------------- - - export interface BlockquoteToken extends TagToken {} - export interface BlockquoteOpenToken extends BlockquoteToken { - type: "blockquote_open"; - } - export interface BlockquoteCloseToken extends BlockquoteToken { - type: "blockquote_close"; - } - - export interface CodeToken extends BlockContentToken { - /** - * Code: `true` if block, `false` if inline. - */ - block: boolean; - - type: "code"; - } - - export interface DlOpenToken extends TagToken { - type: "dl_open"; - } - export interface DlCloseToken extends TagToken { - type: "dl_close"; - } - export interface DtOpenToken extends TagToken { - type: "dt_open"; - } - export interface DtCloseToken extends TagToken { - type: "dt_close"; - } - export interface DdOpenToken extends TagToken { - type: "dd_open"; - } - export interface DdCloseToken extends TagToken { - type: "dd_close"; - } - - export interface FenceToken extends ContentToken { - content: string; - block?: false; - - /** - * Fenced block params. - */ - params: string; - type: "fence"; - } - - export interface FootnoteGenericToken extends TagToken { - /** - * Footnote id. - */ - id: number; - - /** - * Footnote sub id. - */ - subId?: number; - } - export interface FootnoteReferenceToken extends FootnoteGenericToken {} - export interface FootnoteReferenceOpenToken extends FootnoteReferenceToken { - label: string; - type: "footnote_reference_open"; - } - export interface FootnoteReferenceCloseToken extends FootnoteReferenceToken { - type: "footnote_reference_close"; - } - - export type HeadingValue = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; - export interface HeadingToken extends TagToken { - hLevel: HeadingValue; - } - export interface HeadingOpenToken extends HeadingToken { - type: "heading_open"; - } - export interface HeadingCloseToken extends HeadingToken { - type: "heading_close"; - } - - export interface HrToken extends TagToken { - type: "hr"; - } - - export interface HtmlBlockToken extends ContentToken { - content: string; - block: false; - type: "htmlblock"; - } - - export interface LHeadingOpenToken extends HeadingOpenToken {} - export interface LHeadingCloseToken extends HeadingCloseToken {} - - export interface OrderedListToken extends TagToken {} - export interface OrderedListOpenToken extends OrderedListToken { - /** - * Ordered list marker value. - */ - order: number; - type: "ordered_list_open"; - } - interface OrderedListCloseToken extends OrderedListToken { - type: "ordered_list_close"; - } - interface BulletListToken extends TagToken {} - interface BulletListOpenToken extends BulletListToken { - type: "bullet_list_open"; - } - interface BulletListCloseToken extends BulletListToken { - type: "bullet_list_close"; - } - interface ListItemToken extends TagToken {} - interface ListItemOpenToken extends ListItemToken { - type: "list_item_open"; - } - interface ListItemCloseToken extends ListItemToken { - type: "list_item_close"; - } - - interface ParagraphToken extends TagToken { - /** - * Absence of empty line before current tag: `true` if absent, `false` - * if present. List is tight if any list item is tight. - */ - tight: boolean; - } - - export interface ParagraphOpenToken extends ParagraphToken { - type: "paragraph_open"; - } - - export interface ParagraphCloseToken extends ParagraphToken { - type: "paragraph_close"; - } - - export interface TextToken extends TagToken { - content?: string; - type: "text"; - } - - export interface StrongToken extends TagToken {} - export interface StrongOpenToken extends TagToken { - type: "strong_open"; - } - export interface StrongCloseToken extends TagToken { - type: "strong_close"; - } - - interface TableToken extends TagToken {} - interface TableOpenToken extends TableToken { - type: "table_open"; - } - interface TableCloseToken extends TableToken { - type: "table_close"; - } - interface THeadToken extends TagToken {} - interface THeadOpenToken extends THeadToken { - type: "thead_open"; - } - interface THeadCloseToken extends THeadToken { - type: "thead_close"; - } - interface TBodyToken extends TagToken {} - interface TBodyOpenToken extends TBodyToken { - type: "tbody_open"; - } - interface TBodyCloseToken extends TBodyToken { - type: "tbody_close"; - } - interface TRToken extends TagToken {} - interface TROpenToken extends TRToken { - type: "tr_open"; - } - interface TRCloseToken extends TRToken { - type: "tr_close"; - } - interface THToken extends TagToken {} - interface THOpenToken extends THToken { - type: "th_open"; - } - interface THCloseToken extends THToken { - type: "th_close"; - } - interface TDToken extends TagToken {} - interface TDOpenToken extends TDToken { - type: "td_open"; - } - interface TDCloseToken extends TDToken { - type: "td_close"; - } - - // --------------- - // Specific Block Tokens - // --------------- - - interface LinkToken extends TagToken {} - interface LinkOpenToken extends LinkToken { - /** - * Link url. - */ - href: string; - /** - * Link title. - */ - title?: string; - type: "link_open"; - } - interface LinkCloseToken extends LinkToken { - type: "link_close"; - } - - interface DelToken extends TagToken {} - interface DelOpenToken extends DelToken { - type: "del_open"; - } - interface DelCloseToken extends DelToken { - type: "del_open"; - } - - interface EmToken extends TagToken {} - interface EmOpenToken extends EmToken { - type: "em_open"; - } - interface EmCloseToken extends EmToken { - type: "em_close"; - } - - interface HardbreakToken extends TagToken { - type: "hardbreak"; - } - interface SoftbreakToken extends TagToken { - type: "softbreak"; - } - - interface FootnoteInlineToken extends FootnoteGenericToken { - type: "footnote_ref"; - } - - interface HtmlTagToken extends ContentToken { - content: string; - type: "htmltag"; - } - - interface InsToken extends TagToken {} - interface InsOpenToken extends InsToken { - type: "ins_open"; - } - interface InsCloseToken extends InsToken { - type: "ins_close"; - } - - interface ImageToken extends ContentToken { - /** - * Image url. - */ - src: string; - - /** - * Image alt. - */ - alt: string; - - /** - * Image title. - */ - title: string; - - type: "image"; - } - - interface MarkToken extends TagToken {} - interface MarkOpenToken extends MarkToken { - type: "mark_open"; - } - interface MarkCloseToken extends MarkToken { - type: "mark_close"; - } - - interface SubToken extends ContentToken { - content: string; - type: "sub"; - } - - interface SupToken extends ContentToken { - content: string; - type: "sup"; - } - - // --------------- - // Specific Core Tokens - // --------------- - - interface AbbrToken extends TagToken {} - interface AbbrOpenToken extends AbbrToken { - /** - * Abbreviation title. - */ - title: string; - type: "abbr_open"; - } - interface AbbrCloseToken extends AbbrToken { - type: "abbr_close"; - } - - interface FootnoteToken extends FootnoteGenericToken {} - interface FootnoteOpenToken extends FootnoteToken { - type: "footnote_open"; - } - interface FootnoteCloseToken extends FootnoteToken { - type: "footnote_close"; - } - - interface FootnoteBlockToken extends TagToken {} - interface FootnoteBlockOpenToken extends FootnoteBlockToken { - type: "footnote_block_open"; - } - export interface FootnoteBlockCloseToken extends FootnoteBlockToken { - type: "footnote_block_close"; - } - - export interface FootnoteAnchorToken extends FootnoteGenericToken { - type: "footnote_anchor"; - } - - export type Token = - | BlockContentToken - | ContentToken - | TagToken - | BlockquoteToken - | BlockquoteOpenToken - | BlockquoteCloseToken - | CodeToken - | DlOpenToken - | DlCloseToken - | DtOpenToken - | DtCloseToken - | DdOpenToken - | DdCloseToken - | FenceToken - | FootnoteGenericToken - | FootnoteReferenceToken - | FootnoteReferenceOpenToken - | FootnoteReferenceCloseToken - | HeadingToken - | HeadingOpenToken - | HeadingCloseToken - | HrToken - | HtmlBlockToken - | LHeadingOpenToken - | LHeadingCloseToken - | OrderedListToken - | OrderedListOpenToken - | OrderedListCloseToken - | BulletListToken - | BulletListOpenToken - | BulletListCloseToken - | ListItemToken - | ListItemOpenToken - | ListItemCloseToken - | ParagraphToken - | ParagraphOpenToken - | ParagraphCloseToken - | TextToken - | StrongToken - | StrongOpenToken - | StrongCloseToken - | TableToken - | TableOpenToken - | TableCloseToken - | THeadToken - | THeadOpenToken - | THeadCloseToken - | TBodyToken - | TBodyOpenToken - | TBodyCloseToken - | TRToken - | TROpenToken - | TRCloseToken - | THToken - | THOpenToken - | THCloseToken - | TDToken - | TDOpenToken - | TDCloseToken - | LinkToken - | LinkOpenToken - | LinkCloseToken - | DelToken - | DelOpenToken - | DelCloseToken - | EmToken - | EmOpenToken - | EmCloseToken - | HardbreakToken - | SoftbreakToken - | FootnoteInlineToken - | HtmlTagToken - | InsToken - | InsOpenToken - | InsCloseToken - | ImageToken - | MarkToken - | MarkOpenToken - | MarkCloseToken - | SubToken - | SupToken - | AbbrToken - | AbbrOpenToken - | AbbrCloseToken - | FootnoteToken - | FootnoteOpenToken - | FootnoteCloseToken - | FootnoteBlockToken - | FootnoteBlockOpenToken - | FootnoteBlockCloseToken - | FootnoteAnchorToken; - } - - export class ParserBlock { - tokenize(state: Remarkable.StateBlock, startLine: number, endLine: number): void; - parse( - str: string, - options: Remarkable.Options, - env: Remarkable.Env, - tokens: [Remarkable.Token] - ): void; - } - - export class ParserInline { - skipToken(state: Remarkable.StateInline): void; - tokenize(state: Remarkable.StateInline): void; - parse( - str: string, - options: Remarkable.Options, - env: Remarkable.Env, - tokens: [Remarkable.Token] - ): void; - validateLink(url: string): boolean; - } + function isString(obj?: any): boolean; + + function has(object: any, key: string): boolean; + + function assign(target: any, ...sources: any[]): any; + + function unescapeMd(str: string): string; + + function isValidEntityCode(c: number): boolean; + + function fromCodePoint(c: number): string; + + function replaceEntities(str: string): string; + + function escapeHtml(str: string): string; + + export { Remarkable }; + + export class Renderer { + rules: Remarkable.Rules; + + /** + * Exported helper, for custom rules only. + */ + getBreak: Remarkable.GetBreak; + + /** + * Render a string of inline HTML with the given `tokens` and + * `options`. + */ + renderInline( + tokens: Remarkable.Token[], + options: Remarkable.Options, + env: Remarkable.Env + ): string; + + /** + * Render a string of HTML with the given `tokens` and + * `options`. + */ + render( + tokens: Remarkable.Token[], + options: Remarkable.Options, + env: Remarkable.Env + ): string; + } + + export class Ruler { + /** + * Replace the rule `ruleName` with a new rule. + */ + at(ruleName: string, fn: RULE, options: Remarkable.Options): void; + + /** + * Add a rule to the chain before given the `ruleName`. + */ + before( + beforeName: string, + ruleName: string, + fn: RULE, + options: Remarkable.Options + ): void; + + /** + * Add a rule to the chain after the given `ruleName`. + */ + after( + afterName: string, + ruleName: string, + fn: RULE, + options: Remarkable.Options + ): void; + + /** + * Add a rule to the end of chain. + */ + push(ruleName: string, fn: RULE, options: Remarkable.Options): void; + + /** + * Enable a rule or list of rules. + * + * @param list Name or array of rule names to enable. + * @param strict If `true`, all non listed rules will be disabled. + */ + enable(list: string | string[], strict?: boolean): void; + + /** + * Disable a rule or list of rules. + * + * @param list Name or array of rule names to disable. + */ + disable(list: string | string[]): void; + + /** + * Get a rules list as an array of functions. + */ + getRules(chainName: string): Remarkable.Rule[]; + } + + declare class Remarkable { + /** + * Useful helper functions for custom rendering. + */ + static utils: typeof Utils; + + inline: { ruler: Ruler }; + + block: { ruler: Ruler }; + + core: { ruler: Ruler }; + + renderer: Renderer; + + /** + * Markdown parser, done right. + */ + constructor(options?: Remarkable.Options); + + /** + * Remarkable offers some "presets" as a convenience to quickly enable/disable + * active syntax rules and options for common use cases. + */ + constructor( + preset: "commonmark" | "full" | "remarkable", + options?: Remarkable.Options + ); + + /** + * `"# Remarkable rulezz!"` => `"

      Remarkable rulezz!

      "` + */ + render(markdown: string, env?: Remarkable.Env): string; + + /** + * Define options. + * + * Note: To achieve the best possible performance, don't modify a Remarkable instance + * on the fly. If you need multiple configurations, create multiple instances and + * initialize each with a configuration that is ideal for that instance. + */ + set(options: Remarkable.Options): void; + + /** + * Use a plugin. + */ + use(plugin: Remarkable.Plugin, options?: any): Remarkable; + + /** + * Batch loader for components rules states, and options. + */ + configure(presets: Remarkable.Presets): void; + + /** + * Parse the input `string` and return a tokens array. + * Modifies `env` with definitions data. + */ + parse(str: string, env: Remarkable.Env): Remarkable.Token[]; + + /** + * Parse the given content `string` as a single string. + */ + parseInline(str: string, env: Remarkable.Env): Remarkable.Token[]; + + /** + * Render a single content `string`, without wrapping it + * to paragraphs. + */ + renderInline(str: string, env?: Remarkable.Env): string; + } + + declare namespace Remarkable { + interface Env { + [key: string]: any; + } + + export type GetBreak = Rule; + + export interface Options { + /** + * Enable HTML tags in source. + */ + html?: boolean; + + /** + * Use "/" to close single tags (
      ). + */ + xhtmlOut?: boolean; + + /** + * Convert "\n" in paragraphs into
      . + */ + breaks?: boolean; + + /** + * CSS language prefix for fenced blocks. + */ + langPrefix?: string; + + /** + * Autoconvert URL-like text to links. + */ + linkify?: boolean; + + /** + * Set target to open link in + */ + linkTarget?: string; + + /** + * Enable some language-neutral replacement + quotes beautification. + */ + typographer?: boolean; + + /** + * Double + single quotes replacement pairs, when typographer enabled, + * and smartquotes on. Set doubles to "«»" for Russian, "„“" for German. + */ + quotes?: string; + + /** + * Highlighter function. Should return escaped HTML, or "" if the source + * string is not changed. + */ + highlight?(str: string, lang: string): string; + } + + export type Plugin = (md: Remarkable, options?: any) => void; + + export interface Presets { + components: { + [name: string]: { + rules: Rules; + }; + }; + + options: Options; + } + + export interface StateBlock { + src: string; + /** Shortcuts to simplify nested calls */ + parser: ParserBlock; + options: Options; + env: Env; + tokens: BlockContentToken[]; + bMarks: number[]; + eMarks: number[]; + tShift: number[]; + /** required block content indent */ + blkIndent: number; + /** line index in src */ + line: number; + /** lines count */ + lineMax: number; + /** loose/tight mode for lists */ + tight: boolean; + /** If `list`, block parser stops on two newlines */ + parentType: "root" | "list"; + /** Indent of the current dd block, -1 if there isn't any */ + ddIndent: number; + level: number; + result: string; + isEmpty: (line: number) => boolean; + skipEmptyLines: (from: number) => number; + skipSpaces: (pos: number) => number; + skipChars: (pos: number, code: number) => number; + getLines: ( + begin: number, + end: number, + indent: number, + keepLastLF: boolean + ) => string; + } + interface StateInline { + src: string; + env: Env; + parser: ParserInline; + tokens: ContentToken[]; + pos: number; + posMax: number; + level: number; + pending: string; + pendingLevel: number; + /** Set true when seek link label */ + isInLabel: boolean; + /** + * Increment for each nesting link. + * Used to prevent nesting in definitions. + */ + linkLevel: number; + /** + * Temporary storage for link url. + */ + linkContent: string; + + /** + * Track unpaired `[` for link labels. + */ + labelUnmatchedScopes: number; + push: (token: ContentToken) => void; + pushPending: () => void; + } + + /** + * Return `true` if the parsing function has recognized the current position + * in the input as one if its tokens. + */ + type CoreParsingRule = ( + /** + * Representation of the current input stream, and the results of + * parsing it so far. + */ + state: StateInline + ) => boolean; + + /** + * Return `true` if the parsing function has recognized the current position + * in the input as one if its tokens. + */ + type InlineParsingRule = ( + /** + * Representation of the current input stream, and the results of + * parsing it so far. + */ + state: StateInline, + + /** + * If `true` we just do the recognition part, and don't bother to push a + * token. + */ + silent: boolean + ) => boolean; + + /** + * Return `true` if the parsing function has recognized the current position + * in the input as one if its tokens. + */ + type BlockParsingRule = ( + /** + * Representation of the current input stream, and the results of + * parsing it so far. + */ + state: StateBlock, + + /** + * The index of the current line. + */ + startLine: number, + + /** + * The index of the last available line. + */ + endLine: number, + + /** + * If `true` we just do the recognition part, and don't bother to push a + * token. + */ + silent: boolean + ) => boolean; + + export type Rule = ( + /** + * The list of tokens currently being processed. + */ + // tslint:disable-next-line:no-unnecessary-generics + tokens: T[], + + /** + * The index of the token currently being processed. + */ + idx: number, + + /** + * The options given to remarkable. + */ + options?: Options, + + /** + * The key-value store created by the parsing rules. + */ + env?: Env, + + /** + * The possible instance of Remarkable. See `fence` renderer function. + */ + instance?: Remarkable + ) => R; + + /** + * Renderer rules. + */ + interface Rules { + [name: string]: Rule | { [name: string]: Rule }; + blockquote_open: Rule; + blockquote_close: Rule; + code: Rule; + fence: Rule; + fence_custom: { [name: string]: Rule }; + heading_open: Rule; + heading_close: Rule; + hr: Rule; + bullet_list_open: Rule; + bullet_list_close: Rule; + list_item_open: Rule; + list_item_close: Rule; + ordered_list_open: Rule; + ordered_list_close: Rule; + paragraph_open: Rule; + paragraph_close: Rule; + link_open: Rule; + link_close: Rule; + image: Rule; + table_open: Rule; + table_close: Rule; + thead_open: Rule; + thead_close: Rule; + tbody_open: Rule; + tbody_close: Rule; + tr_open: Rule; + tr_close: Rule; + th_open: Rule; + th_close: Rule; + td_open: Rule; + td_close: Rule; + strong_open: Rule; + strong_close: Rule; + em_open: Rule; + em_close: Rule; + del_open: Rule; + del_close: Rule; + ins_open: Rule; + ins_close: Rule; + mark_open: Rule; + mark_close: Rule; + sub: Rule; + sup: Rule; + hardbreak: Rule; + softbreak: Rule; + text: Rule; + htmlblock: Rule; + htmltag: Rule; + abbr_open: Rule; + abbr_close: Rule; + footnote_ref: Rule; + footnote_block_open: Rule; + footnote_block_close: Rule; + footnote_open: Rule; + footnote_close: Rule; + footnote_anchor: Rule; + dl_open: Rule; + dt_open: Rule; + dd_open: Rule; + dl_close: Rule; + dt_close: Rule; + dd_close: Rule; + + /** + * Check to see if `\n` is needed before the next token. + */ + getBreak: GetBreak; + } + + interface TagToken { + /** + * The nesting level of the associated markdown structure in the source. + */ + level: number; + + /** + * The type of the token. + */ + type: string; + + /** + * Tokens generated by block parsing rules also include a `lines` + * property which is a 2 elements array marking the first and last line of the + * `src` used to generate the token. + */ + lines?: [number, number]; + } + + interface BlockContentToken extends TagToken { + /** + * The content of the block. This might include inline mardown syntax + * which may need further processing by the inline rules. + */ + content?: string; + + /** + * This is initialized with an empty array (`[]`) and will be filled + * with the inline parser tokens as the inline parsing rules are applied. + */ + children?: Token[]; + } + + interface ContentToken extends TagToken { + /** + * A text token has a `content` property. This is passed to + * the corresponding renderer to be converted for output. + */ + content?: any; + + /** + * Is this a block element + */ + block?: boolean; + } + + // --------------- + // Specific Block Tokens + // --------------- + + export interface BlockquoteToken extends TagToken {} + export interface BlockquoteOpenToken extends BlockquoteToken { + type: "blockquote_open"; + } + export interface BlockquoteCloseToken extends BlockquoteToken { + type: "blockquote_close"; + } + + export interface CodeToken extends BlockContentToken { + /** + * Code: `true` if block, `false` if inline. + */ + block: boolean; + + type: "code"; + } + + export interface DlOpenToken extends TagToken { + type: "dl_open"; + } + export interface DlCloseToken extends TagToken { + type: "dl_close"; + } + export interface DtOpenToken extends TagToken { + type: "dt_open"; + } + export interface DtCloseToken extends TagToken { + type: "dt_close"; + } + export interface DdOpenToken extends TagToken { + type: "dd_open"; + } + export interface DdCloseToken extends TagToken { + type: "dd_close"; + } + + export interface FenceToken extends ContentToken { + content: string; + block?: false; + + /** + * Fenced block params. + */ + params: string; + type: "fence"; + } + + export interface FootnoteGenericToken extends TagToken { + /** + * Footnote id. + */ + id: number; + + /** + * Footnote sub id. + */ + subId?: number; + } + export interface FootnoteReferenceToken extends FootnoteGenericToken {} + export interface FootnoteReferenceOpenToken extends FootnoteReferenceToken { + label: string; + type: "footnote_reference_open"; + } + export interface FootnoteReferenceCloseToken extends FootnoteReferenceToken { + type: "footnote_reference_close"; + } + + export type HeadingValue = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; + export interface HeadingToken extends TagToken { + hLevel: HeadingValue; + } + export interface HeadingOpenToken extends HeadingToken { + type: "heading_open"; + } + export interface HeadingCloseToken extends HeadingToken { + type: "heading_close"; + } + + export interface HrToken extends TagToken { + type: "hr"; + } + + export interface HtmlBlockToken extends ContentToken { + content: string; + block: false; + type: "htmlblock"; + } + + export interface LHeadingOpenToken extends HeadingOpenToken {} + export interface LHeadingCloseToken extends HeadingCloseToken {} + + export interface OrderedListToken extends TagToken {} + export interface OrderedListOpenToken extends OrderedListToken { + /** + * Ordered list marker value. + */ + order: number; + type: "ordered_list_open"; + } + interface OrderedListCloseToken extends OrderedListToken { + type: "ordered_list_close"; + } + interface BulletListToken extends TagToken {} + interface BulletListOpenToken extends BulletListToken { + type: "bullet_list_open"; + } + interface BulletListCloseToken extends BulletListToken { + type: "bullet_list_close"; + } + interface ListItemToken extends TagToken {} + interface ListItemOpenToken extends ListItemToken { + type: "list_item_open"; + } + interface ListItemCloseToken extends ListItemToken { + type: "list_item_close"; + } + + interface ParagraphToken extends TagToken { + /** + * Absence of empty line before current tag: `true` if absent, `false` + * if present. List is tight if any list item is tight. + */ + tight: boolean; + } + + export interface ParagraphOpenToken extends ParagraphToken { + type: "paragraph_open"; + } + + export interface ParagraphCloseToken extends ParagraphToken { + type: "paragraph_close"; + } + + export interface TextToken extends TagToken { + content?: string; + type: "text"; + } + + export interface StrongToken extends TagToken {} + export interface StrongOpenToken extends TagToken { + type: "strong_open"; + } + export interface StrongCloseToken extends TagToken { + type: "strong_close"; + } + + interface TableToken extends TagToken {} + interface TableOpenToken extends TableToken { + type: "table_open"; + } + interface TableCloseToken extends TableToken { + type: "table_close"; + } + interface THeadToken extends TagToken {} + interface THeadOpenToken extends THeadToken { + type: "thead_open"; + } + interface THeadCloseToken extends THeadToken { + type: "thead_close"; + } + interface TBodyToken extends TagToken {} + interface TBodyOpenToken extends TBodyToken { + type: "tbody_open"; + } + interface TBodyCloseToken extends TBodyToken { + type: "tbody_close"; + } + interface TRToken extends TagToken {} + interface TROpenToken extends TRToken { + type: "tr_open"; + } + interface TRCloseToken extends TRToken { + type: "tr_close"; + } + interface THToken extends TagToken {} + interface THOpenToken extends THToken { + type: "th_open"; + } + interface THCloseToken extends THToken { + type: "th_close"; + } + interface TDToken extends TagToken {} + interface TDOpenToken extends TDToken { + type: "td_open"; + } + interface TDCloseToken extends TDToken { + type: "td_close"; + } + + // --------------- + // Specific Block Tokens + // --------------- + + interface LinkToken extends TagToken {} + interface LinkOpenToken extends LinkToken { + /** + * Link url. + */ + href: string; + /** + * Link title. + */ + title?: string; + type: "link_open"; + } + interface LinkCloseToken extends LinkToken { + type: "link_close"; + } + + interface DelToken extends TagToken {} + interface DelOpenToken extends DelToken { + type: "del_open"; + } + interface DelCloseToken extends DelToken { + type: "del_open"; + } + + interface EmToken extends TagToken {} + interface EmOpenToken extends EmToken { + type: "em_open"; + } + interface EmCloseToken extends EmToken { + type: "em_close"; + } + + interface HardbreakToken extends TagToken { + type: "hardbreak"; + } + interface SoftbreakToken extends TagToken { + type: "softbreak"; + } + + interface FootnoteInlineToken extends FootnoteGenericToken { + type: "footnote_ref"; + } + + interface HtmlTagToken extends ContentToken { + content: string; + type: "htmltag"; + } + + interface InsToken extends TagToken {} + interface InsOpenToken extends InsToken { + type: "ins_open"; + } + interface InsCloseToken extends InsToken { + type: "ins_close"; + } + + interface ImageToken extends ContentToken { + /** + * Image url. + */ + src: string; + + /** + * Image alt. + */ + alt: string; + + /** + * Image title. + */ + title: string; + + type: "image"; + } + + interface MarkToken extends TagToken {} + interface MarkOpenToken extends MarkToken { + type: "mark_open"; + } + interface MarkCloseToken extends MarkToken { + type: "mark_close"; + } + + interface SubToken extends ContentToken { + content: string; + type: "sub"; + } + + interface SupToken extends ContentToken { + content: string; + type: "sup"; + } + + // --------------- + // Specific Core Tokens + // --------------- + + interface AbbrToken extends TagToken {} + interface AbbrOpenToken extends AbbrToken { + /** + * Abbreviation title. + */ + title: string; + type: "abbr_open"; + } + interface AbbrCloseToken extends AbbrToken { + type: "abbr_close"; + } + + interface FootnoteToken extends FootnoteGenericToken {} + interface FootnoteOpenToken extends FootnoteToken { + type: "footnote_open"; + } + interface FootnoteCloseToken extends FootnoteToken { + type: "footnote_close"; + } + + interface FootnoteBlockToken extends TagToken {} + interface FootnoteBlockOpenToken extends FootnoteBlockToken { + type: "footnote_block_open"; + } + export interface FootnoteBlockCloseToken extends FootnoteBlockToken { + type: "footnote_block_close"; + } + + export interface FootnoteAnchorToken extends FootnoteGenericToken { + type: "footnote_anchor"; + } + + export type Token = + | BlockContentToken + | ContentToken + | TagToken + | BlockquoteToken + | BlockquoteOpenToken + | BlockquoteCloseToken + | CodeToken + | DlOpenToken + | DlCloseToken + | DtOpenToken + | DtCloseToken + | DdOpenToken + | DdCloseToken + | FenceToken + | FootnoteGenericToken + | FootnoteReferenceToken + | FootnoteReferenceOpenToken + | FootnoteReferenceCloseToken + | HeadingToken + | HeadingOpenToken + | HeadingCloseToken + | HrToken + | HtmlBlockToken + | LHeadingOpenToken + | LHeadingCloseToken + | OrderedListToken + | OrderedListOpenToken + | OrderedListCloseToken + | BulletListToken + | BulletListOpenToken + | BulletListCloseToken + | ListItemToken + | ListItemOpenToken + | ListItemCloseToken + | ParagraphToken + | ParagraphOpenToken + | ParagraphCloseToken + | TextToken + | StrongToken + | StrongOpenToken + | StrongCloseToken + | TableToken + | TableOpenToken + | TableCloseToken + | THeadToken + | THeadOpenToken + | THeadCloseToken + | TBodyToken + | TBodyOpenToken + | TBodyCloseToken + | TRToken + | TROpenToken + | TRCloseToken + | THToken + | THOpenToken + | THCloseToken + | TDToken + | TDOpenToken + | TDCloseToken + | LinkToken + | LinkOpenToken + | LinkCloseToken + | DelToken + | DelOpenToken + | DelCloseToken + | EmToken + | EmOpenToken + | EmCloseToken + | HardbreakToken + | SoftbreakToken + | FootnoteInlineToken + | HtmlTagToken + | InsToken + | InsOpenToken + | InsCloseToken + | ImageToken + | MarkToken + | MarkOpenToken + | MarkCloseToken + | SubToken + | SupToken + | AbbrToken + | AbbrOpenToken + | AbbrCloseToken + | FootnoteToken + | FootnoteOpenToken + | FootnoteCloseToken + | FootnoteBlockToken + | FootnoteBlockOpenToken + | FootnoteBlockCloseToken + | FootnoteAnchorToken; + } + + export class ParserBlock { + tokenize(state: Remarkable.StateBlock, startLine: number, endLine: number): void; + parse( + str: string, + options: Remarkable.Options, + env: Remarkable.Env, + tokens: [Remarkable.Token] + ): void; + } + + export class ParserInline { + skipToken(state: Remarkable.StateInline): void; + tokenize(state: Remarkable.StateInline): void; + parse( + str: string, + options: Remarkable.Options, + env: Remarkable.Env, + tokens: [Remarkable.Token] + ): void; + validateLink(url: string): boolean; + } } diff --git a/src/editor/word-count.ts b/src/editor/word-count.ts index 0a4aa0b9f..d42f7eb4c 100644 --- a/src/editor/word-count.ts +++ b/src/editor/word-count.ts @@ -1,27 +1,27 @@ import type { EditorState } from "draft-js"; export function createWordCount(str: string): number { - let regex = /(?:\r\n|\r|\n)/g; // new line, carriage return, line feed - let cleanString = str.replace(regex, " ").trim(); // replace above characters w/ space - let wordArray = cleanString.match(/\S+/g); // matches words according to whitespace + let regex = /(?:\r\n|\r|\n)/g; // new line, carriage return, line feed + let cleanString = str.replace(regex, " ").trim(); // replace above characters w/ space + let wordArray = cleanString.match(/\S+/g); // matches words according to whitespace - return wordArray ? wordArray.length : 0; + return wordArray ? wordArray.length : 0; } export function getSelectionCount(editorState: EditorState): number { - let selectionState = editorState.getSelection(); - let anchorKey = selectionState.getAnchorKey(); - let currentContent = editorState.getCurrentContent(); - let currentContentBlock = currentContent.getBlockForKey(anchorKey); - let start = selectionState.getStartOffset(); - let end = selectionState.getEndOffset(); - let selectedText = currentContentBlock.getText().slice(start, end); + let selectionState = editorState.getSelection(); + let anchorKey = selectionState.getAnchorKey(); + let currentContent = editorState.getCurrentContent(); + let currentContentBlock = currentContent.getBlockForKey(anchorKey); + let start = selectionState.getStartOffset(); + let end = selectionState.getEndOffset(); + let selectedText = currentContentBlock.getText().slice(start, end); - return createWordCount(selectedText); + return createWordCount(selectedText); } export function getWordCount(editorState: EditorState): number { - let plainText = editorState.getCurrentContent().getPlainText(""); + let plainText = editorState.getCurrentContent().getPlainText(""); - return createWordCount(plainText); + return createWordCount(plainText); } diff --git a/src/fixtures/entries/mock1.md b/src/fixtures/entries/mock1.md index b1c8fce58..b1a582212 100644 --- a/src/fixtures/entries/mock1.md +++ b/src/fixtures/entries/mock1.md @@ -27,11 +27,11 @@ Custom properties store any value you want. It can be a color, a `calc()` functi ```css :root { - --base-color: #147aab; + --base-color: #147aab; } a { - color: var(--base-color); + color: var(--base-color); } ``` @@ -39,13 +39,13 @@ You can also define a custom property at the selector level and then that proper ```css .Block { - --theme: #147aab; - border-top-color: var(--theme); - padding: 1rem; + --theme: #147aab; + border-top-color: var(--theme); + padding: 1rem; } .Block__title { - color: var(--theme); + color: var(--theme); } ``` @@ -53,7 +53,7 @@ You can optionally set a fallback in the `var()` function if that named variable ```css .Block { - color: var(--theme, #ffc600); + color: var(--theme, #ffc600); } ``` @@ -61,17 +61,17 @@ You can redefine custom properties at breakpoints. ```css :root { - --blue: #5886a7; + --blue: #5886a7; } html { - background: var(--blue, #ffc600); + background: var(--blue, #ffc600); } @media only screen and (min-width: 20rem) { - :root { - --blue: #147aab; - } + :root { + --blue: #147aab; + } } ``` @@ -81,12 +81,12 @@ Custom properties store values but you can't interpolate them like you can with ```css :root { - --size: 1.5; + --size: 1.5; } h1 { - font-size: var(--size) rem; /* Doesn't Work */ - font-size: calc(var(--size) * 1rem); /* Works Perfectly */ + font-size: var(--size) rem; /* Doesn't Work */ + font-size: calc(var(--size) * 1rem); /* Works Perfectly */ } ``` @@ -96,15 +96,15 @@ There's another [spec](http://tabatkins.github.io/specs/css-apply-rule/) related ```css :root { - --awesome-headline: { - text-transform: uppercase; - letter-spacing: 2px; - color: var(--base-color); - } + --awesome-headline: { + text-transform: uppercase; + letter-spacing: 2px; + color: var(--base-color); + } } h1 { - @apply --awesome-headline; + @apply --awesome-headline; } ``` diff --git a/src/fixtures/user-matrix.json b/src/fixtures/user-matrix.json index ca3e63df2..f43e8be4c 100644 --- a/src/fixtures/user-matrix.json +++ b/src/fixtures/user-matrix.json @@ -1,34 +1,34 @@ { - "users": [ - { - "username": "jester_tester1", - "password": "P@ssw0rd", - "email": "test1@tester.com" - }, - { - "username": "jester_tester2", - "password": "P@ssw0rd", - "email": "test2@tester.com" - }, - { - "username": "jester_tester3", - "password": "P@ssw0rd", - "email": "test3@tester.com" - }, - { - "username": "jester_tester4", - "password": "P@ssw0rd", - "email": "test4@tester.com" - }, - { - "username": "jester_tester5", - "password": "P@ssw0rd", - "email": "test5@tester.com" - }, - { - "username": "jester_tester6", - "password": "P@ssw0rd", - "email": "test6@tester.com" - } - ] + "users": [ + { + "username": "jester_tester1", + "password": "P@ssw0rd", + "email": "test1@tester.com" + }, + { + "username": "jester_tester2", + "password": "P@ssw0rd", + "email": "test2@tester.com" + }, + { + "username": "jester_tester3", + "password": "P@ssw0rd", + "email": "test3@tester.com" + }, + { + "username": "jester_tester4", + "password": "P@ssw0rd", + "email": "test4@tester.com" + }, + { + "username": "jester_tester5", + "password": "P@ssw0rd", + "email": "test5@tester.com" + }, + { + "username": "jester_tester6", + "password": "P@ssw0rd", + "email": "test6@tester.com" + } + ] } diff --git a/src/fixtures/user.json b/src/fixtures/user.json index c6c02fc27..56a0a4644 100644 --- a/src/fixtures/user.json +++ b/src/fixtures/user.json @@ -1,7 +1,7 @@ { - "user": { - "username": "testme_baby92", - "password": "P@ssw0rd", - "email": "test@tester.com" - } + "user": { + "username": "testme_baby92", + "password": "P@ssw0rd", + "email": "test@tester.com" + } } diff --git a/src/hooks/useAutosaving.ts b/src/hooks/useAutosaving.ts index 33b8575de..33ddda8eb 100644 --- a/src/hooks/useAutosaving.ts +++ b/src/hooks/useAutosaving.ts @@ -1,16 +1,16 @@ import { useInterval, useDataSource } from "."; export function useAutosaving( - duration: number = 5000, - cb?: (...args: any[]) => void, - message?: string + duration: number = 5000, + cb?: (...args: any[]) => void, + message?: string ) { - const dataSource = useDataSource(); + const dataSource = useDataSource(); - useInterval(duration, () => { - if (cb) { - dataSource.notifications.add(message || "Autosaving", true); - cb(); - } - }); + useInterval(duration, () => { + if (cb) { + dataSource.notifications.add(message || "Autosaving", true); + cb(); + } + }); } diff --git a/src/hooks/useDataSource.ts b/src/hooks/useDataSource.ts index 72af68233..84fa3adc5 100644 --- a/src/hooks/useDataSource.ts +++ b/src/hooks/useDataSource.ts @@ -6,14 +6,14 @@ import { useInterval } from "./useTimers"; const DataSourceContext = createContext(new DownwriteUIState()); export const useDataSource = () => { - return useContext(DataSourceContext); + return useContext(DataSourceContext); }; export const useCheckAuth = () => { - const dataSource = useDataSource(); - useInterval(60 * 2 * 1000, () => dataSource.auth.check()); + const dataSource = useDataSource(); + useInterval(60 * 2 * 1000, () => dataSource.auth.check()); }; export const useDataFactory = (Store: IStoreContructor): T => { - return useContext(DataSourceContext).createConnectedStore(Store); + return useContext(DataSourceContext).createConnectedStore(Store); }; diff --git a/src/hooks/useEditor.ts b/src/hooks/useEditor.ts index 0819d2da9..46648ad56 100644 --- a/src/hooks/useEditor.ts +++ b/src/hooks/useEditor.ts @@ -1,103 +1,103 @@ import { useState, useCallback, useMemo } from "react"; import { - EditorState, - EditorProps, - RichUtils, - CompositeDecorator, - convertFromRaw, - ContentState + EditorState, + EditorProps, + RichUtils, + CompositeDecorator, + convertFromRaw, + ContentState } from "draft-js"; import { getWordCount, getSelectionCount } from "../editor/word-count"; import { createEditorProps, IPropCreation } from "../editor/create-editor-props"; import { MultiDecorator } from "../editor/multidecorator"; interface IInitializeEditorState { - contentState?: ContentState; - decorators?: CompositeDecorator; + contentState?: ContentState; + decorators?: CompositeDecorator; } export const emptyContentState = convertFromRaw({ - entityMap: {}, - blocks: [ - { - text: "", - depth: 0, - key: "foo", - type: "unstyled", - inlineStyleRanges: [], - entityRanges: [] - } - ] + entityMap: {}, + blocks: [ + { + text: "", + depth: 0, + key: "foo", + type: "unstyled", + inlineStyleRanges: [], + entityRanges: [] + } + ] }); export const useEditorState = ({ - contentState, - decorators + contentState, + decorators }: IInitializeEditorState) => { - const [editorState, setEditorState] = useState(() => { - const state = EditorState.createWithContent( - contentState ?? emptyContentState, - decorators - ); + const [editorState, setEditorState] = useState(() => { + const state = EditorState.createWithContent( + contentState ?? emptyContentState, + decorators + ); - return state; - }); + return state; + }); - const getEditorState = () => editorState; + const getEditorState = () => editorState; - return [editorState, { setEditorState, getEditorState }] as const; + return [editorState, { setEditorState, getEditorState }] as const; }; export const useDecorators = ( - decorators: CompositeDecorator[] + decorators: CompositeDecorator[] ): CompositeDecorator => { - return useMemo(() => new MultiDecorator(decorators), [decorators]); + return useMemo(() => new MultiDecorator(decorators), [decorators]); }; export const useEditor = ( - state: IPropCreation + state: IPropCreation ): Omit => { - return useMemo>(() => { - const props = createEditorProps(state); - return { - ...props, - // onTab: (e: React.KeyboardEvent<{}>) => - // state.setEditorState(RichUtils.onTab(e, state.getEditorState(), 4)), - onChange: (editorState) => state.setEditorState(editorState) - }; - }, [state]); + return useMemo>(() => { + const props = createEditorProps(state); + return { + ...props, + // onTab: (e: React.KeyboardEvent<{}>) => + // state.setEditorState(RichUtils.onTab(e, state.getEditorState(), 4)), + onChange: (editorState) => state.setEditorState(editorState) + }; + }, [state]); }; export const useInlineStyles = ({ - onChange, - editorState + onChange, + editorState }: Pick) => { - const onBold = useCallback(() => { - const n = (editorState: EditorState) => - RichUtils.toggleInlineStyle(editorState, "BOLD"); - onChange(n(editorState)); - }, [onChange, editorState]); + const onBold = useCallback(() => { + const n = (editorState: EditorState) => + RichUtils.toggleInlineStyle(editorState, "BOLD"); + onChange(n(editorState)); + }, [onChange, editorState]); - const onItalic = useCallback(() => { - const n = (editorState: EditorState) => - RichUtils.toggleInlineStyle(editorState, "ITALIC"); - onChange(n(editorState)); - }, [onChange, editorState]); + const onItalic = useCallback(() => { + const n = (editorState: EditorState) => + RichUtils.toggleInlineStyle(editorState, "ITALIC"); + onChange(n(editorState)); + }, [onChange, editorState]); - return { - onBold, - onItalic - }; + return { + onBold, + onItalic + }; }; export const useWordCount = (editorState: EditorState | null) => { - return useMemo(() => { - if (editorState === null) { - return 0; - } + return useMemo(() => { + if (editorState === null) { + return 0; + } - const selection = getSelectionCount(editorState); - const words = getWordCount(editorState); - return selection > 0 ? selection : words; - }, [editorState]); + const selection = getSelectionCount(editorState); + const words = getWordCount(editorState); + return selection > 0 ? selection : words; + }, [editorState]); }; diff --git a/src/hooks/useEnhancedReducer.ts b/src/hooks/useEnhancedReducer.ts index 5506f96e1..804355586 100644 --- a/src/hooks/useEnhancedReducer.ts +++ b/src/hooks/useEnhancedReducer.ts @@ -4,16 +4,16 @@ type PrevStateFn = (prev: T) => T; type Callable = Partial | PrevStateFn; const reducer = (prev: T, action: Callable): T => { - if (typeof action === "function") { - return action(prev); - } else { - return { - ...prev, - ...action - }; - } + if (typeof action === "function") { + return action(prev); + } else { + return { + ...prev, + ...action + }; + } }; export function useEnhancedReducer(initialState: T) { - return useReducer>>(reducer, initialState); + return useReducer>>(reducer, initialState); } diff --git a/src/hooks/useLogging.ts b/src/hooks/useLogging.ts index 24656d33b..6ae4fb6a0 100644 --- a/src/hooks/useLogging.ts +++ b/src/hooks/useLogging.ts @@ -2,5 +2,5 @@ import { useEffect } from "react"; export function useLogging(label: string, deps: any[]) { - useEffect(() => console.log(label, deps), [deps, label]); + useEffect(() => console.log(label, deps), [deps, label]); } diff --git a/src/hooks/useOnce.ts b/src/hooks/useOnce.ts index e62d8e913..019e5b207 100644 --- a/src/hooks/useOnce.ts +++ b/src/hooks/useOnce.ts @@ -1,9 +1,9 @@ import { useEffect, useRef } from "react"; export function useOnce( - effectCallback: React.EffectCallback, - dep: React.DependencyList + effectCallback: React.EffectCallback, + dep: React.DependencyList ): void { - const loaded = useRef(false); - useEffect(loaded ? () => {} : effectCallback, dep); + const loaded = useRef(false); + useEffect(loaded ? () => {} : effectCallback, dep); } diff --git a/src/hooks/usePrevious.ts b/src/hooks/usePrevious.ts index b5a75d219..ad0a49bad 100644 --- a/src/hooks/usePrevious.ts +++ b/src/hooks/usePrevious.ts @@ -1,9 +1,9 @@ import { useRef, useEffect } from "react"; export function usePrevious(value: T): T | null { - const ref: React.MutableRefObject = useRef(null); - useEffect(() => { - ref.current = value; - }); - return ref.current; + const ref: React.MutableRefObject = useRef(null); + useEffect(() => { + ref.current = value; + }); + return ref.current; } diff --git a/src/hooks/useSubject.ts b/src/hooks/useSubject.ts index c91518988..4969fae76 100644 --- a/src/hooks/useSubject.ts +++ b/src/hooks/useSubject.ts @@ -3,35 +3,35 @@ import { useSubscription } from "use-subscription"; import { BehaviorSubject } from "rxjs"; export function useSubjectEffect(subject: BehaviorSubject): T { - const [value, dispatch] = useReducer( - (_n: T, action: T) => action, - subject.getValue() - ); + const [value, dispatch] = useReducer( + (_n: T, action: T) => action, + subject.getValue() + ); - useEffect(() => { - const subscription = subject.subscribe((n) => dispatch(n)); + useEffect(() => { + const subscription = subject.subscribe((n) => dispatch(n)); - return () => { - subscription.unsubscribe(); - }; - }, [subject]); + return () => { + subscription.unsubscribe(); + }; + }, [subject]); - return value; + return value; } export function useSubjectSubscription(behaviorSubject: BehaviorSubject) { - const subscription = useMemo( - () => ({ - getCurrentValue: () => behaviorSubject.getValue(), - subscribe: (callback: any) => { - const subscription = behaviorSubject.subscribe(callback); - return () => subscription.unsubscribe(); - } - }), + const subscription = useMemo( + () => ({ + getCurrentValue: () => behaviorSubject.getValue(), + subscribe: (callback: any) => { + const subscription = behaviorSubject.subscribe(callback); + return () => subscription.unsubscribe(); + } + }), - // Re-subscribe any time the behaviorSubject changes - [behaviorSubject] - ); + // Re-subscribe any time the behaviorSubject changes + [behaviorSubject] + ); - return useSubscription(subscription); + return useSubscription(subscription); } diff --git a/src/hooks/useTimers.ts b/src/hooks/useTimers.ts index f2dbeda46..9b2a02b6d 100644 --- a/src/hooks/useTimers.ts +++ b/src/hooks/useTimers.ts @@ -3,29 +3,29 @@ import { useEffect } from "react"; type Callback = () => void; export function useTimeout(interval: number = 500, cb?: Callback): void { - useEffect(() => { - if (cb) { - const t = setTimeout(() => { - cb(); - }, interval); + useEffect(() => { + if (cb) { + const t = setTimeout(() => { + cb(); + }, interval); - return function cleanup() { - clearTimeout(t); - }; - } - }, [interval, cb]); + return function cleanup() { + clearTimeout(t); + }; + } + }, [interval, cb]); } export function useInterval(interval: number = 500, cb?: Callback): void { - useEffect(() => { - if (cb) { - const t = setInterval(() => { - cb(); - }, interval); + useEffect(() => { + if (cb) { + const t = setInterval(() => { + cb(); + }, interval); - return function cleanup() { - clearInterval(t); - }; - } - }, [interval, cb]); + return function cleanup() { + clearInterval(t); + }; + } + }, [interval, cb]); } diff --git a/src/hooks/useUserAgent.ts b/src/hooks/useUserAgent.ts index e3c871010..9ed262ee7 100644 --- a/src/hooks/useUserAgent.ts +++ b/src/hooks/useUserAgent.ts @@ -2,13 +2,13 @@ import { useMemo } from "react"; import UAParser from "ua-parser-js"; export const useWarningForMobile = () => { - return useMemo(() => { - const parser = new UAParser(); - const browser = parser.getBrowser(); - const device = parser.getDevice(); - const isMobile = device.type === "mobile" || device.type === "tablet"; - const isWebKit = browser.name === "Safari" || browser.name === "Mobile Safari"; + return useMemo(() => { + const parser = new UAParser(); + const browser = parser.getBrowser(); + const device = parser.getDevice(); + const isMobile = device.type === "mobile" || device.type === "tablet"; + const isWebKit = browser.name === "Safari" || browser.name === "Mobile Safari"; - return isMobile && isWebKit; - }, []); + return isMobile && isWebKit; + }, []); }; diff --git a/src/markdown/legal.md b/src/markdown/legal.md index d66ff6bb5..dc364fcc4 100644 --- a/src/markdown/legal.md +++ b/src/markdown/legal.md @@ -1,8 +1,8 @@ ## Terms of Service > **TLDR**: You're accepting that any public entry containing libelous, profane or racist, -queerphobic, xenophobic or sexist content has the potential to be revoked -and set back to private at my discretion. +> queerphobic, xenophobic or sexist content has the potential to be revoked +> and set back to private at my discretion. ### 1. Terms @@ -48,9 +48,9 @@ These terms and conditions are governed by and construed in accordance with the ## Privacy Policy > **TLDR**: Any content, albeit your personal information or an entry, is private until you -opt out of making the entry private. I do not have the intention of selling, -repackaging for sale, any of your content. And obviously this site uses cookies and -disabling them is a bad idea. +> opt out of making the entry private. I do not have the intention of selling, +> repackaging for sale, any of your content. And obviously this site uses cookies and +> disabling them is a bad idea. Your privacy is important to us. @@ -64,21 +64,21 @@ It is Downwrite's policy to respect your privacy regarding any information we ma We may ask you for personal information, such as: -* Your name -* Email address -* Social media profile/s, and -* Contact details +- Your name +- Email address +- Social media profile/s, and +- Contact details This information is used for the purposes of: -* providing you with products and services -* providing you with information about our products and services -* managing and improving our products, services, quality control, administration, communication and internal processes -* personalising and customising your experience with us -* verifying your identity -* granting you access to your account with us -* investigating any enquiries or complaints submitted by or about you; and/or -* complying with regulatory or legal obligations +- providing you with products and services +- providing you with information about our products and services +- managing and improving our products, services, quality control, administration, communication and internal processes +- personalising and customising your experience with us +- verifying your identity +- granting you access to your account with us +- investigating any enquiries or complaints submitted by or about you; and/or +- complying with regulatory or legal obligations You are free to refuse our request for your personal information, with the understanding that we may be unable to provide you with some of your desired services. @@ -100,9 +100,9 @@ If you do not wish to accept cookies from us, you should instruct your browser t We employ third-party services for our: -* Website analytics -* Customer relationship management, and -* Advertising and remarketing +- Website analytics +- Customer relationship management, and +- Advertising and remarketing These third parties have access to selected personal information only to perform specific tasks on our behalf or to improve the relevance of information presented to you. We review the privacy policies of all our third-party providers before enlisting their services to ensure their practices align with ours. diff --git a/src/markdown/privacy-warning.md b/src/markdown/privacy-warning.md index ee5f6426a..ce770c0bd 100644 --- a/src/markdown/privacy-warning.md +++ b/src/markdown/privacy-warning.md @@ -1 +1 @@ -All posts are private by default, by selecting this option you're allowing anyone who has a URL to see the content. \ No newline at end of file +All posts are private by default, by selecting this option you're allowing anyone who has a URL to see the content. diff --git a/src/pages/404.tsx b/src/pages/404.tsx index 0b6b25a89..1b5fc051e 100644 --- a/src/pages/404.tsx +++ b/src/pages/404.tsx @@ -1,35 +1,35 @@ import { NextPage } from "next"; const Custom404: NextPage = () => { - return ( -
      -

      - 404Page Not Found -

      + return ( +
      +

      + 404Page Not Found +

      - -
      - ); + span { + font-family: var(--monospace); + font-weight: 700; + display: block; + margin-bottom: 1rem; + } + `} +
      + ); }; export default Custom404; diff --git a/src/pages/[id]/edit.tsx b/src/pages/[id]/edit.tsx index 36064ffab..8b1d5e9ce 100644 --- a/src/pages/[id]/edit.tsx +++ b/src/pages/[id]/edit.tsx @@ -21,200 +21,200 @@ import { Routes } from "@shared/routes"; import { __IS_DEV__ } from "@shared/constants"; const Editor = dynamic(() => import("@components/editor"), { - loading: () =>

      Loading the Editor

      , - ssr: false + loading: () =>

      Loading the Editor

      , + ssr: false }); const EditUI: NextPage = () => { - const router = useRouter(); - const dataSource = useDataFactory(UpdateEntryState); - const [state, dispatch] = useEnhancedReducer({ - publicStatus: false, - title: "", - initialFocus: false, - editorState: null - }); - - const { data, error, mutate } = useSWR([router.query.id, "edit"], () => - dataSource.getEntry(router.query.id as string) - ); - const loading = !data; - - useEffect(() => { - if (!!data) { - const nextState = dataSource.load(data.entry); - dispatch(nextState); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [data, dispatch]); - - const editorProps = useEditor({ - setEditorState: (editorState) => dispatch({ editorState }), - getEditorState: () => state.editorState - }); - - const displayCount = useWordCount(state.editorState); - - const handleSubmit = useCallback( - async (state: IEdit) => { - const value = await dataSource.submit(router.query.id as string, state); - - if (value) { - mutate( - { - entry: value.updateEntry - }, - false - ); - } - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [router.query, mutate] - ); - - useAutosaving( - __IS_DEV__ ? 30000 : 120000, - () => handleSubmit(state), - `Autosaving “${state.title ?? "Your Entry"}”` - ); - - if (error) { - return ( -
      -

      {error.name}

      -

      {error.message}

      -
      - ); - } - - if (loading) { - return ; - } - - const handleExport = () => - dataSource.exportEntry({ - editorState: state.editorState, - title: state.title, - date: data.entry.dateAdded - }); - - return ( -
      - -
      - -
      -
      - -
      -
      {state.title}
      -
      - {!!state.editorState && Word Count: {displayCount}} -
      -
      -
      - - - dispatch({ title: target.value })} - /> - - {!!state.editorState && ( - dispatch({ initialFocus: true })} - onSave={() => handleSubmit(state)} - {...editorProps} - editorState={state.editorState} - /> - )} -
      - -
      - ); + const router = useRouter(); + const dataSource = useDataFactory(UpdateEntryState); + const [state, dispatch] = useEnhancedReducer({ + publicStatus: false, + title: "", + initialFocus: false, + editorState: null + }); + + const { data, error, mutate } = useSWR([router.query.id, "edit"], () => + dataSource.getEntry(router.query.id as string) + ); + const loading = !data; + + useEffect(() => { + if (!!data) { + const nextState = dataSource.load(data.entry); + dispatch(nextState); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [data, dispatch]); + + const editorProps = useEditor({ + setEditorState: (editorState) => dispatch({ editorState }), + getEditorState: () => state.editorState + }); + + const displayCount = useWordCount(state.editorState); + + const handleSubmit = useCallback( + async (state: IEdit) => { + const value = await dataSource.submit(router.query.id as string, state); + + if (value) { + mutate( + { + entry: value.updateEntry + }, + false + ); + } + }, + // eslint-disable-next-line react-hooks/exhaustive-deps + [router.query, mutate] + ); + + useAutosaving( + __IS_DEV__ ? 30000 : 120000, + () => handleSubmit(state), + `Autosaving “${state.title ?? "Your Entry"}”` + ); + + if (error) { + return ( +
      +

      {error.name}

      +

      {error.message}

      +
      + ); + } + + if (loading) { + return ; + } + + const handleExport = () => + dataSource.exportEntry({ + editorState: state.editorState, + title: state.title, + date: data.entry.dateAdded + }); + + return ( +
      + +
      + +
      +
      + +
      +
      {state.title}
      +
      + {!!state.editorState && Word Count: {displayCount}} +
      +
      +
      + + + dispatch({ title: target.value })} + /> + + {!!state.editorState && ( + dispatch({ initialFocus: true })} + onSave={() => handleSubmit(state)} + {...editorProps} + editorState={state.editorState} + /> + )} +
      + +
      + ); }; export default EditUI; diff --git a/src/pages/[id]/preview.tsx b/src/pages/[id]/preview.tsx index 3b4afbbc2..c6a15a675 100644 --- a/src/pages/[id]/preview.tsx +++ b/src/pages/[id]/preview.tsx @@ -15,91 +15,91 @@ import { IPreview } from "../../__generated__/server"; import { useSubjectSubscription, useDataSource } from "@hooks/index"; interface IPreviewProps { - id: string; - preview: IPreview; - result: string; + id: string; + preview: IPreview; + result: string; } type PreviewPageHandler = GetServerSideProps; export const getServerSideProps: PreviewPageHandler = async ({ params }) => { - const id = params!.id; + const id = params!.id; - try { - const preview = await getPreviewEntry(id); - const _ = await toSafeHTML(preview.content); + try { + const preview = await getPreviewEntry(id); + const _ = await toSafeHTML(preview.content); - return { - props: { - id, - preview, - result: _ - } - }; - } catch (error) { - console.log(error); - return { - notFound: true - }; - } + return { + props: { + id, + preview, + result: _ + } + }; + } catch (error) { + console.log(error); + return { + notFound: true + }; + } }; const PreviewEntry: NextPage = (props) => { - const dataSource = useDataSource(); - const me = useSubjectSubscription(dataSource.auth.state); + const dataSource = useDataSource(); + const me = useSubjectSubscription(dataSource.auth.state); - const router = useRouter(); + const router = useRouter(); - return ( -
      - } - dateAdded={props.preview?.dateAdded!}> - - - - - - - - {!me.authed && ( -
      -

      - - You can write and share on Downwrite, you can sign up or log in{" "} - - - here - -

      -
      - )} -
      - -
      - ); + .outer { + padding: 0.5rem; + } + `} +
    + ); }; export default PreviewEntry; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 326bc6756..093e39311 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -6,10 +6,10 @@ import { useEffect } from "react"; import * as Analytics from "fathom-client"; import { UIShell } from "@components/ui-shell"; import { - OG_DESCRIPTION, - OG_IMAGE_URL, - BASE_OG_TITLE, - BASE_PROD_URL + OG_DESCRIPTION, + OG_IMAGE_URL, + BASE_OG_TITLE, + BASE_PROD_URL } from "@shared/constants"; import "@reach/menu-button/styles.css"; @@ -17,49 +17,49 @@ import "@reach/dialog/styles.css"; import "@reach/checkbox/styles.css"; const CustomAppWrapper = ({ Component, pageProps }: AppProps) => { - const router = useRouter(); - useEffect(() => { - Analytics.load("FENETBXC", { - includedDomains: [ - "downwrite.us", - "alpha.downwrite.us", - "beta.downwrite.us", - "next.downwrite.us" - ] - }); + const router = useRouter(); + useEffect(() => { + Analytics.load("FENETBXC", { + includedDomains: [ + "downwrite.us", + "alpha.downwrite.us", + "beta.downwrite.us", + "next.downwrite.us" + ] + }); - function onRouteChangeComplete() { - Analytics.trackPageview(); - } - router.events.on("routeChangeComplete", onRouteChangeComplete); + function onRouteChangeComplete() { + Analytics.trackPageview(); + } + router.events.on("routeChangeComplete", onRouteChangeComplete); - return () => { - router.events.off("routeChangeComplete", onRouteChangeComplete); - }; - }, [router.events]); + return () => { + router.events.off("routeChangeComplete", onRouteChangeComplete); + }; + }, [router.events]); - return ( - - - {BASE_OG_TITLE} - - - - - - - - - - - - - - - - - - ); + return ( + + + {BASE_OG_TITLE} + + + + + + + + + + + + + + + + + + ); }; export default CustomAppWrapper; diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx index 1db2f95d7..328365bbb 100644 --- a/src/pages/_document.tsx +++ b/src/pages/_document.tsx @@ -1,21 +1,21 @@ import Document, { Html, Head, Main, NextScript } from "next/document"; export default class CustomDocument extends Document { - render() { - return ( - - - - - - -
    - - - - ); - } + render() { + return ( + + + + + + +
    + + + + ); + } } diff --git a/src/pages/_error.tsx b/src/pages/_error.tsx index 60b13daef..239dc2936 100644 --- a/src/pages/_error.tsx +++ b/src/pages/_error.tsx @@ -3,31 +3,31 @@ import Head from "next/head"; import { NotFound } from "@components/not-found"; interface IErrorViewProps { - statusCode: number; + statusCode: number; } const ErrorPage: NextPage = (props) => { - const message = props.statusCode - ? "An error " + props.statusCode + " occurred on server" - : "An error occurred on client"; + const message = props.statusCode + ? "An error " + props.statusCode + " occurred on server" + : "An error occurred on client"; - return ( -
    - - Not Found | Downwrite - - + return ( +
    + + Not Found | Downwrite + + -

    Error

    -

    {message}

    - -
    - ); +

    Error

    +

    {message}

    + +
    + ); }; export default ErrorPage; diff --git a/src/pages/about.tsx b/src/pages/about.tsx index 7246398c7..d4cb74fdd 100644 --- a/src/pages/about.tsx +++ b/src/pages/about.tsx @@ -4,75 +4,75 @@ import { StaticContentWrapper } from "@components/content"; import { CustomMeta } from "@components/custom-meta"; const AboutDetails: NextPage = () => { - return ( -
    - - -
    -
    -

    - So the idea here was simple build a simple markdown writing - application. Markdown is a huge deal and all the cool tools kept - getting shut down and naively, I thought, how hard can this really be? - So I've had poorly designed iterations of this thing for every year - on the year as one of these services got shut down. When Canvas shut - down this last year, I started to get a little more serious about this - idea. -

    -

    - During planning out some of my quarterly goals at my last job I decided - to go a little more full-stack with Node and start to really work - through the process of building a microservice. Since I'm never - really one to learning languages and frameworks in the abstract, I - decided to take up Downwrite as an excuse to build those microservice. -

    -

    - Writing should be easy. But as each tool, each static site builder - comes and falls out of popularity or gets shut down, - **markdown** remains the central and portbale format. -

    + return ( +
    + + +
    +
    +

    + So the idea here was simple build a simple markdown writing + application. Markdown is a huge deal and all the cool tools kept + getting shut down and naively, I thought, how hard can this really be? + So I've had poorly designed iterations of this thing for every year + on the year as one of these services got shut down. When Canvas shut + down this last year, I started to get a little more serious about this + idea. +

    +

    + During planning out some of my quarterly goals at my last job I decided + to go a little more full-stack with Node and start to really work + through the process of building a microservice. Since I'm never + really one to learning languages and frameworks in the abstract, I + decided to take up Downwrite as an excuse to build those microservice. +

    +

    + Writing should be easy. But as each tool, each static site builder + comes and falls out of popularity or gets shut down, + **markdown** remains the central and portbale format. +

    -

    - The goal of building Downwrite was to create a place to write and share - content with that universal format; to be able to import and export in - markdown, to write in markdown and share your work. -

    -

    Features

    -

    All Markdown

    -

    - Downwrite lets you import markdown files, edit with markdown shortcuts - and export markdown file with YAML frontmatter that you can use in your - Jekyll / Gatsby / WordPress / whatever site. Markdown is a really - ubiquitous format. -

    -

    Share Your Work

    -

    - When you write and want to share your work, select the privacy setting - to make your entry public and get a URL to share. All posts are private - by default. -

    -

    Offline Support

    -

    - Sometimes when you're working you lose connectivity, Downwrite will - save a local draft of your work and let you work without a connection - and suggest a draft to save when you're back online. -

    -

    Why Markdown?

    -

    - Markdown is probably the most efficient and universal tool for - conveying syntax, semantics and structure across platforms. -

    -

    - Originally coined by John Gruber (Daring Fireball) it was originally - conceived as a text to HTML and is the stable of static site - generators, OSS and a fair amount. -

    -
    -
    -
    - -
    - ); +

    + The goal of building Downwrite was to create a place to write and share + content with that universal format; to be able to import and export in + markdown, to write in markdown and share your work. +

    +

    Features

    +

    All Markdown

    +

    + Downwrite lets you import markdown files, edit with markdown shortcuts + and export markdown file with YAML frontmatter that you can use in your + Jekyll / Gatsby / WordPress / whatever site. Markdown is a really + ubiquitous format. +

    +

    Share Your Work

    +

    + When you write and want to share your work, select the privacy setting + to make your entry public and get a URL to share. All posts are private + by default. +

    +

    Offline Support

    +

    + Sometimes when you're working you lose connectivity, Downwrite will + save a local draft of your work and let you work without a connection + and suggest a draft to save when you're back online. +

    +

    Why Markdown?

    +

    + Markdown is probably the most efficient and universal tool for + conveying syntax, semantics and structure across platforms. +

    +

    + Originally coined by John Gruber (Daring Fireball) it was originally + conceived as a text to HTML and is the stable of static site + generators, OSS and a fair amount. +

    +
    +
    +
    + +
    + ); }; export default AboutDetails; diff --git a/src/pages/api/graphql.ts b/src/pages/api/graphql.ts index 0c64ca149..930bd5d81 100644 --- a/src/pages/api/graphql.ts +++ b/src/pages/api/graphql.ts @@ -3,21 +3,21 @@ import { ResolverContext } from "@server/context"; import { schema } from "@server/schema"; const server = new ApolloServer({ - schema, - context(_: ResolverContext) { - return _; - }, - introspection: true + schema, + context(_: ResolverContext) { + return _; + }, + introspection: true }); export const config = { - api: { - bodyParser: false - } + api: { + bodyParser: false + } }; const handler = server.createHandler({ - path: "/api/graphql" + path: "/api/graphql" }); export default handler; diff --git a/src/pages/api/markdown.ts b/src/pages/api/markdown.ts index 4266a395c..ca6d1b37d 100644 --- a/src/pages/api/markdown.ts +++ b/src/pages/api/markdown.ts @@ -2,18 +2,18 @@ import { NextApiHandler } from "next"; import { mdToDraftjs, draftjsToMd } from "draftjs-md-converter"; const handler: NextApiHandler = async ({ body, query }, res) => { - const q = !!query && Array.isArray(query) ? query.join("") : query; - const isFromMarkdown = q === "fromMarkdown"; - if (isFromMarkdown) { - const { markdown } = body; + const q = !!query && Array.isArray(query) ? query.join("") : query; + const isFromMarkdown = q === "fromMarkdown"; + if (isFromMarkdown) { + const { markdown } = body; - const editorState = mdToDraftjs(markdown); + const editorState = mdToDraftjs(markdown); - res.json({ editorState }); - } else { - const markdown = draftjsToMd(body.rawEditorState); + res.json({ editorState }); + } else { + const markdown = draftjsToMd(body.rawEditorState); - res.json({ markdown }); - } + res.json({ markdown }); + } }; export default handler; diff --git a/src/pages/dashboard.tsx b/src/pages/dashboard.tsx index b2d531a5d..366f1f6cf 100644 --- a/src/pages/dashboard.tsx +++ b/src/pages/dashboard.tsx @@ -17,198 +17,198 @@ import { useEnhancedReducer, useDataFactory } from "@hooks/index"; import { Routes } from "@shared/routes"; const DashboardUI: NextPage = () => { - const dataSource = useDataFactory(DashboardState); - const [{ selected }, dispatch] = useEnhancedReducer<{ - selected: IPartialFeedItem | null; - }>({ - selected: null - }); - const { data, error, mutate } = useSWR(["dashboard"], () => dataSource.getFeed()); - - const loading = !data; - - const handleDelete = useCallback(() => { - if (selected !== null) { - dataSource.remove(selected.id).then((value) => { - dispatch(null); - - const mutated = dataSource.mutateFeedList(data, value.deleteEntry.id); - - mutate(mutated, false); - }); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [selected, data, mutate, dispatch]); - - const handleSelect = useCallback( - (feedItem: IPartialFeedItem) => { - dispatch({ selected: feedItem }); - }, - [dispatch] - ); - const handleCancel = useCallback( - () => - dispatch({ - selected: null - }), - [dispatch] - ); - - if (loading || (data === undefined && error === undefined)) { - return ( -
    - - - -
    - ); - } - - if (error) { - return ( -
    - -
    -

    {error.message}

    - - Let's sign in again. - -
    - -
    - ); - } - - if (data) { - const titlePrefix = - data.feed.length > 0 - ? data.feed.length.toString().concat(" Entries ") - : "No Entries "; - return ( -
    - - - - This app is currently in a major major beta. Swim at your own risk. - - - {selected !== null && ( - - - -
    -
    Delete Post
    -

    - Are you sure you want to delete{" "} - “{selected.title}”? -

    -
    -
    - - -
    -
    -
    - )} - {data.feed.length > 0 ? ( - - ) : ( -
    -
    -
    - Pen nip hovering over page -
    -
    -

    - Looks like you don't have any entries -

    - - Get Started → - -
    -
    -
    - )} - - - - -
    - ); - } - - return null; + const dataSource = useDataFactory(DashboardState); + const [{ selected }, dispatch] = useEnhancedReducer<{ + selected: IPartialFeedItem | null; + }>({ + selected: null + }); + const { data, error, mutate } = useSWR(["dashboard"], () => dataSource.getFeed()); + + const loading = !data; + + const handleDelete = useCallback(() => { + if (selected !== null) { + dataSource.remove(selected.id).then((value) => { + dispatch(null); + + const mutated = dataSource.mutateFeedList(data, value.deleteEntry.id); + + mutate(mutated, false); + }); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [selected, data, mutate, dispatch]); + + const handleSelect = useCallback( + (feedItem: IPartialFeedItem) => { + dispatch({ selected: feedItem }); + }, + [dispatch] + ); + const handleCancel = useCallback( + () => + dispatch({ + selected: null + }), + [dispatch] + ); + + if (loading || (data === undefined && error === undefined)) { + return ( +
    + + + +
    + ); + } + + if (error) { + return ( +
    + +
    +

    {error.message}

    + + Let's sign in again. + +
    + +
    + ); + } + + if (data) { + const titlePrefix = + data.feed.length > 0 + ? data.feed.length.toString().concat(" Entries ") + : "No Entries "; + return ( +
    + + + + This app is currently in a major major beta. Swim at your own risk. + + + {selected !== null && ( + + + +
    +
    Delete Post
    +

    + Are you sure you want to delete{" "} + “{selected.title}”? +

    +
    +
    + + +
    +
    +
    + )} + {data.feed.length > 0 ? ( + + ) : ( +
    +
    +
    + Pen nip hovering over page +
    +
    +

    + Looks like you don't have any entries +

    + + Get Started → + +
    +
    +
    + )} + + + + +
    + ); + } + + return null; }; export default DashboardUI; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 694fe878f..fe780d159 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -6,96 +6,96 @@ import { SiteFooter } from "@components/footer"; import { CustomMeta } from "@components/custom-meta"; const IndexPage: NextPage = () => { - return ( -
    - -
    -
    -

    - Editing & Sharing Shouldn't Be Hard.{" "} - Writing Should Be -

    -

    Downwrite is a place to write

    -
    -
    -

    - Between every word processor ever and every other way to write, we need a - minimal solution that uses a central set of syntax: Markdown. -

    -

    Focus on Markdown

    -

    - Writing should be easy. But as each tool, each static site builder comes - and falls out of popularity or gets shut down, - **markdown** remains the central and portbale format. -

    + return ( +
    + +
    +
    +

    + Editing & Sharing Shouldn't Be Hard.{" "} + Writing Should Be +

    +

    Downwrite is a place to write

    +
    +
    +

    + Between every word processor ever and every other way to write, we need a + minimal solution that uses a central set of syntax: Markdown. +

    +

    Focus on Markdown

    +

    + Writing should be easy. But as each tool, each static site builder comes + and falls out of popularity or gets shut down, + **markdown** remains the central and portbale format. +

    -

    - The goal of building Downwrite was to create a place to write and share - content with that universal format; to be able to import and export in - markdown, to write in markdown and share your work. -

    -

    Sign up for early access to simply your writing workflow.

    -
    - -
    - +

    + The goal of building Downwrite was to create a place to write and share + content with that universal format; to be able to import and export in + markdown, to write in markdown and share your work. +

    +

    Sign up for early access to simply your writing workflow.

    +
    + +
    + - + aside > div { + display: flex; + justify-content: center; + } + `} - -
    - ); + +
    + ); }; export default IndexPage; diff --git a/src/pages/legal.tsx b/src/pages/legal.tsx index f76a89649..1e2dfce5a 100644 --- a/src/pages/legal.tsx +++ b/src/pages/legal.tsx @@ -4,334 +4,334 @@ import { SiteFooter } from "@components/footer"; import { StaticContentWrapper } from "@components/content"; const LegalPage: NextPage = (): JSX.Element => { - return ( -
    - - -
    -
    -

    Terms of Service

    - -
    -

    - TLDR: You're accepting that any public entry - containing libelous, profane or racist, queerphobic, xenophobic or - sexist content has the potential to be revoked and set back to - private at my discretion. -

    -
    - -

    1. Terms

    - -

    - By accessing the website at - http://downwrite.us, you are agreeing - to be bound by these terms of service, all applicable laws and - regulations, and agree that you are responsible for compliance with any - applicable local laws. If you do not agree with any of these terms, you - are prohibited from using or accessing this site. The materials - contained in this website are protected by applicable copyright and - trademark law. -

    - -

    2. Use License

    - -
      -
    1. -

      - Permission is granted to temporarily download one copy of the - materials (information or software) on Downwrite's website for - personal, non-commercial transitory viewing only. This is the grant - of a license, not a transfer of title, and under this license you - may not: -

      -
    2. -
    3. -

      modify or copy the materials;

      -
    4. -
    5. - use the materials for any commercial purpose, or for any public - display (commercial or non-commercial); -
    6. -
    7. - attempt to decompile or reverse engineer any software contained on - Downwrite's website; -
    8. -
    9. - remove any copyright or other proprietary notations from the - materials; or -
    10. -
    11. -

      - transfer the materials to another person or "mirror" the - materials on any other server. -

      -
    12. -
    13. -

      - This license shall automatically terminate if you violate any of - these restrictions and may be terminated by Downwrite at any time. - Upon terminating your viewing of these materials or upon the - termination of this license, you must destroy any downloaded - materials in your possession whether in electronic or printed - format. -

      -
    14. -
    - -

    3. Disclaimer

    - -
      -
    1. - The materials on Downwrite's website are provided on an 'as - is' basis. Downwrite makes no warranties, expressed or implied, - and hereby disclaims and negates all other warranties including, - without limitation, implied warranties or conditions of - merchantability, fitness for a particular purpose, or - non-infringement of intellectual property or other violation of - rights. -
    2. -
    3. - Further, Downwrite does not warrant or make any representations - concerning the accuracy, likely results, or reliability of the use of - the materials on its website or otherwise relating to such materials - or on any sites linked to this site. -
    4. -
    - -

    4. Limitations

    - -

    - In no event shall Downwrite or its suppliers be liable for any damages - (including, without limitation, damages for loss of data or profit, or - due to business interruption) arising out of the use or inability to - use the materials on Downwrite's website, even if Downwrite or a - Downwrite authorized representative has been notified orally or in - writing of the possibility of such damage. Because some jurisdictions - do not allow limitations on implied warranties, or limitations of - liability for consequential or incidental damages, these limitations - may not apply to you. -

    - -

    5. Accuracy of materials

    - -

    - The materials appearing on Downwrite website could include technical, - typographical, or photographic errors. Downwrite does not warrant that - any of the materials on its website are accurate, complete or current. - Downwrite may make changes to the materials contained on its website at - any time without notice. However Downwrite does not make any commitment - to update the materials. -

    - -

    6. Links

    - -

    - Downwrite has not reviewed all of the sites linked to its website and - is not responsible for the contents of any such linked site. The - inclusion of any link does not imply endorsement by Downwrite of the - site. Use of any such linked website is at the user's own risk. -

    - -

    7. Modifications

    - -

    - Downwrite may revise these terms of service for its website at any time - without notice. By using this website you are agreeing to be bound by - the then current version of these terms of service. -

    - -

    8. Governing Law

    - -

    - These terms and conditions are governed by and construed in accordance - with the laws of WA and you irrevocably submit to the exclusive - jurisdiction of the courts in that State or location. -

    - -

    Privacy Policy

    - -
    -

    - TLDR: Any content, albeit your personal information - or an entry, is private until you opt out of making the entry - private. I do not have the intention of selling, repackaging for - sale, any of your content. And obviously this site uses cookies and - disabling them is a bad idea. -

    -
    - -

    Your privacy is important to us.

    - -

    - As a web-based service provider, we require some personal information - in order to provide a service to you. -

    - -

    - However, we don’t ask for this information unless we truly need it. -

    - -

    - It is Downwrite's policy to respect your privacy regarding any - information we may collect from you across our website, - http://downwrite.us. -

    - -

    Personal Information

    - -

    We may ask you for personal information, such as:

    - -
      -
    • Your name
    • -
    • Email address
    • -
    • Social media profile/s, and
    • -
    • Contact details
    • -
    - -

    This information is used for the purposes of:

    - -
      -
    • providing you with products and services
    • -
    • providing you with information about our products and services
    • -
    • - managing and improving our products, services, quality control, - administration, communication and internal processes -
    • -
    • personalising and customising your experience with us
    • -
    • verifying your identity
    • -
    • granting you access to your account with us
    • -
    • - investigating any enquiries or complaints submitted by or about you; - and/or -
    • -
    • complying with regulatory or legal obligations
    • -
    - -

    - You are free to refuse our request for your personal information, with - the understanding that we may be unable to provide you with some of - your desired services. -

    - -

    - We do not share your personal information with third-parties, except - where required by law, to protect our own rights, or to provide a - service to you. -

    - -

    - We will only retain personal information for as long as necessary to - provide you with a service. -

    - -

    Business Data

    - -

    - Our respect for your privacy extends to the data you input into our - website over the normal course of using our services. We will not share - your data with third-parties, except where required by law, to protect - our own rights, or to provide a service to you. We may, however, - disclose anonymised and aggregated versions of this information for - business, marketing or public relations purposes. We will only retain - your data for as long as necessary to provide you with a service. -

    - -

    Cookies

    - -

    - We use "cookies" to collect information about you and your - activity across our site. A cookie is a small piece of data that our - website stores on your computer, and accesses each time you visit so we - can understand how you use our site and serve you content based on - preferences you have specified. -

    - -

    - If you do not wish to accept cookies from us, you should instruct your - browser to refuse cookies from our website, with the understanding that - we may be unable to provide you with some of your desired service - without them. This policy covers only the use of cookies between your - computer and our website; it does not cover the use of cookies by any - advertisers. -

    - -

    Third-Party Services

    - -

    We employ third-party services for our:

    - -
      -
    • Website analytics
    • -
    • Customer relationship management, and
    • -
    • Advertising and remarketing
    • -
    - -

    - These third parties have access to selected personal information only - to perform specific tasks on our behalf or to improve the relevance of - information presented to you. We review the privacy policies of all our - third-party providers before enlisting their services to ensure their - practices align with ours. -

    - -

    Security

    - -

    - We take security seriously, and do what we can within commercially - acceptable means to protect your personal information from loss or - theft, as well as unauthorized access, disclosure, copying, use or - modification. That said, we advise that no method of electronic - transmission or storage is 100% secure, and cannot guarantee the - absolute security of your data. -

    - -

    Links to Other Sites

    - -

    - Our website may link to external sites that are not operated by us. - Please be aware that we have no control over the content and practices - of these sites, and cannot assume responsibility for their treatment of - your personal information. This privacy policy only covers our website - and privacy practices. -

    - -

    Children’s Privacy

    - -

    - We do not knowingly collect or store personal information from children - (visitors under the age of 13). If you believe your child has provided - us with personal information, we encourage you to contact us - immediately, and we will do our best to delete the data as quickly as - possible. -

    - -

    Changes to our Privacy Policy

    - -

    - At our discretion, we may change our privacy policy from time to time. - Any changes will be reflected here, so we encourage you to visit this - page regularly. We will also notify our registered users of updates to - our policy. Your continued use of this site after any changes to this - policy will be regarded as acceptance of our practices around privacy - and personal information. -

    - -

    Business Transfers

    - -

    - If we or our assets are acquired, or in the unlikely event that we go - out of business or enter bankruptcy, we would include user information - among our assets transferred to or acquired by a third party. You - acknowledge that such transfers may occur, and that any parties who - acquire us may continue to use your personal information according to - this policy. -

    -
    -
    -
    - -
    - ); + return ( +
    + + +
    +
    +

    Terms of Service

    + +
    +

    + TLDR: You're accepting that any public entry + containing libelous, profane or racist, queerphobic, xenophobic or + sexist content has the potential to be revoked and set back to + private at my discretion. +

    +
    + +

    1. Terms

    + +

    + By accessing the website at + http://downwrite.us, you are agreeing + to be bound by these terms of service, all applicable laws and + regulations, and agree that you are responsible for compliance with any + applicable local laws. If you do not agree with any of these terms, you + are prohibited from using or accessing this site. The materials + contained in this website are protected by applicable copyright and + trademark law. +

    + +

    2. Use License

    + +
      +
    1. +

      + Permission is granted to temporarily download one copy of the + materials (information or software) on Downwrite's website for + personal, non-commercial transitory viewing only. This is the grant + of a license, not a transfer of title, and under this license you + may not: +

      +
    2. +
    3. +

      modify or copy the materials;

      +
    4. +
    5. + use the materials for any commercial purpose, or for any public + display (commercial or non-commercial); +
    6. +
    7. + attempt to decompile or reverse engineer any software contained on + Downwrite's website; +
    8. +
    9. + remove any copyright or other proprietary notations from the + materials; or +
    10. +
    11. +

      + transfer the materials to another person or "mirror" the + materials on any other server. +

      +
    12. +
    13. +

      + This license shall automatically terminate if you violate any of + these restrictions and may be terminated by Downwrite at any time. + Upon terminating your viewing of these materials or upon the + termination of this license, you must destroy any downloaded + materials in your possession whether in electronic or printed + format. +

      +
    14. +
    + +

    3. Disclaimer

    + +
      +
    1. + The materials on Downwrite's website are provided on an 'as + is' basis. Downwrite makes no warranties, expressed or implied, + and hereby disclaims and negates all other warranties including, + without limitation, implied warranties or conditions of + merchantability, fitness for a particular purpose, or + non-infringement of intellectual property or other violation of + rights. +
    2. +
    3. + Further, Downwrite does not warrant or make any representations + concerning the accuracy, likely results, or reliability of the use of + the materials on its website or otherwise relating to such materials + or on any sites linked to this site. +
    4. +
    + +

    4. Limitations

    + +

    + In no event shall Downwrite or its suppliers be liable for any damages + (including, without limitation, damages for loss of data or profit, or + due to business interruption) arising out of the use or inability to + use the materials on Downwrite's website, even if Downwrite or a + Downwrite authorized representative has been notified orally or in + writing of the possibility of such damage. Because some jurisdictions + do not allow limitations on implied warranties, or limitations of + liability for consequential or incidental damages, these limitations + may not apply to you. +

    + +

    5. Accuracy of materials

    + +

    + The materials appearing on Downwrite website could include technical, + typographical, or photographic errors. Downwrite does not warrant that + any of the materials on its website are accurate, complete or current. + Downwrite may make changes to the materials contained on its website at + any time without notice. However Downwrite does not make any commitment + to update the materials. +

    + +

    6. Links

    + +

    + Downwrite has not reviewed all of the sites linked to its website and + is not responsible for the contents of any such linked site. The + inclusion of any link does not imply endorsement by Downwrite of the + site. Use of any such linked website is at the user's own risk. +

    + +

    7. Modifications

    + +

    + Downwrite may revise these terms of service for its website at any time + without notice. By using this website you are agreeing to be bound by + the then current version of these terms of service. +

    + +

    8. Governing Law

    + +

    + These terms and conditions are governed by and construed in accordance + with the laws of WA and you irrevocably submit to the exclusive + jurisdiction of the courts in that State or location. +

    + +

    Privacy Policy

    + +
    +

    + TLDR: Any content, albeit your personal information + or an entry, is private until you opt out of making the entry + private. I do not have the intention of selling, repackaging for + sale, any of your content. And obviously this site uses cookies and + disabling them is a bad idea. +

    +
    + +

    Your privacy is important to us.

    + +

    + As a web-based service provider, we require some personal information + in order to provide a service to you. +

    + +

    + However, we don’t ask for this information unless we truly need it. +

    + +

    + It is Downwrite's policy to respect your privacy regarding any + information we may collect from you across our website, + http://downwrite.us. +

    + +

    Personal Information

    + +

    We may ask you for personal information, such as:

    + +
      +
    • Your name
    • +
    • Email address
    • +
    • Social media profile/s, and
    • +
    • Contact details
    • +
    + +

    This information is used for the purposes of:

    + +
      +
    • providing you with products and services
    • +
    • providing you with information about our products and services
    • +
    • + managing and improving our products, services, quality control, + administration, communication and internal processes +
    • +
    • personalising and customising your experience with us
    • +
    • verifying your identity
    • +
    • granting you access to your account with us
    • +
    • + investigating any enquiries or complaints submitted by or about you; + and/or +
    • +
    • complying with regulatory or legal obligations
    • +
    + +

    + You are free to refuse our request for your personal information, with + the understanding that we may be unable to provide you with some of + your desired services. +

    + +

    + We do not share your personal information with third-parties, except + where required by law, to protect our own rights, or to provide a + service to you. +

    + +

    + We will only retain personal information for as long as necessary to + provide you with a service. +

    + +

    Business Data

    + +

    + Our respect for your privacy extends to the data you input into our + website over the normal course of using our services. We will not share + your data with third-parties, except where required by law, to protect + our own rights, or to provide a service to you. We may, however, + disclose anonymised and aggregated versions of this information for + business, marketing or public relations purposes. We will only retain + your data for as long as necessary to provide you with a service. +

    + +

    Cookies

    + +

    + We use "cookies" to collect information about you and your + activity across our site. A cookie is a small piece of data that our + website stores on your computer, and accesses each time you visit so we + can understand how you use our site and serve you content based on + preferences you have specified. +

    + +

    + If you do not wish to accept cookies from us, you should instruct your + browser to refuse cookies from our website, with the understanding that + we may be unable to provide you with some of your desired service + without them. This policy covers only the use of cookies between your + computer and our website; it does not cover the use of cookies by any + advertisers. +

    + +

    Third-Party Services

    + +

    We employ third-party services for our:

    + +
      +
    • Website analytics
    • +
    • Customer relationship management, and
    • +
    • Advertising and remarketing
    • +
    + +

    + These third parties have access to selected personal information only + to perform specific tasks on our behalf or to improve the relevance of + information presented to you. We review the privacy policies of all our + third-party providers before enlisting their services to ensure their + practices align with ours. +

    + +

    Security

    + +

    + We take security seriously, and do what we can within commercially + acceptable means to protect your personal information from loss or + theft, as well as unauthorized access, disclosure, copying, use or + modification. That said, we advise that no method of electronic + transmission or storage is 100% secure, and cannot guarantee the + absolute security of your data. +

    + +

    Links to Other Sites

    + +

    + Our website may link to external sites that are not operated by us. + Please be aware that we have no control over the content and practices + of these sites, and cannot assume responsibility for their treatment of + your personal information. This privacy policy only covers our website + and privacy practices. +

    + +

    Children’s Privacy

    + +

    + We do not knowingly collect or store personal information from children + (visitors under the age of 13). If you believe your child has provided + us with personal information, we encourage you to contact us + immediately, and we will do our best to delete the data as quickly as + possible. +

    + +

    Changes to our Privacy Policy

    + +

    + At our discretion, we may change our privacy policy from time to time. + Any changes will be reflected here, so we encourage you to visit this + page regularly. We will also notify our registered users of updates to + our policy. Your continued use of this site after any changes to this + policy will be regarded as acceptance of our practices around privacy + and personal information. +

    + +

    Business Transfers

    + +

    + If we or our assets are acquired, or in the unlikely event that we go + out of business or enter bankruptcy, we would include user information + among our assets transferred to or acquired by a third party. You + acknowledge that such transfers may occur, and that any parties who + acquire us may continue to use your personal information according to + this policy. +

    +
    +
    +
    + +
    + ); }; export default LegalPage; diff --git a/src/pages/login.tsx b/src/pages/login.tsx index b2c307cb3..221a6d535 100644 --- a/src/pages/login.tsx +++ b/src/pages/login.tsx @@ -13,134 +13,134 @@ import { loginForm, zodAdapter } from "@shared/validations"; import { Routes } from "@shared/routes"; const LoginPage: NextPage = () => { - const router = useRouter(); - const dataSource = useDataSource(); - const formik = useFormik({ - initialValues: { - user: "", - password: "" - }, - validationSchema: zodAdapter(loginForm), - validateOnChange: false, - validateOnMount: false, - onSubmit(values) { - dataSource.auth.login(values).then(() => router.push(Routes.DASHBOARD)); - } - }); + const router = useRouter(); + const dataSource = useDataSource(); + const formik = useFormik({ + initialValues: { + user: "", + password: "" + }, + validationSchema: zodAdapter(loginForm), + validateOnChange: false, + validateOnMount: false, + onSubmit(values) { + dataSource.auth.login(values).then(() => router.push(Routes.DASHBOARD)); + } + }); - return ( -
    - -
    -
    - Downwrite Logo + return ( +
    + +
    +
    + Downwrite Logo -

    Login

    -
    +

    Login

    +
    -
    -
    -

    Welcome Back!

    -

    - Don't have an account?{" "} - - Register - -

    -
    -
    -
    - - {formik.errors.user && ( - {formik.errors.user} - )} -
    -
    - - {formik.errors.password && ( - {formik.errors.password} - )} -
    -
    - -
    -
    -
    -
    - - -
    - ); + .tabs { + background: var(--surface); + box-shadow: 0 2px 6px 0 hsla(0, 0%, 0%, 0.2); + } + `} +
    + ); }; export default LoginPage; diff --git a/src/pages/new.tsx b/src/pages/new.tsx index 8d63b1629..56c2e419d 100644 --- a/src/pages/new.tsx +++ b/src/pages/new.tsx @@ -16,101 +16,101 @@ import { imageLinkDecorators, prismHighlightDecorator } from "../editor"; const Editor = dynamic(() => import("@components/editor")); const NewEntryPage: NextPage = () => { - const router = useRouter(); - const dataSource = useDataFactory(CreateEntryState); - const decorators = useDecorators([imageLinkDecorators, prismHighlightDecorator]); - const [state, dispatch] = useEnhancedReducer({ - title: "", - editorState: EditorState.createWithContent(emptyContentState, decorators) - }); + const router = useRouter(); + const dataSource = useDataFactory(CreateEntryState); + const decorators = useDecorators([imageLinkDecorators, prismHighlightDecorator]); + const [state, dispatch] = useEnhancedReducer({ + title: "", + editorState: EditorState.createWithContent(emptyContentState, decorators) + }); - const getState = () => state; + const getState = () => state; - const editorProps = useEditor({ - getEditorState: () => getState().editorState, - setEditorState: (editorState) => dispatch({ editorState }) - }); + const editorProps = useEditor({ + getEditorState: () => getState().editorState, + setEditorState: (editorState) => dispatch({ editorState }) + }); - const hasUnsavedChanges = useMemo(() => { - const content = state.editorState.getCurrentContent(); + const hasUnsavedChanges = useMemo(() => { + const content = state.editorState.getCurrentContent(); - return content.hasText() || state.title !== ""; - }, [state]); + return content.hasText() || state.title !== ""; + }, [state]); - const handleSubmit = async () => { - const content = state.editorState.getCurrentContent(); - if (content.hasText() || state.title !== "") { - const data = await dataSource.create({ - ...state - }); + const handleSubmit = async () => { + const content = state.editorState.getCurrentContent(); + if (content.hasText() || state.title !== "") { + const data = await dataSource.create({ + ...state + }); - if (!!data) { - router.push(`/${data.createEntry?.id}/edit`); - } - } - }; + if (!!data) { + router.push(`/${data.createEntry?.id}/edit`); + } + } + }; - const onDrop = useCallback( - (acceptedFiles: File[]) => { - dataSource.onDrop(acceptedFiles).then(({ title, editorState }) => { - dispatch({ title, editorState }); - }); - }, - [dataSource, dispatch] - ); + const onDrop = useCallback( + (acceptedFiles: File[]) => { + dataSource.onDrop(acceptedFiles).then(({ title, editorState }) => { + dispatch({ title, editorState }); + }); + }, + [dataSource, dispatch] + ); - const handleChange: React.ChangeEventHandler = useCallback( - (e) => { - dispatch({ title: e.target.value }); - }, - [dispatch] - ); + const handleChange: React.ChangeEventHandler = useCallback( + (e) => { + dispatch({ title: e.target.value }); + }, + [dispatch] + ); - const { getRootProps } = useDropzone({ - onDrop, - multiple: false, - accept: ["text/markdown", "text/x-markdown", "text/plain"] - }); + const { getRootProps } = useDropzone({ + onDrop, + multiple: false, + accept: ["text/markdown", "text/x-markdown", "text/plain"] + }); - return ( -
    - -
    - - -
    - {hasUnsavedChanges && ( - - )} -
    -
    - handleSubmit()} - {...editorProps} - editorState={state.editorState} - /> -
    - -
    - ); + return ( +
    + +
    + + +
    + {hasUnsavedChanges && ( + + )} +
    +
    + handleSubmit()} + {...editorProps} + editorState={state.editorState} + /> +
    + +
    + ); }; export default NewEntryPage; diff --git a/src/pages/register.tsx b/src/pages/register.tsx index 548c82102..7620b95a6 100644 --- a/src/pages/register.tsx +++ b/src/pages/register.tsx @@ -14,165 +14,165 @@ import { registerForm, zodAdapter } from "@shared/validations"; import { Routes } from "@shared/routes"; const RegisterPage: NextPage = () => { - const router = useRouter(); - const dataSource = useDataSource(); - - const formik = useFormik({ - initialValues: { - legalChecked: false, - username: "", - password: "", - email: "" - }, - validationSchema: zodAdapter(registerForm), - validateOnChange: false, - validateOnMount: false, - onSubmit(values) { - dataSource.auth.register(values).then(() => router.push(Routes.DASHBOARD)); - } - }); - - return ( -
    - -
    -
    - Downwrite Logo - -

    Register

    -
    - -
    -
    -

    Register as a New User

    -
    -
    -
    -
    - - {formik.errors["username"] && ( - {formik.errors["username"]} - )} -
    -
    - - {formik.errors["email"] && ( - {formik.errors["email"]} - )} -
    -
    - - {formik.errors["password"] && ( - {formik.errors["password"]} - )} -
    -
    - - -
    - -
    -
    -
    -
    - - -
    - ); + const router = useRouter(); + const dataSource = useDataSource(); + + const formik = useFormik({ + initialValues: { + legalChecked: false, + username: "", + password: "", + email: "" + }, + validationSchema: zodAdapter(registerForm), + validateOnChange: false, + validateOnMount: false, + onSubmit(values) { + dataSource.auth.register(values).then(() => router.push(Routes.DASHBOARD)); + } + }); + + return ( +
    + +
    +
    + Downwrite Logo + +

    Register

    +
    + +
    +
    +

    Register as a New User

    +
    +
    +
    +
    + + {formik.errors["username"] && ( + {formik.errors["username"]} + )} +
    +
    + + {formik.errors["email"] && ( + {formik.errors["email"]} + )} +
    +
    + + {formik.errors["password"] && ( + {formik.errors["password"]} + )} +
    +
    + + +
    + +
    +
    +
    +
    + + +
    + ); }; export default RegisterPage; diff --git a/src/pages/settings.tsx b/src/pages/settings.tsx index cf83a169e..e9ff4900e 100644 --- a/src/pages/settings.tsx +++ b/src/pages/settings.tsx @@ -11,372 +11,372 @@ import { SiteFooter } from "@components/footer"; import { useDataSource } from "@hooks/useDataSource"; import type { IUserFormValues } from "@data/base/settings"; import { - userSettings, - updatePassword, - localSettings, - zodAdapter + userSettings, + updatePassword, + localSettings, + zodAdapter } from "@shared/validations"; interface ILocalSettings { - fileExtension: string; + fileExtension: string; } interface IPasswordSettings { - oldPassword: string; - newPassword: string; - confirmPassword: string; + oldPassword: string; + newPassword: string; + confirmPassword: string; } const SettingsPage = () => { - const adaptedSchemas = useMemo(() => { - return { - userSettings: zodAdapter(userSettings), - updatePassword: zodAdapter(updatePassword), - localSettings: zodAdapter(localSettings) - }; - }, []); - const [isOpen, onToggleOpen] = useReducer((prev: boolean) => !prev, false); - const dataSource = useDataSource(); - const { error, data } = useSWR(["settings"], () => - dataSource.graphql.userDetails() - ); - - const initialMarkdownValues = useRef<() => ILocalSettings>(() => ({ - fileExtension: dataSource.settings.fileExtension || ".md" - })); - - const markdownForm = useFormik({ - initialValues: initialMarkdownValues.current(), - validationSchema: adaptedSchemas.localSettings, - onSubmit(values) { - dataSource.settings.fileExtension = values.fileExtension; - - dataSource.settings.handleSettingsUpdate(values); - } - }); - - const passwordForm = useFormik({ - initialValues: { - oldPassword: "", - newPassword: "", - confirmPassword: "" - }, - async onSubmit(_: IPasswordSettings, actions) { - await actions.validateForm(); - await dataSource.settings.changePassword(_); - }, - validationSchema: adaptedSchemas.updatePassword - }); - - const userForm = useFormik({ - initialValues: { ...data?.settings }, - onSubmit(values) { - dataSource.settings.update(values); - }, - validationSchema: adaptedSchemas.userSettings - }); - - const loading = !data; - - if (loading) { - return ; - } - - if (error) { - return ( -
    -
    {JSON.stringify(error, null, 2)}
    -
    - ); - } - - return ( -
    - -
    -

    Settings

    -
    - -
    -
    -
    -
    Total Entries
    -
    {data?.me.usage.entryCount}
    -
    -
    -
    Public Entries
    -
    {data?.me.usage.publicEntries}
    -
    -
    -
    Private Entries
    -
    {data?.me.usage.privateEntries}
    -
    -
    -
    - -
    -
    -

    User Settings

    -
    -
    -
    -
    - - {userForm.errors.username && ( - {userForm.errors.username} - )} -
    -
    - - {userForm.errors.email && ( - {userForm.errors.email} - )} -
    -
    - -
    -
    -
    -
    - -
    -
    -

    Password

    -
    -
    -
    - -
    - - {passwordForm.errors.oldPassword && ( - {passwordForm.errors.oldPassword} - )} -
    -
    - - {passwordForm.errors.newPassword && ( - {passwordForm.errors.newPassword} - )} -
    - -
    - - {passwordForm.errors.confirmPassword && ( - {passwordForm.errors.confirmPassword} - )} -
    - -
    -
    - -
    - -
    -
    -
    -
    - -
    -
    -

    Local Settings

    -

    - Settings only saved in your browser and won't sync across devices. -

    -
    -
    -
    -
    - - {markdownForm.errors["fileExtension"] && ( - {markdownForm.errors["fileExtension"]} - )} -
    -
    - -
    -
    -
    -
    - - - -
    - ); + const adaptedSchemas = useMemo(() => { + return { + userSettings: zodAdapter(userSettings), + updatePassword: zodAdapter(updatePassword), + localSettings: zodAdapter(localSettings) + }; + }, []); + const [isOpen, onToggleOpen] = useReducer((prev: boolean) => !prev, false); + const dataSource = useDataSource(); + const { error, data } = useSWR(["settings"], () => + dataSource.graphql.userDetails() + ); + + const initialMarkdownValues = useRef<() => ILocalSettings>(() => ({ + fileExtension: dataSource.settings.fileExtension || ".md" + })); + + const markdownForm = useFormik({ + initialValues: initialMarkdownValues.current(), + validationSchema: adaptedSchemas.localSettings, + onSubmit(values) { + dataSource.settings.fileExtension = values.fileExtension; + + dataSource.settings.handleSettingsUpdate(values); + } + }); + + const passwordForm = useFormik({ + initialValues: { + oldPassword: "", + newPassword: "", + confirmPassword: "" + }, + async onSubmit(_: IPasswordSettings, actions) { + await actions.validateForm(); + await dataSource.settings.changePassword(_); + }, + validationSchema: adaptedSchemas.updatePassword + }); + + const userForm = useFormik({ + initialValues: { ...data?.settings }, + onSubmit(values) { + dataSource.settings.update(values); + }, + validationSchema: adaptedSchemas.userSettings + }); + + const loading = !data; + + if (loading) { + return ; + } + + if (error) { + return ( +
    +
    {JSON.stringify(error, null, 2)}
    +
    + ); + } + + return ( +
    + +
    +

    Settings

    +
    + +
    +
    +
    +
    Total Entries
    +
    {data?.me.usage.entryCount}
    +
    +
    +
    Public Entries
    +
    {data?.me.usage.publicEntries}
    +
    +
    +
    Private Entries
    +
    {data?.me.usage.privateEntries}
    +
    +
    +
    + +
    +
    +

    User Settings

    +
    +
    +
    +
    + + {userForm.errors.username && ( + {userForm.errors.username} + )} +
    +
    + + {userForm.errors.email && ( + {userForm.errors.email} + )} +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Password

    +
    +
    +
    + +
    + + {passwordForm.errors.oldPassword && ( + {passwordForm.errors.oldPassword} + )} +
    +
    + + {passwordForm.errors.newPassword && ( + {passwordForm.errors.newPassword} + )} +
    + +
    + + {passwordForm.errors.confirmPassword && ( + {passwordForm.errors.confirmPassword} + )} +
    + +
    +
    + +
    + +
    +
    +
    +
    + +
    +
    +

    Local Settings

    +

    + Settings only saved in your browser and won't sync across devices. +

    +
    +
    +
    +
    + + {markdownForm.errors["fileExtension"] && ( + {markdownForm.errors["fileExtension"]} + )} +
    +
    + +
    +
    +
    +
    + + + +
    + ); }; export default SettingsPage; diff --git a/src/pages/signout.tsx b/src/pages/signout.tsx index 27712080b..6ec894b4e 100644 --- a/src/pages/signout.tsx +++ b/src/pages/signout.tsx @@ -6,22 +6,22 @@ import { Routes } from "@shared/routes"; import { useDataSource } from "@hooks/useDataSource"; export const getServerSideProps: GetServerSideProps<{}> = async (context) => { - removeTokenCookie(context.res); - return { - props: {} - }; + removeTokenCookie(context.res); + return { + props: {} + }; }; const SignOut: NextPage = () => { - const router = useRouter(); - const dataSource = useDataSource(); + const router = useRouter(); + const dataSource = useDataSource(); - useEffect(() => { - dataSource.auth.onLogout(); - router.push(Routes.LOGIN); - }, [dataSource, router]); + useEffect(() => { + dataSource.auth.onLogout(); + router.push(Routes.LOGIN); + }, [dataSource, router]); - return

    Signing out...

    ; + return

    Signing out...

    ; }; export default SignOut; diff --git a/src/server/context.ts b/src/server/context.ts index 091a00ca0..57581ac06 100644 --- a/src/server/context.ts +++ b/src/server/context.ts @@ -1,6 +1,6 @@ import { ServerResponse, IncomingMessage } from "http"; export type ResolverContext = { - req: IncomingMessage; - res: ServerResponse; + req: IncomingMessage; + res: ServerResponse; }; diff --git a/src/server/cookie-managment.ts b/src/server/cookie-managment.ts index 3b46edcc3..df4c89a3c 100644 --- a/src/server/cookie-managment.ts +++ b/src/server/cookie-managment.ts @@ -5,25 +5,25 @@ import { __IS_PROD__ } from "@shared/constants"; import { TOKEN_NAME } from "@shared/constants"; export const removeTokenCookie = (res: ServerResponse) => - res.setHeader( - "Set-Cookie", - serialize(TOKEN_NAME, "", { - maxAge: -1, - path: "/" - }) - ); + res.setHeader( + "Set-Cookie", + serialize(TOKEN_NAME, "", { + maxAge: -1, + path: "/" + }) + ); export const setTokenCookie = (res: ServerResponse, token: string) => { - const secure = !Boolean(process.env.NO_HTTPS); - console.log("is secure", secure); - res.setHeader( - "Set-Cookie", - serialize(TOKEN_NAME, token, { - secure, - path: "/", - sameSite: "lax" - }) - ); + const secure = !Boolean(process.env.NO_HTTPS); + console.log("is secure", secure); + res.setHeader( + "Set-Cookie", + serialize(TOKEN_NAME, token, { + secure, + path: "/", + sameSite: "lax" + }) + ); }; export const MAX_AGE = 60 * 60 * 8; // 8 hours @@ -31,19 +31,19 @@ export const MAX_AGE = 60 * 60 * 8; // 8 hours export type __NextRequest = IncomingMessage; export const parseCookies = (req: IncomingMessage) => { - // For pages we do need to parse the cookies. - return parse(req.headers.cookie || ""); + // For pages we do need to parse the cookies. + return parse(req.headers.cookie || ""); }; export const getTokenFromHeader = (req: IncomingMessage) => { - const cookies = parse(req.headers.cookie || ""); - return cookies[TOKEN_NAME] ?? req.headers.authorization; + const cookies = parse(req.headers.cookie || ""); + return cookies[TOKEN_NAME] ?? req.headers.authorization; }; export const getUserTokenContents = (req: IncomingMessage) => { - const token = getTokenFromHeader(req); + const token = getTokenFromHeader(req); - if (!token) return; + if (!token) return; - return readToken(token); + return readToken(token); }; diff --git a/src/server/db.ts b/src/server/db.ts index 4bf33d9a7..434b8b363 100644 --- a/src/server/db.ts +++ b/src/server/db.ts @@ -1,53 +1,53 @@ import mongoose from "mongoose"; import { - LOCAL_DB_ADDRESS, - __IS_DEV__, - __IS_PROD__, - __IS_TEST__ + LOCAL_DB_ADDRESS, + __IS_DEV__, + __IS_PROD__, + __IS_TEST__ } from "@shared/constants"; function getAddress() { - return process.env.ATLAS_DB_ADDRESS || LOCAL_DB_ADDRESS; + return process.env.ATLAS_DB_ADDRESS || LOCAL_DB_ADDRESS; } const connection: { - isConnected?: number; + isConnected?: number; } = {}; /* creating connection object*/ export default async function dbConnect() { - if (connection.isConnected) { - console.log("DB Connection", connection); - return; - } + if (connection.isConnected) { + console.log("DB Connection", connection); + return; + } - const address = getAddress(); + const address = getAddress(); - let options: mongoose.ConnectOptions = { - autoCreate: true, - autoIndex: true - }; + let options: mongoose.ConnectOptions = { + autoCreate: true, + autoIndex: true + }; - /* connecting to our database */ - const db = await mongoose.connect(address, options); + /* connecting to our database */ + const db = await mongoose.connect(address, options); - connection.isConnected = db.connections[0].readyState; + connection.isConnected = db.connections[0].readyState; } export const clearDB = async () => { - if (connection.isConnected) { - console.log("DB Connection", connection); - } - - console.log("Clearing the database and it's dangerous"); - const db = await mongoose.connect(LOCAL_DB_ADDRESS, { - autoCreate: true, - autoIndex: true - }); - - await db.connection.dropDatabase(); - await db.connection.close(); + if (connection.isConnected) { + console.log("DB Connection", connection); + } + + console.log("Clearing the database and it's dangerous"); + const db = await mongoose.connect(LOCAL_DB_ADDRESS, { + autoCreate: true, + autoIndex: true + }); + + await db.connection.dropDatabase(); + await db.connection.close(); }; export const stopDB = async () => { - await mongoose.connection.close(); + await mongoose.connection.close(); }; diff --git a/src/server/document.graphql b/src/server/document.graphql index 7fc58d9b4..949bd2451 100644 --- a/src/server/document.graphql +++ b/src/server/document.graphql @@ -1,106 +1,106 @@ fragment EntryInfo on Entry { - title - dateAdded - id - public + title + dateAdded + id + public } query AllPosts { - feed { - ...EntryInfo - } + feed { + ...EntryInfo + } } query Edit($id: ID!) { - entry(id: $id) { - ...EntryInfo - content - } + entry(id: $id) { + ...EntryInfo + content + } } query Preview($id: ID!) { - preview(id: $id) { - title - dateAdded - id - content - author { - username - } - } + preview(id: $id) { + title + dateAdded + id + content + author { + username + } + } } query UserDetails { - settings { - username - email - } + settings { + username + email + } - me { - usage { - entryCount - publicEntries - privateEntries - } - } + me { + usage { + entryCount + publicEntries + privateEntries + } + } } mutation UpdateEntry( - $id: String! - $content: String! - $title: String! - $status: Boolean! + $id: String! + $content: String! + $title: String! + $status: Boolean! ) { - updateEntry(id: $id, content: $content, title: $title, status: $status) { - ...EntryInfo - content - } + updateEntry(id: $id, content: $content, title: $title, status: $status) { + ...EntryInfo + content + } } mutation CreateEntry($content: String, $title: String) { - createEntry(content: $content, title: $title) { - ...EntryInfo - } + createEntry(content: $content, title: $title) { + ...EntryInfo + } } mutation RemoveEntry($id: ID!) { - deleteEntry(id: $id) { - title - id - } + deleteEntry(id: $id) { + title + id + } } mutation LoginUser($username: String!, $password: String!) { - authenticateUser(username: $username, password: $password) { - token - } + authenticateUser(username: $username, password: $password) { + token + } } mutation CreateUser($username: String!, $email: String!, $password: String!) { - createUser(username: $username, email: $email, password: $password) { - token - } + createUser(username: $username, email: $email, password: $password) { + token + } } mutation UpdateUserSettings($settings: UserSettingsInput!) { - updateUserSettings(settings: $settings) { - username - email - } + updateUserSettings(settings: $settings) { + username + email + } } mutation UpdatePassword($current: String!, $newPassword: String!) { - updatePassword(currentPassword: $current, newPassword: $newPassword) { - token - } + updatePassword(currentPassword: $current, newPassword: $newPassword) { + token + } } query IsMe { - me { - token - details { - id - username - } - } + me { + token + details { + id + username + } + } } diff --git a/src/server/graphql.ts b/src/server/graphql.ts index 9afc50648..80f13bb0e 100644 --- a/src/server/graphql.ts +++ b/src/server/graphql.ts @@ -3,11 +3,11 @@ import type { ResolverContext } from "./context"; import { schema } from "./schema"; export const DownwriteConfig: Config = { - schema, - context(context: ResolverContext) { - return context; - }, - introspection: true + schema, + context(context: ResolverContext) { + return context; + }, + introspection: true }; export const server = new ApolloServer(DownwriteConfig); diff --git a/src/server/models.ts b/src/server/models.ts index cb6ab9575..96607bb8b 100644 --- a/src/server/models.ts +++ b/src/server/models.ts @@ -1,46 +1,46 @@ import Mongoose from "mongoose"; export interface IPostModel extends Mongoose.Document { - id: string; - title: string; - author: string; - content: any; - public: boolean; - dateAdded: Date; - dateModified: Date; - excerpt?: string; - user: any; + id: string; + title: string; + author: string; + content: any; + public: boolean; + dateAdded: Date; + dateModified: Date; + excerpt?: string; + user: any; } export interface IUserModel extends Mongoose.Document { - username: string; - email: string; - password: string; - admin?: boolean; - posts?: IPostModel[]; - gradient?: string[]; + username: string; + email: string; + password: string; + admin?: boolean; + posts?: IPostModel[]; + gradient?: string[]; } const postSchema = new Mongoose.Schema({ - id: String, - title: String, - author: String, - content: Object, - public: Boolean, - dateAdded: Date, - dateModified: Date, - user: { type: Mongoose.Schema.Types.ObjectId, ref: "User" } + id: String, + title: String, + author: String, + content: Object, + public: Boolean, + dateAdded: Date, + dateModified: Date, + user: { type: Mongoose.Schema.Types.ObjectId, ref: "User" } }); const userSchema = new Mongoose.Schema({ - username: { type: String, required: true, index: { unique: true } }, - email: { type: String, required: true, index: { unique: true } }, - password: { type: String, required: true }, - admin: { type: Boolean, required: true }, - posts: [{ type: Mongoose.Schema.Types.ObjectId, ref: "Post" }] + username: { type: String, required: true, index: { unique: true } }, + email: { type: String, required: true, index: { unique: true } }, + password: { type: String, required: true }, + admin: { type: Boolean, required: true }, + posts: [{ type: Mongoose.Schema.Types.ObjectId, ref: "Post" }] }); export const UserModel: Mongoose.Model = - Mongoose.models.User || Mongoose.model("User", userSchema); + Mongoose.models.User || Mongoose.model("User", userSchema); export const PostModel: Mongoose.Model = - Mongoose.models.Post || Mongoose.model("Post", postSchema); + Mongoose.models.Post || Mongoose.model("Post", postSchema); diff --git a/src/server/mutations.ts b/src/server/mutations.ts index f54a139a7..531cb86a7 100644 --- a/src/server/mutations.ts +++ b/src/server/mutations.ts @@ -15,247 +15,247 @@ import { createUserArgs } from "@shared/validations"; import { __IS_DEV__ } from "@shared/constants"; import type { - RequireFields, - IEntry, - IUser, - IMutationResolvers, - IMutationCreateEntryArgs, - IMutationUpdateEntryArgs, - IMutationDeleteEntryArgs, - IMutationUpdateUserSettingsArgs, - IAuthUserPayload, - IMutationUpdatePasswordArgs + RequireFields, + IEntry, + IUser, + IMutationResolvers, + IMutationCreateEntryArgs, + IMutationUpdateEntryArgs, + IMutationDeleteEntryArgs, + IMutationUpdateUserSettingsArgs, + IAuthUserPayload, + IMutationUpdatePasswordArgs } from "../__generated__/server"; export interface IMutationCreateEntryVars { - title: string; - content: string; - id?: string; - status?: boolean; + title: string; + content: string; + id?: string; + status?: boolean; } export interface IMutationUserVars { - email?: string; - password: string; - username: string; + email?: string; + password: string; + username: string; } export const Mutation: IMutationResolvers = { - createEntry: async (_, args, context) => createPost(context, args), - updateEntry: async (_, args, context) => updatePost(context, args.id, args), - deleteEntry: async (_, args, context) => removePost(context, args), - createUser: async (_, args: IMutationUserVars, context) => - createUser(context, args.username, args.email!, args.password), - authenticateUser: async (_, args: IMutationUserVars, context) => - authenticateUser(context, args.username, args.password), - updateUserSettings: async (_, args, context) => updateUserSettings(context, args), - updatePassword: async (_, args, context) => updatePassword(context, args) + createEntry: async (_, args, context) => createPost(context, args), + updateEntry: async (_, args, context) => updatePost(context, args.id, args), + deleteEntry: async (_, args, context) => removePost(context, args), + createUser: async (_, args: IMutationUserVars, context) => + createUser(context, args.username, args.email!, args.password), + authenticateUser: async (_, args: IMutationUserVars, context) => + authenticateUser(context, args.username, args.password), + updateUserSettings: async (_, args, context) => updateUserSettings(context, args), + updatePassword: async (_, args, context) => updatePassword(context, args) }; export async function createPost( - context: ResolverContext, - args: Partial + context: ResolverContext, + args: Partial ): Promise { - return verifyUser(context, async ({ user, name }) => { - try { - const id = cuid(); - const date = new Date(); - const title = args.title ?? "Untitled Entry"; - const content = args.content ?? ""; + return verifyUser(context, async ({ user, name }) => { + try { + const id = cuid(); + const date = new Date(); + const title = args.title ?? "Untitled Entry"; + const content = args.content ?? ""; - const entry = { - title, - content, - id, - public: false, - dateAdded: date, - dateModified: date, - user, - author: name - }; + const entry = { + title, + content, + id, + public: false, + dateAdded: date, + dateModified: date, + user, + author: name + }; - const post = await PostModel.create(entry); - return transformPostToEntry(post); - } catch (error: any) { - throw new ApolloError(error); - } - }); + const post = await PostModel.create(entry); + return transformPostToEntry(post); + } catch (error: any) { + throw new ApolloError(error); + } + }); } export async function updatePost( - context: ResolverContext, - id: string, - args: IMutationUpdateEntryArgs + context: ResolverContext, + id: string, + args: IMutationUpdateEntryArgs ) { - return verifyUser(context, async ({ user }) => { - try { - const n = await PostModel.findOneAndUpdate( - { id, user: { $eq: user } }, - { - content: args.content, - public: args.status, - title: args.title, - dateModified: new Date() - }, - { - new: true - } - ); - return transformPostToEntry(n); - } catch (error: any) { - throw new ApolloError(error, "Could not find post to update"); - } - }); + return verifyUser(context, async ({ user }) => { + try { + const n = await PostModel.findOneAndUpdate( + { id, user: { $eq: user } }, + { + content: args.content, + public: args.status, + title: args.title, + dateModified: new Date() + }, + { + new: true + } + ); + return transformPostToEntry(n); + } catch (error: any) { + throw new ApolloError(error, "Could not find post to update"); + } + }); } export async function removePost( - context: ResolverContext, - { id }: RequireFields + context: ResolverContext, + { id }: RequireFields ): Promise { - return verifyUser(context, async ({ user }) => { - try { - const post = await PostModel.findOneAndRemove({ - id, - user: { $eq: user } - }); - return transformPostToEntry(post); - } catch (error: any) { - throw new ApolloError(error); - } - }); + return verifyUser(context, async ({ user }) => { + try { + const post = await PostModel.findOneAndRemove({ + id, + user: { $eq: user } + }); + return transformPostToEntry(post); + } catch (error: any) { + throw new ApolloError(error); + } + }); } export async function authenticateUser( - context: ResolverContext, - username: string, - password: string + context: ResolverContext, + username: string, + password: string ): Promise { - const decoded = base64.decode(password); + const decoded = base64.decode(password); - await dbConnect(); + await dbConnect(); - try { - const user = await verifyCredentials(username, decoded); - const token = createToken(user); + try { + const user = await verifyCredentials(username, decoded); + const token = createToken(user); - setTokenCookie(context.res, token); + setTokenCookie(context.res, token); - return { token }; - } catch (error: any) { - throw new ApolloError(error); - } + return { token }; + } catch (error: any) { + throw new ApolloError(error); + } } export async function createUser( - context: ResolverContext, - username: string, - email: string, - password: string + context: ResolverContext, + username: string, + email: string, + password: string ) { - await dbConnect(); - const decoded = base64.decode(password); - try { - await verifyUniqueUser(username, email); - await createUserArgs.parseAsync({ - username, - email, - password: decoded - }); + await dbConnect(); + const decoded = base64.decode(password); + try { + await verifyUniqueUser(username, email); + await createUserArgs.parseAsync({ + username, + email, + password: decoded + }); - const id = cuid(); - const hash = await getSaltedHash(decoded); - const m = Object.assign( - {}, - { email, username, id, password: hash, admin: false } - ); - let user = await UserModel.create(m); - let token = createToken(user); + const id = cuid(); + const hash = await getSaltedHash(decoded); + const m = Object.assign( + {}, + { email, username, id, password: hash, admin: false } + ); + let user = await UserModel.create(m); + let token = createToken(user); - setTokenCookie(context.res, token); + setTokenCookie(context.res, token); - return { token }; - } catch (error: any) { - console.log(error.message); - throw new ApolloError(error); - } + return { token }; + } catch (error: any) { + console.log(error.message); + throw new ApolloError(error); + } } export async function updateUserSettings( - context: ResolverContext, - { - settings: { email, username } - }: RequireFields + context: ResolverContext, + { + settings: { email, username } + }: RequireFields ): Promise { - return verifyUser(context, async ({ user }) => { - try { - const currentUser = await UserModel.findById({ _id: user }); + return verifyUser(context, async ({ user }) => { + try { + const currentUser = await UserModel.findById({ _id: user }); - if (currentUser === null || typeof currentUser === "undefined") { - throw new ApolloError("user cannot be null"); - } + if (currentUser === null || typeof currentUser === "undefined") { + throw new ApolloError("user cannot be null"); + } - const uniqueChecks = getUniqueChecks(currentUser, email!, username!); + const uniqueChecks = getUniqueChecks(currentUser, email!, username!); - await Promise.all(uniqueChecks); - const details = await UserModel.findByIdAndUpdate( - { - _id: user - }, - { $set: { username: username!, email: email! } }, - { new: true } - ); - if (details === null || typeof details === "undefined") { - throw new ApolloError("Update failed, user details came back null"); - } - if (details.email && details.username) { - const token = createToken(details); + await Promise.all(uniqueChecks); + const details = await UserModel.findByIdAndUpdate( + { + _id: user + }, + { $set: { username: username!, email: email! } }, + { new: true } + ); + if (details === null || typeof details === "undefined") { + throw new ApolloError("Update failed, user details came back null"); + } + if (details.email && details.username) { + const token = createToken(details); - setTokenCookie(context.res, token); - return { - email: details.email, - username: details.username, - id: details.id, - admin: __IS_DEV__ - }; - } else { - throw new ApolloError("Couldn't update user settings"); - } - } catch (error: any) { - throw new ApolloError(error); - } - }); + setTokenCookie(context.res, token); + return { + email: details.email, + username: details.username, + id: details.id, + admin: __IS_DEV__ + }; + } else { + throw new ApolloError("Couldn't update user settings"); + } + } catch (error: any) { + throw new ApolloError(error); + } + }); } export async function updatePassword( - context: ResolverContext, - { currentPassword, newPassword }: IMutationUpdatePasswordArgs + context: ResolverContext, + { currentPassword, newPassword }: IMutationUpdatePasswordArgs ): Promise { - return verifyUser(context, async (tokenContents) => { - const decodedNew = base64.decode(newPassword); - const decodedCurrent = base64.decode(currentPassword); - const user = await verifyCredentials(tokenContents.name, decodedCurrent); - const salt = await bcrypt.genSalt(10); + return verifyUser(context, async (tokenContents) => { + const decodedNew = base64.decode(newPassword); + const decodedCurrent = base64.decode(currentPassword); + const user = await verifyCredentials(tokenContents.name, decodedCurrent); + const salt = await bcrypt.genSalt(10); - const newPasswordHash = await bcrypt.hash(decodedNew, salt); + const newPasswordHash = await bcrypt.hash(decodedNew, salt); - const updated = await UserModel.findByIdAndUpdate( - { - _id: user._id - }, - { $set: { password: newPasswordHash } }, - { new: true } - ); + const updated = await UserModel.findByIdAndUpdate( + { + _id: user._id + }, + { $set: { password: newPasswordHash } }, + { new: true } + ); - if (updated === null || typeof updated === "undefined") { - throw new ApolloError("Update failed"); - } + if (updated === null || typeof updated === "undefined") { + throw new ApolloError("Update failed"); + } - const token = createToken(updated); + const token = createToken(updated); - setTokenCookie(context.res, token); + setTokenCookie(context.res, token); - return { - token - }; - }); + return { + token + }; + }); } diff --git a/src/server/parser.ts b/src/server/parser.ts index be5cd2de1..6e72686e7 100644 --- a/src/server/parser.ts +++ b/src/server/parser.ts @@ -4,12 +4,12 @@ import remarkRehype from "remark-rehype"; import rehypeStringify from "rehype-stringify"; export const toSafeHTML = async (content: string) => { - const file = await unified() - .use(remarkParse) - .use(require("remark-prism")) - .use(remarkRehype) - .use(rehypeStringify) - .process(content); + const file = await unified() + .use(remarkParse) + .use(require("remark-prism")) + .use(remarkRehype) + .use(rehypeStringify) + .process(content); - return String(file); + return String(file); }; diff --git a/src/server/preview.ts b/src/server/preview.ts index 5b06eb280..0bae59f55 100644 --- a/src/server/preview.ts +++ b/src/server/preview.ts @@ -4,17 +4,17 @@ import { IPostModel, PostModel, UserModel } from "./models"; import { transformMDToPreview } from "./transform"; export const getAllPreviewEntries = async (): Promise => { - return PostModel.find({ public: true }).exec(); + return PostModel.find({ public: true }).exec(); }; export const getPreviewEntry = async (id: string): Promise => { - try { - await dbConnect(); + try { + await dbConnect(); - const entry = await PostModel.findOne({ id }); - const user = await UserModel.findOne({ _id: entry!.user }); - return transformMDToPreview(entry, user); - } catch (error) { - throw new Error(error); - } + const entry = await PostModel.findOne({ id }); + const user = await UserModel.findOne({ _id: entry!.user }); + return transformMDToPreview(entry, user); + } catch (error) { + throw new Error(error); + } }; diff --git a/src/server/queries.ts b/src/server/queries.ts index 60572875c..f432fa5b2 100644 --- a/src/server/queries.ts +++ b/src/server/queries.ts @@ -2,9 +2,9 @@ import { ApolloError, UserInputError } from "apollo-server-micro"; import dbConnect from "./db"; import { PostModel, UserModel, IUserModel } from "./models"; import { - transformPostsToFeed, - transformPostToEntry, - transformMDToPreview + transformPostsToFeed, + transformPostToEntry, + transformMDToPreview } from "./transform"; import { ResolverContext } from "./context"; import { verifyUser } from "./resolver-auth"; @@ -14,109 +14,109 @@ import { __IS_DEV__ } from "@shared/constants"; import type { IEntry, IQueryResolvers, IUser } from "../__generated__/server"; export const Query: IQueryResolvers = { - feed: async (_, __, context) => feed(context), - entry: async (_, { id }, context) => entry(context, id), - preview: async (_, { id }, context) => preview(context, id), - settings: async (_, __, context) => settings(context), - me: async (_, __, context) => me(context) + feed: async (_, __, context) => feed(context), + entry: async (_, { id }, context) => entry(context, id), + preview: async (_, { id }, context) => preview(context, id), + settings: async (_, __, context) => settings(context), + me: async (_, __, context) => me(context) }; export async function me(context: ResolverContext) { - return verifyUser(context, async ({ user, name, token }) => { - const entryCount = await PostModel.count({ user: { $eq: user } }); - const publicEntries = await PostModel.count({ - public: true, - user: { $eq: user } - }); - const _user = await UserModel.findById(user, "username email").exec(); + return verifyUser(context, async ({ user, name, token }) => { + const entryCount = await PostModel.count({ user: { $eq: user } }); + const publicEntries = await PostModel.count({ + public: true, + user: { $eq: user } + }); + const _user = await UserModel.findById(user, "username email").exec(); - if (_user === null || typeof _user === "undefined") { - throw new ApolloError("Cannot find user"); - } + if (_user === null || typeof _user === "undefined") { + throw new ApolloError("Cannot find user"); + } - const { email } = _user; + const { email } = _user; - return { - token, - usage: { - entryCount, - publicEntries, - privateEntries: entryCount - publicEntries - }, - details: { - email, - username: name, - id: user, - admin: __IS_DEV__ - } - }; - }); + return { + token, + usage: { + entryCount, + publicEntries, + privateEntries: entryCount - publicEntries + }, + details: { + email, + username: name, + id: user, + admin: __IS_DEV__ + } + }; + }); } export async function feed(context: ResolverContext): Promise { - return verifyUser(context, async ({ user }) => { - try { - const posts = await PostModel.find({ user: { $eq: user } }); - return transformPostsToFeed(posts); - } catch (error: any) { - throw new ApolloError(error.message); - } - }); + return verifyUser(context, async ({ user }) => { + try { + const posts = await PostModel.find({ user: { $eq: user } }); + return transformPostsToFeed(posts); + } catch (error: any) { + throw new ApolloError(error.message); + } + }); } export async function entry(context: ResolverContext, id: string): Promise { - return verifyUser(context, async ({ user }) => { - try { - const post = await PostModel.findOne({ - id, - user: { $eq: user } - }); - return transformPostToEntry(post); - } catch (error: any) { - throw new ApolloError(error.message); - } - }); + return verifyUser(context, async ({ user }) => { + try { + const post = await PostModel.findOne({ + id, + user: { $eq: user } + }); + return transformPostToEntry(post); + } catch (error: any) { + throw new ApolloError(error.message); + } + }); } export async function preview(_: ResolverContext, id: string) { - await dbConnect(); - const post = await PostModel.findOne({ id }); - const user = await UserModel.findOne({ _id: post!.user }); + await dbConnect(); + const post = await PostModel.findOne({ id }); + const user = await UserModel.findOne({ _id: post!.user }); - if (user === null) { - throw new ApolloError("Author could not be found"); - } + if (user === null) { + throw new ApolloError("Author could not be found"); + } - if (post === null) { - throw new ApolloError("Post doesn't exist"); - } + if (post === null) { + throw new ApolloError("Post doesn't exist"); + } - if (!post.public) { - throw new UserInputError( - "This post is either not public or I couldn't even find it. Things are hard sometimes.", - { - invalidArgs: [id] - } - ); - } + if (!post.public) { + throw new UserInputError( + "This post is either not public or I couldn't even find it. Things are hard sometimes.", + { + invalidArgs: [id] + } + ); + } - return transformMDToPreview(post, user); + return transformMDToPreview(post, user); } export async function settings(context: ResolverContext): Promise { - return verifyUser(context, async ({ user }) => { - const details: Many> | null = - await UserModel.findById(user, "username email").exec(); - if (details !== null) { - const user = Array.isArray(details) ? details[0] : details; - return { - email: user.email!, - id: user.id, - admin: false, - username: user.username! - }; - } else { - throw new ApolloError("Could not find user settings"); - } - }); + return verifyUser(context, async ({ user }) => { + const details: Many> | null = + await UserModel.findById(user, "username email").exec(); + if (details !== null) { + const user = Array.isArray(details) ? details[0] : details; + return { + email: user.email!, + id: user.id, + admin: false, + username: user.username! + }; + } else { + throw new ApolloError("Could not find user settings"); + } + }); } diff --git a/src/server/resolver-auth.ts b/src/server/resolver-auth.ts index 7c2c21638..516066fa2 100644 --- a/src/server/resolver-auth.ts +++ b/src/server/resolver-auth.ts @@ -6,34 +6,34 @@ import { getUserTokenContents } from "./cookie-managment"; import dbConnect from "./db"; export async function verifyUser( - context: ResolverContext, - cb: (user: IReadResults) => T + context: ResolverContext, + cb: (user: IReadResults) => T ) { - const token = getUserTokenContents(context.req); + const token = getUserTokenContents(context.req); - if (token) { - await dbConnect(); + if (token) { + await dbConnect(); - return cb(token); - } else { - throw new AuthenticationError("No valid token in cookie"); - } + return cb(token); + } else { + throw new AuthenticationError("No valid token in cookie"); + } } export async function verifyCredentials( - identifier: string, - password: string + identifier: string, + password: string ): Promise { - const user = await UserModel.findOne({ - $or: [{ email: identifier }, { username: identifier }] - }); + const user = await UserModel.findOne({ + $or: [{ email: identifier }, { username: identifier }] + }); - if (user) { - const isValid = await isValidPassword(password, user.password); - if (isValid) return user; + if (user) { + const isValid = await isValidPassword(password, user.password); + if (isValid) return user; - throw new AuthenticationError("Incorrect password"); - } else { - throw new AuthenticationError("Incorrect username or email!"); - } + throw new AuthenticationError("Incorrect password"); + } else { + throw new AuthenticationError("Incorrect username or email!"); + } } diff --git a/src/server/schema.ts b/src/server/schema.ts index 975c68913..65593504e 100644 --- a/src/server/schema.ts +++ b/src/server/schema.ts @@ -5,114 +5,114 @@ import { Mutation } from "./mutations"; import { ResolverContext } from "./context"; const typeDefs = gql` - scalar Date - - # Models - - type Entry { - id: ID - title: String - author: Author - content: String - public: Boolean - dateAdded: Date - dateModified: Date - excerpt: String - user: String - } - - type Author { - username: String - gradient: [String] - } - - type Preview { - title: String - id: ID - content: String - author: Author - dateAdded: Date - } - - type User { - username: String! - email: String! - id: ID! - admin: Boolean - } - - # Inputs - - input UserSettingsInput { - username: String - email: String - } - - # Payload - - type AuthUserPayload { - token: String - } - - type UsageDetails { - entryCount: Int! - privateEntries: Int! - publicEntries: Int! - } - - type Me { - details: User - token: String - usage: UsageDetails! - } - - # Root - - type Query { - """ - Markdown document - """ - entry(id: ID!): Entry - """ - List of Markdown documents - """ - feed: [Entry!]! - """ - Public preview of Markdown document - """ - preview(id: ID!): Preview - """ - User Settings - """ - settings: User - me: Me - } - - type Mutation { - createEntry(content: String, title: String): Entry - updateEntry( - id: String! - content: String! - title: String! - status: Boolean! - ): Entry - deleteEntry(id: ID!): Entry - createUser(username: String!, email: String!, password: String!): AuthUserPayload - authenticateUser(username: String!, password: String!): AuthUserPayload - updateUserSettings(settings: UserSettingsInput!): User - updatePassword(currentPassword: String!, newPassword: String!): AuthUserPayload - } - - schema { - query: Query - mutation: Mutation - } + scalar Date + + # Models + + type Entry { + id: ID + title: String + author: Author + content: String + public: Boolean + dateAdded: Date + dateModified: Date + excerpt: String + user: String + } + + type Author { + username: String + gradient: [String] + } + + type Preview { + title: String + id: ID + content: String + author: Author + dateAdded: Date + } + + type User { + username: String! + email: String! + id: ID! + admin: Boolean + } + + # Inputs + + input UserSettingsInput { + username: String + email: String + } + + # Payload + + type AuthUserPayload { + token: String + } + + type UsageDetails { + entryCount: Int! + privateEntries: Int! + publicEntries: Int! + } + + type Me { + details: User + token: String + usage: UsageDetails! + } + + # Root + + type Query { + """ + Markdown document + """ + entry(id: ID!): Entry + """ + List of Markdown documents + """ + feed: [Entry!]! + """ + Public preview of Markdown document + """ + preview(id: ID!): Preview + """ + User Settings + """ + settings: User + me: Me + } + + type Mutation { + createEntry(content: String, title: String): Entry + updateEntry( + id: String! + content: String! + title: String! + status: Boolean! + ): Entry + deleteEntry(id: ID!): Entry + createUser(username: String!, email: String!, password: String!): AuthUserPayload + authenticateUser(username: String!, password: String!): AuthUserPayload + updateUserSettings(settings: UserSettingsInput!): User + updatePassword(currentPassword: String!, newPassword: String!): AuthUserPayload + } + + schema { + query: Query + mutation: Mutation + } `; export const schema = makeExecutableSchema({ - typeDefs, - resolvers: { - Query, - Mutation - } + typeDefs, + resolvers: { + Query, + Mutation + } }); diff --git a/src/server/server.ts b/src/server/server.ts index aaa9af8cc..244630a30 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -3,8 +3,8 @@ import { ResolverContext } from "./context"; import { schema } from "./schema"; export const server = new ApolloServer({ - schema, - context(_: ResolverContext) { - return _; - } + schema, + context(_: ResolverContext) { + return _; + } }); diff --git a/src/server/token.ts b/src/server/token.ts index a600c5b35..c77765b71 100644 --- a/src/server/token.ts +++ b/src/server/token.ts @@ -4,44 +4,44 @@ import { IUserModel } from "@server/models"; import { TokenContents } from "@shared/types"; export const SECRET_KEY = - process.env.SECRET_KEY || "1a9876c4-6642-4b83-838a-9e84ee00646a"; + process.env.SECRET_KEY || "1a9876c4-6642-4b83-838a-9e84ee00646a"; export async function getSaltedHash(password: string) { - const salt = await bcrypt.genSalt(10); - const hash = await bcrypt.hash(password, salt); + const salt = await bcrypt.genSalt(10); + const hash = await bcrypt.hash(password, salt); - return hash; + return hash; } const isObject = (value: unknown): value is object => - value !== null && (typeof value === "object" || typeof value === "function"); + value !== null && (typeof value === "object" || typeof value === "function"); export function createToken(user: IUserModel): string { - const jwtConfig: jwt.SignOptions = { - algorithm: "HS256", - expiresIn: "180 days" - }; - - const data = { - user: user._id!, - name: user.username, - scope: user.admin && "admin" - }; - - return jwt.sign(data, SECRET_KEY, jwtConfig); + const jwtConfig: jwt.SignOptions = { + algorithm: "HS256", + expiresIn: "180 days" + }; + + const data = { + user: user._id!, + name: user.username, + scope: user.admin && "admin" + }; + + return jwt.sign(data, SECRET_KEY, jwtConfig); } export interface IReadResults extends TokenContents { - token: string; + token: string; } export function readToken(token: string): IReadResults | null { - const contents: TokenContents = jwt.verify(token, SECRET_KEY, { - complete: false - }) as TokenContents; - return isObject(contents) ? { ...contents, token } : null; + const contents: TokenContents = jwt.verify(token, SECRET_KEY, { + complete: false + }) as TokenContents; + return isObject(contents) ? { ...contents, token } : null; } export async function isValidPassword(password: string, hashPassword: string) { - return bcrypt.compare(password, hashPassword); + return bcrypt.compare(password, hashPassword); } diff --git a/src/server/transform.ts b/src/server/transform.ts index 715cb19df..3f76ffb7f 100644 --- a/src/server/transform.ts +++ b/src/server/transform.ts @@ -6,87 +6,87 @@ import { IEntry, IPreview } from "../__generated__/server"; const DEFAULT_GRADIENT = ["#FEB692", "#EA5455"]; const isUndefined = (value: unknown): value is undefined => - typeof value === "undefined"; + typeof value === "undefined"; export function transformPostsToFeed(posts: IPostModel[]): IEntry[] { - const feed = posts.map((post) => { - const md = createMarkdownServer(post.content); - const user = post.user.toString(); - const dateAdded = isUndefined(post.dateAdded) - ? new Date().toString() - : post.dateAdded.toString(); - const dateModified = isUndefined(post.dateModified) - ? new Date().toString() - : post.dateModified.toString(); - return { - id: post.id, - title: post.title, - author: { username: post.author, gradient: DEFAULT_GRADIENT }, - user, - dateModified, - dateAdded, - public: post.public, - content: md, - excerpt: md.trim().substring(0, 90) - }; - }); + const feed = posts.map((post) => { + const md = createMarkdownServer(post.content); + const user = post.user.toString(); + const dateAdded = isUndefined(post.dateAdded) + ? new Date().toString() + : post.dateAdded.toString(); + const dateModified = isUndefined(post.dateModified) + ? new Date().toString() + : post.dateModified.toString(); + return { + id: post.id, + title: post.title, + author: { username: post.author, gradient: DEFAULT_GRADIENT }, + user, + dateModified, + dateAdded, + public: post.public, + content: md, + excerpt: md.trim().substring(0, 90) + }; + }); - return feed; + return feed; } export function transformPostToEntry(post: IPostModel | null): IEntry { - let md = ``; + let md = ``; - if (post === null) { - throw new ApolloError("Post does not exist"); - } + if (post === null) { + throw new ApolloError("Post does not exist"); + } - if (post.content !== null) { - md = createMarkdownServer(post.content); - } + if (post.content !== null) { + md = createMarkdownServer(post.content); + } - const dateAdded = isUndefined(post.dateAdded) - ? new Date().toString() - : post.dateAdded.toString(); - const dateModified = isUndefined(post.dateModified) - ? new Date().toString() - : post.dateModified.toString(); + const dateAdded = isUndefined(post.dateAdded) + ? new Date().toString() + : post.dateAdded.toString(); + const dateModified = isUndefined(post.dateModified) + ? new Date().toString() + : post.dateModified.toString(); - const entry = { - id: post.id, - title: post.title, - author: { username: post.author, gradient: DEFAULT_GRADIENT }, - user: post.user.toString(), - dateModified, - dateAdded, - public: post.public, - content: md, - excerpt: md.trim().substring(0, 90) - }; + const entry = { + id: post.id, + title: post.title, + author: { username: post.author, gradient: DEFAULT_GRADIENT }, + user: post.user.toString(), + dateModified, + dateAdded, + public: post.public, + content: md, + excerpt: md.trim().substring(0, 90) + }; - return entry; + return entry; } export function transformMDToPreview(post: IPostModel, user: IUserModel): IPreview { - const dateAdded = isUndefined(post.dateAdded) - ? new Date().toString() - : post.dateAdded.toString(); - const dateModified = isUndefined(post.dateModified) - ? new Date().toString() - : post.dateModified.toString(); + const dateAdded = isUndefined(post.dateAdded) + ? new Date().toString() + : post.dateAdded.toString(); + const dateModified = isUndefined(post.dateModified) + ? new Date().toString() + : post.dateModified.toString(); - const markdown = { - id: post.id, - author: { - username: user.username, - gradient: user.gradient || ["#FEB692", "#EA5455"], - avatar: user.gradient || ["#FEB692", "#EA5455"] - }, - content: createMarkdownServer(post.content), - title: post.title, - dateModified, - dateAdded - }; + const markdown = { + id: post.id, + author: { + username: user.username, + gradient: user.gradient || ["#FEB692", "#EA5455"], + avatar: user.gradient || ["#FEB692", "#EA5455"] + }, + content: createMarkdownServer(post.content), + title: post.title, + dateModified, + dateAdded + }; - return markdown; + return markdown; } diff --git a/src/server/uniques.ts b/src/server/uniques.ts index 237712e6d..aabea2227 100644 --- a/src/server/uniques.ts +++ b/src/server/uniques.ts @@ -2,55 +2,55 @@ import { ApolloError } from "apollo-server-micro"; import { UserModel, IUserModel } from "./models"; export async function verifyUniqueUser(username: string, email: string) { - const user = await UserModel.findOne({ - $or: [{ email }, { username }] - }); - - if (user) { - if (user.username === username) { - throw new ApolloError("Username taken"); - } - if (user.email === email) { - throw new ApolloError("Email taken"); - } - } + const user = await UserModel.findOne({ + $or: [{ email }, { username }] + }); + + if (user) { + if (user.username === username) { + throw new ApolloError("Username taken"); + } + if (user.email === email) { + throw new ApolloError("Email taken"); + } + } } type Diffs = "email" | "username"; export function isDifferent( - user: IUserModel, - email: string, - username: string + user: IUserModel, + email: string, + username: string ): Diffs[] { - const differences: Diffs[] = []; + const differences: Diffs[] = []; - if (user.email !== email) differences.push("email"); - if (user.username !== username) differences.push("username"); + if (user.email !== email) differences.push("email"); + if (user.username !== username) differences.push("username"); - return differences; + return differences; } export function getUniqueChecks( - currentUser: IUserModel, - email: string, - username: string + currentUser: IUserModel, + email: string, + username: string ) { - const differences = isDifferent(currentUser, email!, username!); - - const uniqueChecks = differences.map(async (diff) => { - const params = diff === "username" ? { username: username! } : { email: email! }; - const found = await UserModel.findOne(params); - - if (found) { - if (diff === "username" && found.username === username) { - throw new ApolloError("Username already taken"); - } - if (diff === "email" && found.email === email) { - throw new ApolloError("Email already taken"); - } - } - }); - - return uniqueChecks; + const differences = isDifferent(currentUser, email!, username!); + + const uniqueChecks = differences.map(async (diff) => { + const params = diff === "username" ? { username: username! } : { email: email! }; + const found = await UserModel.findOne(params); + + if (found) { + if (diff === "username" && found.username === username) { + throw new ApolloError("Username already taken"); + } + if (diff === "email" && found.email === email) { + throw new ApolloError("Email already taken"); + } + } + }); + + return uniqueChecks; } diff --git a/src/shared/constants.ts b/src/shared/constants.ts index 919d880ca..6dc87d3c3 100644 --- a/src/shared/constants.ts +++ b/src/shared/constants.ts @@ -8,10 +8,10 @@ export const BASE_PROD_URL = "https://beta.downwrite.us/"; export const BASE_OG_TITLE = "Downwrite"; export const createMetadata = (path?: string, title?: string) => { - return { - PAGE_TITLE: title ? `${title} | ${BASE_OG_TITLE}` : BASE_OG_TITLE, - PAGE_URL: path ? `https://beta.downwrite.us/${path}` : BASE_PROD_URL - }; + return { + PAGE_TITLE: title ? `${title} | ${BASE_OG_TITLE}` : BASE_OG_TITLE, + PAGE_URL: path ? `https://beta.downwrite.us/${path}` : BASE_PROD_URL + }; }; export const __IS_DEV__: boolean = process.env.NODE_ENV === "development"; diff --git a/src/shared/fm.ts b/src/shared/fm.ts index 20a47ec09..d20b141ba 100644 --- a/src/shared/fm.ts +++ b/src/shared/fm.ts @@ -1,90 +1,90 @@ const optionalByteOrderMark = "\\ufeff?"; const pattern = - "^(" + - optionalByteOrderMark + - "(= yaml =|---)" + - "$([\\s\\S]*?)" + - "^(?:\\2|\\.\\.\\.)\\s*" + - "$" + - "(?:\\n)?)"; + "^(" + + optionalByteOrderMark + + "(= yaml =|---)" + + "$([\\s\\S]*?)" + + "^(?:\\2|\\.\\.\\.)\\s*" + + "$" + + "(?:\\n)?)"; const regex = new RegExp(pattern, "m"); export function fmParserr(string: string): { - attributes: Record; - body: string; - bodyBegin: number; - frontmatter?: string; + attributes: Record; + body: string; + bodyBegin: number; + frontmatter?: string; } { - string = string || ""; - const lines = string.split(/(\r?\n)/); - if (lines[0] && /= yaml =|---/.test(lines[0])) { - return parse(string); - } else { - return { - attributes: {}, - body: string, - bodyBegin: 1 - }; - } + string = string || ""; + const lines = string.split(/(\r?\n)/); + if (lines[0] && /= yaml =|---/.test(lines[0])) { + return parse(string); + } else { + return { + attributes: {}, + body: string, + bodyBegin: 1 + }; + } } function parse(string: string) { - const match = regex.exec(string); - if (!match) { - return { - attributes: {}, - body: string, - bodyBegin: 1 - }; - } + const match = regex.exec(string); + if (!match) { + return { + attributes: {}, + body: string, + bodyBegin: 1 + }; + } - const yaml = match[match.length - 1].replace(/^\s+|\s+$/g, ""); - const attributes = computeAttributes(yaml); - const body = string.replace(match[0], ""); - const line = computeLocation(match, string); + const yaml = match[match.length - 1].replace(/^\s+|\s+$/g, ""); + const attributes = computeAttributes(yaml); + const body = string.replace(match[0], ""); + const line = computeLocation(match, string); - return { - attributes: attributes, - body: body, - bodyBegin: line, - frontmatter: yaml - }; + return { + attributes: attributes, + body: body, + bodyBegin: line, + frontmatter: yaml + }; } function computeLocation(match: RegExpExecArray, body: string): number { - let line = 1; - let pos = body.indexOf("\n"); - const offset = match.index + match[0].length; + let line = 1; + let pos = body.indexOf("\n"); + const offset = match.index + match[0].length; - while (pos !== -1) { - if (pos >= offset) { - return line; - } - line++; - pos = body.indexOf("\n", pos + 1); - } + while (pos !== -1) { + if (pos >= offset) { + return line; + } + line++; + pos = body.indexOf("\n", pos + 1); + } - return line; + return line; } function computeAttributes(yaml: string) { - const splitter = ": "; - const lines = yaml.split(/(\r?\n)/); - let attributes = {}; - lines.forEach((line) => { - if (!line.includes(splitter)) { - return; - } - const split = line.split(splitter); - const key = split[0]; - let value = line.substring(split[0].length + splitter.length).trim(); - if (value.startsWith('"') && value.endsWith('"')) { - value = value.slice(1, -1); - } - attributes = { - ...attributes, - [key]: value - }; - }); - return attributes; + const splitter = ": "; + const lines = yaml.split(/(\r?\n)/); + let attributes = {}; + lines.forEach((line) => { + if (!line.includes(splitter)) { + return; + } + const split = line.split(splitter); + const key = split[0]; + let value = line.substring(split[0].length + splitter.length).trim(); + if (value.startsWith('"') && value.endsWith('"')) { + value = value.slice(1, -1); + } + attributes = { + ...attributes, + [key]: value + }; + }); + return attributes; } diff --git a/src/shared/gradients.ts b/src/shared/gradients.ts index 48bf6c419..8712f551a 100644 --- a/src/shared/gradients.ts +++ b/src/shared/gradients.ts @@ -5,12 +5,12 @@ export const endColors: Gradient = ["#da0641", "#ea6060"]; export const AvatarColors: Gradient = ["#FEB692", "#EA5455"]; export const DEFAULT_GRADIENT: Gradient[] = [ - ["#FF4D4D", "#F9CB28"], - ["#FF0080", "#7928CA"], - ["#007CF0", "#00DFD8"] + ["#FF4D4D", "#F9CB28"], + ["#FF0080", "#7928CA"], + ["#007CF0", "#00DFD8"] ]; export function isValidHex(hex: string): boolean { - let valid = /^#[0-9A-F]{6}$/i.test(hex); - return valid; + let valid = /^#[0-9A-F]{6}$/i.test(hex); + return valid; } diff --git a/src/shared/markdown-template.ts b/src/shared/markdown-template.ts index 3c970731d..ca54646a3 100644 --- a/src/shared/markdown-template.ts +++ b/src/shared/markdown-template.ts @@ -1,14 +1,14 @@ import { draftjsToMd } from "draftjs-md-converter"; export function createMarkdownServer( - content: Draft.RawDraftContentState | string + content: Draft.RawDraftContentState | string ): string { - if (typeof content === "string") { - return content; - } + if (typeof content === "string") { + return content; + } - if (content === undefined) { - return ""; - } - return draftjsToMd(content); + if (content === undefined) { + return ""; + } + return draftjsToMd(content); } diff --git a/src/shared/routes.ts b/src/shared/routes.ts index 3c1fe8cac..f28cd5307 100644 --- a/src/shared/routes.ts +++ b/src/shared/routes.ts @@ -1,14 +1,14 @@ export enum Routes { - DASHBOARD = "/dashboard", - NEW = "/new", - LOGIN = "/login", - EDIT = "/[id]/edit", - PREVIEW = "/[id]/preview", - STATS = "/[id]/stats", - ABOUT = "/about", - LEGAL = "/legal", - REGISTER = "/register", - SETTINGS = "/settings", - SIGN_OUT = "/signout", - INDEX = "/" + DASHBOARD = "/dashboard", + NEW = "/new", + LOGIN = "/login", + EDIT = "/[id]/edit", + PREVIEW = "/[id]/preview", + STATS = "/[id]/stats", + ABOUT = "/about", + LEGAL = "/legal", + REGISTER = "/register", + SETTINGS = "/settings", + SIGN_OUT = "/signout", + INDEX = "/" } diff --git a/src/shared/types.ts b/src/shared/types.ts index d6d75e8f3..60b099a08 100644 --- a/src/shared/types.ts +++ b/src/shared/types.ts @@ -1,6 +1,6 @@ export type Many = T | T[]; export type TokenContents = { - user: string; - name: string; + user: string; + name: string; }; diff --git a/src/shared/validations.ts b/src/shared/validations.ts index 58dcdbd3b..6214f3e67 100644 --- a/src/shared/validations.ts +++ b/src/shared/validations.ts @@ -2,23 +2,23 @@ import { z } from "zod"; import { VALID_LEGAL, VALID_PASSWORD } from "@shared/constants"; export class ValidationError extends Error { - public name = "ValidationError"; + public name = "ValidationError"; - public inner: Array<{ path: string; message: string }> = []; + public inner: Array<{ path: string; message: string }> = []; - public constructor(message: string) { - super(message); - } + public constructor(message: string) { + super(message); + } } function createValidationError(e: z.ZodError) { - const error = new ValidationError(e.message); - error.inner = e.errors.map((err) => ({ - message: err.message, - path: err.path.join(".") - })); + const error = new ValidationError(e.message); + error.inner = e.errors.map((err) => ({ + message: err.message, + path: err.path.join(".") + })); - return error; + return error; } /** @@ -27,17 +27,17 @@ function createValidationError(e: z.ZodError) { * @returns An object containing the `validate` method expected by Formik */ export function zodAdapter(schema: z.ZodSchema): { - validate: (obj: T) => Promise; + validate: (obj: T) => Promise; } { - return { - async validate(obj: T) { - try { - await schema.parseAsync(obj); - } catch (err: unknown) { - throw createValidationError(err as z.ZodError); - } - } - }; + return { + async validate(obj: T) { + try { + await schema.parseAsync(obj); + } catch (err: unknown) { + throw createValidationError(err as z.ZodError); + } + } + }; } // 1. must contain 1 lowercase letter @@ -47,67 +47,67 @@ export function zodAdapter(schema: z.ZodSchema): { // 5. must contain 6 characters export const legacyPasswordRegex = new RegExp( - /^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})/ + /^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})/ ); export const passwordRegex = new RegExp( - /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{6,}$/ + /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{6,}$/ ); export const passwordStringSchema = z - .string({ - required_error: "Must include password" - }) - .regex(passwordRegex, VALID_PASSWORD); + .string({ + required_error: "Must include password" + }) + .regex(passwordRegex, VALID_PASSWORD); /// Forms export const loginForm = z.object({ - user: z.string({ - required_error: "Username is required" - }), - password: z.string({ - required_error: "Password is required" - }) - // .regex(passwordRegex, VALID_PASSWORD) + user: z.string({ + required_error: "Username is required" + }), + password: z.string({ + required_error: "Password is required" + }) + // .regex(passwordRegex, VALID_PASSWORD) }); export const registerForm = z.object({ - legalChecked: z.boolean({ - required_error: VALID_LEGAL - }), - username: z.string({ required_error: "Username is required" }), - password: z - .string({ - required_error: "Must include password" - }) - .regex(passwordRegex, VALID_PASSWORD), - email: z.string({ required_error: "Email is required" }).email() + legalChecked: z.boolean({ + required_error: VALID_LEGAL + }), + username: z.string({ required_error: "Username is required" }), + password: z + .string({ + required_error: "Must include password" + }) + .regex(passwordRegex, VALID_PASSWORD), + email: z.string({ required_error: "Email is required" }).email() }); export const userSettings = z.object({ - username: z.string({ required_error: "You need a user name" }), - email: z.string({ required_error: "Email is required" }).email() + username: z.string({ required_error: "You need a user name" }), + email: z.string({ required_error: "Email is required" }).email() }); export const updatePassword = z - .object({ - oldPassword: z.string({ required_error: "Old password is required" }), - newPassword: z.string().regex(passwordRegex, VALID_PASSWORD), - confirmPassword: z.string() - }) - .refine((data) => data.newPassword === data.confirmPassword, { - message: "Passwords don't match", - path: ["confirmPassword"] // path of error - }); + .object({ + oldPassword: z.string({ required_error: "Old password is required" }), + newPassword: z.string().regex(passwordRegex, VALID_PASSWORD), + confirmPassword: z.string() + }) + .refine((data) => data.newPassword === data.confirmPassword, { + message: "Passwords don't match", + path: ["confirmPassword"] // path of error + }); export const localSettings = z.object({ - fontFamily: z.string(), - fileExtension: z.enum([".md", ".mdx", ".txt"]) + fontFamily: z.string(), + fileExtension: z.enum([".md", ".mdx", ".txt"]) }); export const createUserArgs = z.object({ - username: z.string(), - email: z.string().email(), - password: z.string().regex(passwordRegex, VALID_PASSWORD) + username: z.string(), + email: z.string().email(), + password: z.string().regex(passwordRegex, VALID_PASSWORD) }); diff --git a/src/tests/unit/auth.test.ts b/src/tests/unit/auth.test.ts index c08cbda65..87af74ce8 100644 --- a/src/tests/unit/auth.test.ts +++ b/src/tests/unit/auth.test.ts @@ -2,23 +2,23 @@ import { MockClient } from "@data/client"; import { DownwriteUIState } from "@data/store"; describe("Auth Module", () => { - it("can load data", () => { - const mockClient = new MockClient(); - const store = new DownwriteUIState(mockClient); - const state = store.auth.state.getValue(); - expect(state.authed).toBeFalsy(); - }); + it("can load data", () => { + const mockClient = new MockClient(); + const store = new DownwriteUIState(mockClient); + const state = store.auth.state.getValue(); + expect(state.authed).toBeFalsy(); + }); - it("can check data", async () => { - const mockClient = new MockClient(); - const store = new DownwriteUIState(mockClient); + it("can check data", async () => { + const mockClient = new MockClient(); + const store = new DownwriteUIState(mockClient); - store.graphql.setToken("MOCK_TOKEN"); - await store.auth.check(); + store.graphql.setToken("MOCK_TOKEN"); + await store.auth.check(); - const state = store.auth.state.getValue(); + const state = store.auth.state.getValue(); - expect(state.username).toEqual("david-yates"); - expect(state.id).toEqual("1"); - }); + expect(state.username).toEqual("david-yates"); + expect(state.id).toEqual("1"); + }); }); diff --git a/src/tests/unit/documents.ts b/src/tests/unit/documents.ts index 047726376..a48fce8aa 100644 --- a/src/tests/unit/documents.ts +++ b/src/tests/unit/documents.ts @@ -1,61 +1,61 @@ import { gql } from "apollo-server-micro"; export const EntryInfoFragmentDoc = gql` - fragment EntryInfo on Entry { - title - dateAdded - id - public - } + fragment EntryInfo on Entry { + title + dateAdded + id + public + } `; export const EditDocument = gql` - query Edit($id: ID!) { - entry(id: $id) { - ...EntryInfo - content - } - } - ${EntryInfoFragmentDoc} + query Edit($id: ID!) { + entry(id: $id) { + ...EntryInfo + content + } + } + ${EntryInfoFragmentDoc} `; export const AllPostsDocument = gql` - query AllPosts { - feed { - ...EntryInfo - } - } - ${EntryInfoFragmentDoc} + query AllPosts { + feed { + ...EntryInfo + } + } + ${EntryInfoFragmentDoc} `; export const CreateUserDocument = gql` - mutation CreateUser($username: String!, $email: String!, $password: String!) { - createUser(username: $username, email: $email, password: $password) { - token - } - } + mutation CreateUser($username: String!, $email: String!, $password: String!) { + createUser(username: $username, email: $email, password: $password) { + token + } + } `; export const CreateEntryDocument = gql` - mutation CreateEntry($content: String, $title: String) { - createEntry(content: $content, title: $title) { - ...EntryInfo - } - } - ${EntryInfoFragmentDoc} + mutation CreateEntry($content: String, $title: String) { + createEntry(content: $content, title: $title) { + ...EntryInfo + } + } + ${EntryInfoFragmentDoc} `; export const UpdateEntryDocument = gql` - mutation UpdateEntry( - $id: String! - $content: String! - $title: String! - $status: Boolean! - ) { - updateEntry(id: $id, content: $content, title: $title, status: $status) { - ...EntryInfo - content - } - } - ${EntryInfoFragmentDoc} + mutation UpdateEntry( + $id: String! + $content: String! + $title: String! + $status: Boolean! + ) { + updateEntry(id: $id, content: $content, title: $title, status: $status) { + ...EntryInfo + content + } + } + ${EntryInfoFragmentDoc} `; diff --git a/src/tests/unit/editor.test.ts b/src/tests/unit/editor.test.ts index ca8c23b2b..250fb0c7e 100644 --- a/src/tests/unit/editor.test.ts +++ b/src/tests/unit/editor.test.ts @@ -1,74 +1,74 @@ import { - convertFromRaw, - convertToRaw, - EditorState, - RawDraftContentState + convertFromRaw, + convertToRaw, + EditorState, + RawDraftContentState } from "draft-js"; import { fixRawContentState } from "../../editor/raw"; const fixture: RawDraftContentState = { - entityMap: {}, - blocks: [ - { - depth: 0, - type: "unstyled", - text: "That song about rainbows from the Rolling Stones, she comes in colors everywhere", - key: "...", - entityRanges: [], - inlineStyleRanges: [] - }, - { - type: "unstyled", - text: "", - key: "...", - entityRanges: [], - inlineStyleRanges: [], - depth: 0 - }, - { - depth: 0, - type: "unstyled", - text: "A whole line of content", - key: "...", - entityRanges: [], - inlineStyleRanges: [] - }, - { - type: "unstyled", - text: "", - key: "...", - entityRanges: [], - inlineStyleRanges: [], - depth: 0 - }, - { - depth: 0, - type: "unstyled", - text: "Does someone need another red bull?", - key: "...", - entityRanges: [], - inlineStyleRanges: [] - } - ] + entityMap: {}, + blocks: [ + { + depth: 0, + type: "unstyled", + text: "That song about rainbows from the Rolling Stones, she comes in colors everywhere", + key: "...", + entityRanges: [], + inlineStyleRanges: [] + }, + { + type: "unstyled", + text: "", + key: "...", + entityRanges: [], + inlineStyleRanges: [], + depth: 0 + }, + { + depth: 0, + type: "unstyled", + text: "A whole line of content", + key: "...", + entityRanges: [], + inlineStyleRanges: [] + }, + { + type: "unstyled", + text: "", + key: "...", + entityRanges: [], + inlineStyleRanges: [], + depth: 0 + }, + { + depth: 0, + type: "unstyled", + text: "Does someone need another red bull?", + key: "...", + entityRanges: [], + inlineStyleRanges: [] + } + ] }; describe("Editor Utils", () => { - it("Fix for raw content bug", () => { - const fixed = fixRawContentState(fixture); + it("Fix for raw content bug", () => { + const fixed = fixRawContentState(fixture); - expect(fixture.blocks.length).not.toEqual( - convertToRaw( - EditorState.createWithContent(convertFromRaw(fixture)).getCurrentContent() - ).blocks.length - ); - expect(new Set(fixed.blocks.map((b) => b.key)).size).toEqual( - fixture.blocks.length - ); + expect(fixture.blocks.length).not.toEqual( + convertToRaw( + EditorState.createWithContent(convertFromRaw(fixture)).getCurrentContent() + ).blocks.length + ); + expect(new Set(fixed.blocks.map((b) => b.key)).size).toEqual( + fixture.blocks.length + ); - expect(fixture.blocks.length).toEqual( - convertToRaw( - EditorState.createWithContent(convertFromRaw(fixed)).getCurrentContent() - ).blocks.length - ); - }); + expect(fixture.blocks.length).toEqual( + convertToRaw( + EditorState.createWithContent(convertFromRaw(fixed)).getCurrentContent() + ).blocks.length + ); + }); }); diff --git a/src/tests/unit/frontmatter.test.ts b/src/tests/unit/frontmatter.test.ts index 77ca6eb7d..cc4a63130 100644 --- a/src/tests/unit/frontmatter.test.ts +++ b/src/tests/unit/frontmatter.test.ts @@ -9,15 +9,15 @@ Hello `.trim(); describe("Front matter", () => { - it("parses frontmatter", () => { - const parsed = fmParserr(fixture); + it("parses frontmatter", () => { + const parsed = fmParserr(fixture); - expect(parsed.attributes.title).toBe("Red Dead Redemption"); - }); + expect(parsed.attributes.title).toBe("Red Dead Redemption"); + }); - it("preserves body", () => { - const parsed = fmParserr(fixture); + it("preserves body", () => { + const parsed = fmParserr(fixture); - expect(parsed.body).toContain("Hello"); - }); + expect(parsed.body).toContain("Hello"); + }); }); diff --git a/src/tests/unit/graphql.test.ts b/src/tests/unit/graphql.test.ts index 8caab82f6..f72469b11 100644 --- a/src/tests/unit/graphql.test.ts +++ b/src/tests/unit/graphql.test.ts @@ -1,11 +1,11 @@ import { ApolloServer } from "apollo-server-micro"; import base64 from "base-64"; import { - CreateUserDocument, - CreateEntryDocument, - AllPostsDocument, - EditDocument, - UpdateEntryDocument + CreateUserDocument, + CreateEntryDocument, + AllPostsDocument, + EditDocument, + UpdateEntryDocument } from "./documents"; import { MockContext } from "./mock"; @@ -15,109 +15,109 @@ import { VALID_PASSWORD } from "@shared/constants"; const serverContext = new MockContext(); const testServer = new ApolloServer({ - schema: schema, - context() { - return serverContext; - } + schema: schema, + context() { + return serverContext; + } }); beforeAll(async () => {}); afterAll(async () => { - await stopDB(); + await stopDB(); }); describe("GraphQL API", () => { - it("create user", async () => { - const name = "charliex"; - - const { errors } = await testServer.executeOperation({ - query: CreateUserDocument, - variables: { - username: name, - email: "test@charlieisamazing.com", - password: base64.encode("password") - } - }); - - const working = await testServer.executeOperation({ - query: CreateUserDocument, - variables: { - username: name, - email: "test@charlieisamazing.com", - password: base64.encode("P@ssw0rd") - } - }); - if (errors) { - expect(errors[0].message).toContain(VALID_PASSWORD); - } - if (working.data?.createUser) { - serverContext.setAuthorization(working.data.createUser.token); - } - - expect(working.data?.createUser).not.toBeNull(); - expect(working.data?.createUser.token).toEqual( - serverContext.req.headers.authorization - ); - }); - - it("can add entry", async () => { - const feedQuery = await testServer.executeOperation({ - query: AllPostsDocument - }); - - expect(feedQuery.data?.feed).toEqual([]); - expect(feedQuery.errors).toBeUndefined(); - - const { data } = await testServer.executeOperation({ - query: CreateEntryDocument, - variables: { - content: "> Hello!", - title: "Something" - } - }); - - const postQuery = await testServer.executeOperation({ - query: EditDocument, - variables: { - id: data?.createEntry.id - } - }); - - expect(data?.createEntry.id).not.toBeUndefined(); - expect(postQuery.data?.entry.id).toEqual(data?.createEntry.id); - }); - - it("can edit entry", async () => { - const feedQuery = await testServer.executeOperation({ - query: AllPostsDocument - }); - - const entry = feedQuery.data?.feed[0]; - - const { data } = await testServer.executeOperation({ - query: UpdateEntryDocument, - variables: { - id: entry.id, - title: "Updated Entry", - status: entry.public, - content: `> Hello Everyone!` - } - }); - - expect(data?.updateEntry.title).toBe("Updated Entry"); - expect(data?.updateEntry.content).toBe(`> Hello Everyone!`); - }); - - it("can query feed", async () => { - const { errors, data } = await testServer.executeOperation({ - query: AllPostsDocument - }); - - expect(data?.feed).toHaveLength(1); - expect(errors).toBeUndefined(); - }); - - it.todo("can remove post"); - it.todo("can reauthenticates"); + it("create user", async () => { + const name = "charliex"; + + const { errors } = await testServer.executeOperation({ + query: CreateUserDocument, + variables: { + username: name, + email: "test@charlieisamazing.com", + password: base64.encode("password") + } + }); + + const working = await testServer.executeOperation({ + query: CreateUserDocument, + variables: { + username: name, + email: "test@charlieisamazing.com", + password: base64.encode("P@ssw0rd") + } + }); + if (errors) { + expect(errors[0].message).toContain(VALID_PASSWORD); + } + if (working.data?.createUser) { + serverContext.setAuthorization(working.data.createUser.token); + } + + expect(working.data?.createUser).not.toBeNull(); + expect(working.data?.createUser.token).toEqual( + serverContext.req.headers.authorization + ); + }); + + it("can add entry", async () => { + const feedQuery = await testServer.executeOperation({ + query: AllPostsDocument + }); + + expect(feedQuery.data?.feed).toEqual([]); + expect(feedQuery.errors).toBeUndefined(); + + const { data } = await testServer.executeOperation({ + query: CreateEntryDocument, + variables: { + content: "> Hello!", + title: "Something" + } + }); + + const postQuery = await testServer.executeOperation({ + query: EditDocument, + variables: { + id: data?.createEntry.id + } + }); + + expect(data?.createEntry.id).not.toBeUndefined(); + expect(postQuery.data?.entry.id).toEqual(data?.createEntry.id); + }); + + it("can edit entry", async () => { + const feedQuery = await testServer.executeOperation({ + query: AllPostsDocument + }); + + const entry = feedQuery.data?.feed[0]; + + const { data } = await testServer.executeOperation({ + query: UpdateEntryDocument, + variables: { + id: entry.id, + title: "Updated Entry", + status: entry.public, + content: `> Hello Everyone!` + } + }); + + expect(data?.updateEntry.title).toBe("Updated Entry"); + expect(data?.updateEntry.content).toBe(`> Hello Everyone!`); + }); + + it("can query feed", async () => { + const { errors, data } = await testServer.executeOperation({ + query: AllPostsDocument + }); + + expect(data?.feed).toHaveLength(1); + expect(errors).toBeUndefined(); + }); + + it.todo("can remove post"); + it.todo("can reauthenticates"); }); diff --git a/src/tests/unit/mock.ts b/src/tests/unit/mock.ts index 8dcc08b1e..472f517e1 100644 --- a/src/tests/unit/mock.ts +++ b/src/tests/unit/mock.ts @@ -1,24 +1,24 @@ import { ServerResponse } from "http"; export class MockContext { - public req: any; - public res: Pick; - constructor() { - this.req = { - headers: { - authorization: "" - } - }; + public req: any; + public res: Pick; + constructor() { + this.req = { + headers: { + authorization: "" + } + }; - this.res = { - setHeader: (_name: string, value: any) => { - console.log(_name, value); - return {} as any; - } - }; - } + this.res = { + setHeader: (_name: string, value: any) => { + console.log(_name, value); + return {} as any; + } + }; + } - setAuthorization(token: string) { - this.req.headers.authorization = token; - } + setAuthorization(token: string) { + this.req.headers.authorization = token; + } } diff --git a/src/tests/unit/validations.test.ts b/src/tests/unit/validations.test.ts index 02af102b6..280a39342 100644 --- a/src/tests/unit/validations.test.ts +++ b/src/tests/unit/validations.test.ts @@ -1,67 +1,67 @@ import * as Validations from "@shared/validations"; describe("Validations", () => { - it("Local Settings", async () => { - await expect( - Validations.localSettings.parseAsync({ - fontFamily: "Fira Code", - fileExtension: "doc" - }) - ).rejects.toThrowError(); - }); + it("Local Settings", async () => { + await expect( + Validations.localSettings.parseAsync({ + fontFamily: "Fira Code", + fileExtension: "doc" + }) + ).rejects.toThrowError(); + }); - it("Register", async () => { - await expect( - Validations.registerForm.parseAsync({ - legalChecked: false - }) - ).rejects.toThrowError(); + it("Register", async () => { + await expect( + Validations.registerForm.parseAsync({ + legalChecked: false + }) + ).rejects.toThrowError(); - await expect( - Validations.registerForm.parseAsync({ - legalChecked: false, - password: "Nope", - email: "email@test.com", - user: "charlie" - }) - ).rejects.toThrowError(); - }); + await expect( + Validations.registerForm.parseAsync({ + legalChecked: false, + password: "Nope", + email: "email@test.com", + user: "charlie" + }) + ).rejects.toThrowError(); + }); - it("User Settings", async () => { - await expect( - Validations.userSettings.parseAsync({ - email: "red.com", - user: "somehello" - }) - ).rejects.toThrowError(); - }); + it("User Settings", async () => { + await expect( + Validations.userSettings.parseAsync({ + email: "red.com", + user: "somehello" + }) + ).rejects.toThrowError(); + }); - it("Login", async () => { - await expect( - Validations.loginForm.parseAsync({ - user: "hello", - password: "not hello" - }) - ).resolves.not.toThrowError(); - }); + it("Login", async () => { + await expect( + Validations.loginForm.parseAsync({ + user: "hello", + password: "not hello" + }) + ).resolves.not.toThrowError(); + }); - it("passwords", async () => { - const working = { - username: "...", - email: "test@test.com", - password: "P@ssw0rd" - }; + it("passwords", async () => { + const working = { + username: "...", + email: "test@test.com", + password: "P@ssw0rd" + }; - const broken = { - username: "...", - email: "test@test.com", - password: "Expect" - }; + const broken = { + username: "...", + email: "test@test.com", + password: "Expect" + }; - await expect( - Validations.createUserArgs.parseAsync(broken) - ).rejects.toThrowError(); + await expect( + Validations.createUserArgs.parseAsync(broken) + ).rejects.toThrowError(); - expect(Validations.createUserArgs.parse(working)).toStrictEqual(working); - }); + expect(Validations.createUserArgs.parse(working)).toStrictEqual(working); + }); }); diff --git a/tsconfig.json b/tsconfig.json index 301ae7c68..78db45a5a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,38 +1,38 @@ { - "compileOnSave": false, - "compilerOptions": { - "module": "esnext", - "target": "ES2019", - "jsx": "preserve", - "allowJs": true, - "moduleResolution": "node", - "allowSyntheticDefaultImports": true, - "noUnusedLocals": true, - "noUnusedParameters": false, - "removeComments": false, - "resolveJsonModule": true, - "preserveConstEnums": true, - "sourceMap": true, - "skipLibCheck": true, - "noImplicitAny": true, - "baseUrl": ".", - "paths": { - "@legacy/*": ["src/legacy/*"], - "@components/*": ["src/components/*"], - "@hooks/*": ["src/hooks/*"], - "@server/*": ["src/server/*"], - "@data/*": ["src/data/*"], - "@shared/*": ["src/shared/*"] - }, - "lib": ["dom", "es2016", "es2017.object"], - "typeRoots": ["./types"], - "strict": false, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "isolatedModules": true, - "incremental": true - }, - "exclude": ["next.config.mjs", "node_modules/@jest"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"] + "compileOnSave": false, + "compilerOptions": { + "module": "esnext", + "target": "ES2019", + "jsx": "preserve", + "allowJs": true, + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "noUnusedLocals": true, + "noUnusedParameters": false, + "removeComments": false, + "resolveJsonModule": true, + "preserveConstEnums": true, + "sourceMap": true, + "skipLibCheck": true, + "noImplicitAny": true, + "baseUrl": ".", + "paths": { + "@legacy/*": ["src/legacy/*"], + "@components/*": ["src/components/*"], + "@hooks/*": ["src/hooks/*"], + "@server/*": ["src/server/*"], + "@data/*": ["src/data/*"], + "@shared/*": ["src/shared/*"] + }, + "lib": ["dom", "es2016", "es2017.object"], + "typeRoots": ["./types"], + "strict": false, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "isolatedModules": true, + "incremental": true + }, + "exclude": ["next.config.mjs", "node_modules/@jest"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"] } diff --git a/types/graphql.d.ts b/types/graphql.d.ts index 954a3798a..319d362b5 100644 --- a/types/graphql.d.ts +++ b/types/graphql.d.ts @@ -1,6 +1,6 @@ declare module "*.graphql" { - import { DocumentNode } from "graphql"; - const Schema: DocumentNode; + import { DocumentNode } from "graphql"; + const Schema: DocumentNode; - export = Schema; + export = Schema; } diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..93c5031f3 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,9922 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@apollo/protobufjs@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.2.tgz#4bd92cd7701ccaef6d517cdb75af2755f049f87c" + integrity sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +"@apollographql/apollo-tools@^0.5.0": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz#cb3998c6cf12e494b90c733f44dd9935e2d8196c" + integrity sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw== + +"@apollographql/graphql-playground-html@1.6.27": + version "1.6.27" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz#bc9ab60e9445aa2a8813b4e94f152fa72b756335" + integrity sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw== + dependencies: + xss "^1.0.8" + +"@apollographql/graphql-upload-8-fork@^8.1.4": + version "8.1.4" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.4.tgz#898a6826cf53b13e42161884b0090d3bb8c8b2f3" + integrity sha512-lHAj/PUegYu02zza9Pg0bQQYH5I0ah1nyIzu2YIqOv41P0vu3GCBISAmQCfFHThK7N3dy7dLFPhoKcXlXRLPoQ== + dependencies: + "@types/express" "*" + "@types/fs-capacitor" "^2.0.0" + "@types/koa" "*" + busboy "^0.3.1" + fs-capacitor "^2.0.4" + http-errors "^1.7.3" + object-path "^0.11.4" + +"@ardatan/relay-compiler@12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" + integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== + 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" + +"@ardatan/sync-fetch@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f" + integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== + dependencies: + node-fetch "^2.6.1" + +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/abort-controller@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.310.0.tgz#0da2d29b823daa03b7c1f0b43de1f030583b4f51" + integrity sha512-v1zrRQxDLA1MdPim159Vx/CPHqsB4uybSxRi1CnfHO5ZjHryx3a5htW2gdGAykVCul40+yJXvfpufMrELVxH+g== + dependencies: + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/client-cognito-identity@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.310.0.tgz#900bd19213545ccba2be3b39e0fae3e8f668d659" + integrity sha512-B/TkLIGwuHlQTaku8eNAWcCPhe/5RCRxY8G6eNkw3jL8lAddEFfK0bpZRZdDaPcAXrNNImqVHk+7Q/mSGUOsNA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.310.0" + "@aws-sdk/config-resolver" "3.310.0" + "@aws-sdk/credential-provider-node" "3.310.0" + "@aws-sdk/fetch-http-handler" "3.310.0" + "@aws-sdk/hash-node" "3.310.0" + "@aws-sdk/invalid-dependency" "3.310.0" + "@aws-sdk/middleware-content-length" "3.310.0" + "@aws-sdk/middleware-endpoint" "3.310.0" + "@aws-sdk/middleware-host-header" "3.310.0" + "@aws-sdk/middleware-logger" "3.310.0" + "@aws-sdk/middleware-recursion-detection" "3.310.0" + "@aws-sdk/middleware-retry" "3.310.0" + "@aws-sdk/middleware-serde" "3.310.0" + "@aws-sdk/middleware-signing" "3.310.0" + "@aws-sdk/middleware-stack" "3.310.0" + "@aws-sdk/middleware-user-agent" "3.310.0" + "@aws-sdk/node-config-provider" "3.310.0" + "@aws-sdk/node-http-handler" "3.310.0" + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/smithy-client" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/url-parser" "3.310.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.310.0" + "@aws-sdk/util-defaults-mode-node" "3.310.0" + "@aws-sdk/util-endpoints" "3.310.0" + "@aws-sdk/util-retry" "3.310.0" + "@aws-sdk/util-user-agent-browser" "3.310.0" + "@aws-sdk/util-user-agent-node" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/client-sso-oidc@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.310.0.tgz#f71eeb9cc73c13661728cf88d8513b0209b6d265" + integrity sha512-3GKaRSfMD3OiYWGa+qg5KvJw0nLV0Vu7zRiulLuKDvgmWw3SNJKn3frWlmq/bKFUKahLsV8zozbeJItxtKAD6g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.310.0" + "@aws-sdk/fetch-http-handler" "3.310.0" + "@aws-sdk/hash-node" "3.310.0" + "@aws-sdk/invalid-dependency" "3.310.0" + "@aws-sdk/middleware-content-length" "3.310.0" + "@aws-sdk/middleware-endpoint" "3.310.0" + "@aws-sdk/middleware-host-header" "3.310.0" + "@aws-sdk/middleware-logger" "3.310.0" + "@aws-sdk/middleware-recursion-detection" "3.310.0" + "@aws-sdk/middleware-retry" "3.310.0" + "@aws-sdk/middleware-serde" "3.310.0" + "@aws-sdk/middleware-stack" "3.310.0" + "@aws-sdk/middleware-user-agent" "3.310.0" + "@aws-sdk/node-config-provider" "3.310.0" + "@aws-sdk/node-http-handler" "3.310.0" + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/smithy-client" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/url-parser" "3.310.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.310.0" + "@aws-sdk/util-defaults-mode-node" "3.310.0" + "@aws-sdk/util-endpoints" "3.310.0" + "@aws-sdk/util-retry" "3.310.0" + "@aws-sdk/util-user-agent-browser" "3.310.0" + "@aws-sdk/util-user-agent-node" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/client-sso@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.310.0.tgz#1ead31442c34ed660479ea9317faab4f1fa47130" + integrity sha512-netFap3Mp9I7bzAjsswHPA5WEbQtNMmXvW9/IVb7tmf85/esXCWindtyI43e/Xerut9ZVyEACPBFn30CLLE2xQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.310.0" + "@aws-sdk/fetch-http-handler" "3.310.0" + "@aws-sdk/hash-node" "3.310.0" + "@aws-sdk/invalid-dependency" "3.310.0" + "@aws-sdk/middleware-content-length" "3.310.0" + "@aws-sdk/middleware-endpoint" "3.310.0" + "@aws-sdk/middleware-host-header" "3.310.0" + "@aws-sdk/middleware-logger" "3.310.0" + "@aws-sdk/middleware-recursion-detection" "3.310.0" + "@aws-sdk/middleware-retry" "3.310.0" + "@aws-sdk/middleware-serde" "3.310.0" + "@aws-sdk/middleware-stack" "3.310.0" + "@aws-sdk/middleware-user-agent" "3.310.0" + "@aws-sdk/node-config-provider" "3.310.0" + "@aws-sdk/node-http-handler" "3.310.0" + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/smithy-client" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/url-parser" "3.310.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.310.0" + "@aws-sdk/util-defaults-mode-node" "3.310.0" + "@aws-sdk/util-endpoints" "3.310.0" + "@aws-sdk/util-retry" "3.310.0" + "@aws-sdk/util-user-agent-browser" "3.310.0" + "@aws-sdk/util-user-agent-node" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/client-sts@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.310.0.tgz#f1f13751c527d3f98759f6bbccee716b7d8a01d5" + integrity sha512-V1LyJwmWuo0OaPIWrE/BDNr14FJdnBTVCmCnEnq1DKVQI/ihVr8HuDsSM4K8jaywWNJaQFNvAKOVuCY2BdmIyA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.310.0" + "@aws-sdk/credential-provider-node" "3.310.0" + "@aws-sdk/fetch-http-handler" "3.310.0" + "@aws-sdk/hash-node" "3.310.0" + "@aws-sdk/invalid-dependency" "3.310.0" + "@aws-sdk/middleware-content-length" "3.310.0" + "@aws-sdk/middleware-endpoint" "3.310.0" + "@aws-sdk/middleware-host-header" "3.310.0" + "@aws-sdk/middleware-logger" "3.310.0" + "@aws-sdk/middleware-recursion-detection" "3.310.0" + "@aws-sdk/middleware-retry" "3.310.0" + "@aws-sdk/middleware-sdk-sts" "3.310.0" + "@aws-sdk/middleware-serde" "3.310.0" + "@aws-sdk/middleware-signing" "3.310.0" + "@aws-sdk/middleware-stack" "3.310.0" + "@aws-sdk/middleware-user-agent" "3.310.0" + "@aws-sdk/node-config-provider" "3.310.0" + "@aws-sdk/node-http-handler" "3.310.0" + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/smithy-client" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/url-parser" "3.310.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.310.0" + "@aws-sdk/util-defaults-mode-node" "3.310.0" + "@aws-sdk/util-endpoints" "3.310.0" + "@aws-sdk/util-retry" "3.310.0" + "@aws-sdk/util-user-agent-browser" "3.310.0" + "@aws-sdk/util-user-agent-node" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + fast-xml-parser "4.1.2" + tslib "^2.5.0" + +"@aws-sdk/config-resolver@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.310.0.tgz#c02dce96546d5cd25551bc89907b27224e16ca7f" + integrity sha512-8vsT+/50lOqfDxka9m/rRt6oxv1WuGZoP8oPMk0Dt+TxXMbAzf4+rejBgiB96wshI1k3gLokYRjSQZn+dDtT8g== + dependencies: + "@aws-sdk/types" "3.310.0" + "@aws-sdk/util-config-provider" "3.310.0" + "@aws-sdk/util-middleware" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-cognito-identity@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.310.0.tgz#490f643b73271b7047f0951880fa49f23dd93871" + integrity sha512-OaygLQefOtETaFfe9FLHlenPMYSmP7W80X+ZoXk3gpFw1pUPdJVlhOgMWavt3Je8kMOIBHlsj08UzqkG4b2ymw== + dependencies: + "@aws-sdk/client-cognito-identity" "3.310.0" + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-env@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.310.0.tgz#c52694fb276341db6ce4e816cf9ca90fa5830dad" + integrity sha512-vvIPQpI16fj95xwS7M3D48F7QhZJBnnCgB5lR+b7So+vsG9ibm1mZRVGzVpdxCvgyOhHFbvrby9aalNJmmIP1A== + dependencies: + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-imds@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.310.0.tgz#d8fb1223fee7e289a81e28177fe55dedf4d2745e" + integrity sha512-baxK7Zp6dai5AGW01FIW27xS2KAaPUmKLIXv5SvFYsUgXXvNW55im4uG3b+2gA0F7V+hXvVBH08OEqmwW6we5w== + dependencies: + "@aws-sdk/node-config-provider" "3.310.0" + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/url-parser" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-ini@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.310.0.tgz#c317c803b78d6b322a440de15069b35b88c737e5" + integrity sha512-gtRz7I+4BBpwZ3tc6UIt5lQuiAFnkpOibxHh95x1M6HDxBjm+uqD6RPZYVH+dULZPYXOtOTsHV0IGjrcV0sSRg== + dependencies: + "@aws-sdk/credential-provider-env" "3.310.0" + "@aws-sdk/credential-provider-imds" "3.310.0" + "@aws-sdk/credential-provider-process" "3.310.0" + "@aws-sdk/credential-provider-sso" "3.310.0" + "@aws-sdk/credential-provider-web-identity" "3.310.0" + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/shared-ini-file-loader" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-node@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.310.0.tgz#e4f69cf95e839c626c41e23b1d8b3cd24c667d8e" + integrity sha512-FrOztUcOq2Sp32xGtJvxfvdlmuAeoxIu/AElHzV1bkx6Pzo9DkQBhXrSQ+JFSpI++weOD4ZGFhAvgbgUOT4VAg== + dependencies: + "@aws-sdk/credential-provider-env" "3.310.0" + "@aws-sdk/credential-provider-imds" "3.310.0" + "@aws-sdk/credential-provider-ini" "3.310.0" + "@aws-sdk/credential-provider-process" "3.310.0" + "@aws-sdk/credential-provider-sso" "3.310.0" + "@aws-sdk/credential-provider-web-identity" "3.310.0" + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/shared-ini-file-loader" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-process@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.310.0.tgz#0b2ee77f0c48262442d2768044d72332a4ad8884" + integrity sha512-h73sg6GPMUWC+3zMCbA1nZ2O03nNJt7G96JdmnantiXBwHpRKWW8nBTLzx5uhXn6hTuTaoQRP/P+oxQJKYdMmA== + dependencies: + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/shared-ini-file-loader" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-sso@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.310.0.tgz#86ab095ede5024a4e16aabaf3b2fa92d61656b8d" + integrity sha512-nXkpT8mrM/wRqSiz/a4p9U2UrOKyfZXhbPHIHyQj8K+uLjsYS+WPuH287J4A5Q57A6uarTrj5RjHmVeZVLaHmg== + dependencies: + "@aws-sdk/client-sso" "3.310.0" + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/shared-ini-file-loader" "3.310.0" + "@aws-sdk/token-providers" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-web-identity@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.310.0.tgz#c9fa09b0068027e58d31178e3fa06bf4e9ae9d36" + integrity sha512-H4SzuZXILNhK6/IR1uVvsUDZvzc051hem7GLyYghBCu8mU+tq28YhKE8MfSroi6eL2e5Vujloij1OM2EQQkPkw== + dependencies: + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/credential-providers@^3.186.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.310.0.tgz#6bb591aa340a9c056940b5cc6e3c276e2a69cd1e" + integrity sha512-9Re91wsHv4TQCSufXcDWvMz4HeAXlUT09yTrRcTt4wm/75IAYB8aLxbqv2hYSWomMIIWi7I+hPUdD9rl/IFU1A== + dependencies: + "@aws-sdk/client-cognito-identity" "3.310.0" + "@aws-sdk/client-sso" "3.310.0" + "@aws-sdk/client-sts" "3.310.0" + "@aws-sdk/credential-provider-cognito-identity" "3.310.0" + "@aws-sdk/credential-provider-env" "3.310.0" + "@aws-sdk/credential-provider-imds" "3.310.0" + "@aws-sdk/credential-provider-ini" "3.310.0" + "@aws-sdk/credential-provider-node" "3.310.0" + "@aws-sdk/credential-provider-process" "3.310.0" + "@aws-sdk/credential-provider-sso" "3.310.0" + "@aws-sdk/credential-provider-web-identity" "3.310.0" + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/fetch-http-handler@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.310.0.tgz#f31006b7b3103683d72e177cd27d80354f7a37c4" + integrity sha512-Bi9vIwzdkw1zMcvi/zGzlWS9KfIEnAq4NNhsnCxbQ4OoIRU9wvU+WGZdBBhxg0ZxZmpp1j1aZhU53lLjA07MHw== + dependencies: + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/querystring-builder" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/util-base64" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/hash-node@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.310.0.tgz#4c1c89b9a2da3bb9783de84f0b762cc055b90d67" + integrity sha512-NvE2fhRc8GRwCXBfDehxVAWCmVwVMILliAKVPAEr4yz2CkYs0tqU51S48x23dtna07H4qHtgpeNqVTthcIQOEQ== + dependencies: + "@aws-sdk/types" "3.310.0" + "@aws-sdk/util-buffer-from" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/invalid-dependency@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.310.0.tgz#b96da9b9f63b12d1c390f9a06eeb28840fcb5b3c" + integrity sha512-1s5RG5rSPXoa/aZ/Kqr5U/7lqpx+Ry81GprQ2bxWqJvWQIJ0IRUwo5pk8XFxbKVr/2a+4lZT/c3OGoBOM1yRRA== + dependencies: + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/is-array-buffer@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz#f87a79f1b858c88744f07e8d8d0a791df204017e" + integrity sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/middleware-content-length@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.310.0.tgz#cc9b6c25c10736cec41d0219c94b57cfdb4582a3" + integrity sha512-P8tQZxgDt6CAh1wd/W6WPzjc+uWPJwQkm+F7rAwRlM+k9q17HrhnksGDKcpuuLyIhPQYdmOMIkpKVgXGa4avhQ== + dependencies: + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-endpoint@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.310.0.tgz#d4bf8ac3cd4800af789d6bcb469b7e8cfa10badb" + integrity sha512-Z+N2vOL8K354/lstkClxLLsr6hCpVRh+0tCMXrVj66/NtKysCEZ/0b9LmqOwD9pWHNiI2mJqXwY0gxNlKAroUg== + dependencies: + "@aws-sdk/middleware-serde" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/url-parser" "3.310.0" + "@aws-sdk/util-middleware" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-host-header@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.310.0.tgz#bdd4fbffb58b331bda517df8340aa8b44ce55550" + integrity sha512-QWSA+46/hXorXyWa61ic2K7qZzwHTiwfk2e9mRRjeIRepUgI3qxFjsYqrWtrOGBjmFmq0pYIY8Bb/DCJuQqcoA== + dependencies: + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-logger@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.310.0.tgz#8cc6381f49ef867cae1364b8517f939629e4dd9d" + integrity sha512-Lurm8XofrASBRnAVtiSNuDSRsRqPNg27RIFLLsLp/pqog9nFJ0vz0kgdb9S5Z+zw83Mm+UlqOe6D8NTUNp4fVg== + dependencies: + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-recursion-detection@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.310.0.tgz#020c986ed8da751bd613fd84c8c8a805c89e0952" + integrity sha512-SuB75/xk/gyue24gkriTwO2jFd7YcUGZDClQYuRejgbXSa3CO0lWyawQtfLcSSEBp9izrEVXuFH24K1eAft5nQ== + dependencies: + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-retry@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.310.0.tgz#12e95e962875d44af4acbdebe02db337a1ad5c35" + integrity sha512-oTPsRy2W4s+dfxbJPW7Km+hHtv/OMsNsVfThAq8DDYKC13qlr1aAyOqGLD+dpBy2aKe7ss517Sy2HcHtHqm7/g== + dependencies: + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/service-error-classification" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/util-middleware" "3.310.0" + "@aws-sdk/util-retry" "3.310.0" + tslib "^2.5.0" + uuid "^8.3.2" + +"@aws-sdk/middleware-sdk-sts@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.310.0.tgz#2001b421f317404ca98d4a1cfea408b7a64c35f5" + integrity sha512-+5PFwlYNLvLLIfw0ASAoWV/iIF8Zv6R6QGtyP0CclhRSvNjgbQDVnV0g95MC5qvh+GB/Yjlkt8qAjLSPjHfsrQ== + dependencies: + "@aws-sdk/middleware-signing" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-serde@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.310.0.tgz#e334031b66a1a155375ec901478b26570fbe1783" + integrity sha512-RNeeTVWSLTaentUeCgQKZhAl+C6hxtwD78cQWS10UymWpQFwbaxztzKUu4UQS5xA2j6PxwPRRUjqa4jcFjfLsg== + dependencies: + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-signing@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.310.0.tgz#bd62d5623c80f6318b0d738c44780875500c911a" + integrity sha512-f9mKq+XMdW207Af3hKjdTnpNhdtwqWuvFs/ZyXoOkp/g1MY1O6L23Jy6i52m29LxbT4AuNRG1oKODfXM0vYVjQ== + dependencies: + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/signature-v4" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/util-middleware" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-stack@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.310.0.tgz#06c83963998fbdc83e99b67a7a138529312a6224" + integrity sha512-010O1PD+UAcZVKRvqEusE1KJqN96wwrf6QsqbRM0ywsKQ21NDweaHvEDlds2VHpgmofxkRLRu/IDrlPkKRQrRg== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/middleware-user-agent@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.310.0.tgz#2aa3982cbc5e9c137024cec47914e86610ab0a09" + integrity sha512-x3IOwSwSbwKidlxRk3CNVHVUb06SRuaELxggCaR++QVI8NU6qD/l4VHXKVRvbTHiC/cYxXE/GaBDgQVpDR7V/g== + dependencies: + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/util-endpoints" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/node-config-provider@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.310.0.tgz#ba8fb41af2db0316291ba9002267627553ec65ac" + integrity sha512-T/Pp6htc6hq/Cq+MLNDSyiwWCMVF6GqbBbXKVlO5L8rdHx4sq9xPdoPveZhGWrxvkanjA6eCwUp6E0riBOSVng== + dependencies: + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/shared-ini-file-loader" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/node-http-handler@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.310.0.tgz#bd8e72c1c7cf4b48c2a21851f638ad5e63001787" + integrity sha512-irv9mbcM9xC2xYjArQF5SYmHBMu4ciMWtGsoHII1nRuFOl9FoT4ffTvEPuLlfC6pznzvKt9zvnm6xXj7gDChKg== + dependencies: + "@aws-sdk/abort-controller" "3.310.0" + "@aws-sdk/protocol-http" "3.310.0" + "@aws-sdk/querystring-builder" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/property-provider@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.310.0.tgz#5fae8a4c11bda052afa9747d47b031f1c4f0f246" + integrity sha512-3lxDb0akV6BBzmFe4nLPaoliQbAifyWJhuvuDOu7e8NzouvpQXs0275w9LePhhcgjKAEVXUIse05ZW2DLbxo/g== + dependencies: + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/protocol-http@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.310.0.tgz#855c3314cba7ff3024a9a9701ca3c641691d997e" + integrity sha512-fgZ1aw/irQtnrsR58pS8ThKOWo57Py3xX6giRvwSgZDEcxHfVzuQjy9yPuV++v04fdmdtgpbGf8WfvAAJ11yXQ== + dependencies: + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/querystring-builder@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.310.0.tgz#5307ea52c3a4a1ae6818bbb6987cc6fce68b043f" + integrity sha512-ZHH8GV/80+pWGo7DzsvwvXR5xVxUHXUvPJPFAkhr6nCf78igdoF8gR10ScFoEKbtEapoNTaZlKHPXxpD8aPG7A== + dependencies: + "@aws-sdk/types" "3.310.0" + "@aws-sdk/util-uri-escape" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/querystring-parser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.310.0.tgz#438183927e0b06e7c2ee004a1681b8d37c22e104" + integrity sha512-YkIznoP6lsiIUHinx++/lbb3tlMURGGqMpo0Pnn32zYzGrJXA6eC3D0as2EcMjo55onTfuLcIiX4qzXes2MYOA== + dependencies: + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/service-error-classification@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.310.0.tgz#352c1db426dcf54a44393bc9a0607dde796b2abb" + integrity sha512-PuyC7k3qfIKeH2LCnDwbttMOKq3qAx4buvg0yfnJtQOz6t1AR8gsnAq0CjKXXyfkXwNKWTqCpE6lVNUIkXgsMw== + +"@aws-sdk/shared-ini-file-loader@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.310.0.tgz#07e9c8e8e8bb0de7ed19b8cea908c920a493c9c9" + integrity sha512-N0q9pG0xSjQwc690YQND5bofm+4nfUviQ/Ppgan2kU6aU0WUq8KwgHJBto/YEEI+VlrME30jZJnxtOvcZJc2XA== + dependencies: + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/signature-v4@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.310.0.tgz#ad26426d3f72fa18e6808a36f827beb72d12bf2d" + integrity sha512-1M60P1ZBNAjCFv9sYW29OF6okktaeibWyW3lMXqzoHF70lHBZh+838iUchznXUA5FLabfn4jBFWMRxlAXJUY2Q== + dependencies: + "@aws-sdk/is-array-buffer" "3.310.0" + "@aws-sdk/types" "3.310.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + "@aws-sdk/util-middleware" "3.310.0" + "@aws-sdk/util-uri-escape" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/smithy-client@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.310.0.tgz#04fca042ffc120c35eeea1335fa055d39f1bd7bd" + integrity sha512-UHMFvhoB2RLzsTb0mQe1ofvBUg/+/JEu1uptavxf/hEpEKZnRAaHH5FNkTG+mbFd/olay/QFjqNcMD6t8LcsNQ== + dependencies: + "@aws-sdk/middleware-stack" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/token-providers@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.310.0.tgz#2d0b0d3ef729f6cdc6a0cc859e80bb9efea2d8fa" + integrity sha512-G1JvB+2v8k900VJFkKVQXgLGF50ShOEIPxfK1gSQLkSU85vPwGIAANs1KvnlW08FsNbWp3+sKca4kfYKsooXMw== + dependencies: + "@aws-sdk/client-sso-oidc" "3.310.0" + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/shared-ini-file-loader" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/types@3.310.0", "@aws-sdk/types@^3.222.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.310.0.tgz#b83a0580feb38b58417abb8b4ed3eae1a0cb7bc1" + integrity sha512-j8eamQJ7YcIhw7fneUfs8LYl3t01k4uHi4ZDmNRgtbmbmTTG3FZc2MotStZnp3nZB6vLiPF1o5aoJxWVvkzS6A== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/url-parser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.310.0.tgz#928c9eac2e3d74c3c5db4c6e364a1de00185dcaa" + integrity sha512-mCLnCaSB9rQvAgx33u0DujLvr4d5yEm/W5r789GblwwQnlNXedVu50QRizMLTpltYWyAUoXjJgQnJHmJMaKXhw== + dependencies: + "@aws-sdk/querystring-parser" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-base64@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz#d0fd49aff358c5a6e771d0001c63b1f97acbe34c" + integrity sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg== + dependencies: + "@aws-sdk/util-buffer-from" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-body-length-browser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz#3fca9d2f73c058edf1907e4a1d99a392fdd23eca" + integrity sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-body-length-node@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz#4846ae72834ab0636f29f89fc1878520f6543fed" + integrity sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-buffer-from@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz#7a72cb965984d3c6a7e256ae6cf1621f52e54a57" + integrity sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw== + dependencies: + "@aws-sdk/is-array-buffer" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-config-provider@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz#ff21f73d4774cfd7bd16ae56f905828600dda95f" + integrity sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-defaults-mode-browser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.310.0.tgz#db82bfdf339eea0bc8b1b059dfe9b62e5d3adbf4" + integrity sha512-Mr2AoQsjAYNM5oAS2YJlYJqhiCvkFV/hu48slOZgbY4G7ueW4cM0DPkR16wqjcRCGqZ4JmAZB8Q5R0DMrLjhOQ== + dependencies: + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/types" "3.310.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-defaults-mode-node@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.310.0.tgz#aee459c2da09e2c6e85c6db0406565312f45ccbb" + integrity sha512-JyBlvhQGR8w8NpFRZZXRVTDesafFKTu/gTWjcoxP7twa+fYHSIgPPFGnlcJ/iHaucjamSaWi5EQ+YQmnSZ8yHA== + dependencies: + "@aws-sdk/config-resolver" "3.310.0" + "@aws-sdk/credential-provider-imds" "3.310.0" + "@aws-sdk/node-config-provider" "3.310.0" + "@aws-sdk/property-provider" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-endpoints@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.310.0.tgz#fea8757038b62d49dacd653061ba04a2ea102a36" + integrity sha512-zG+/d/O5KPmAaeOMPd6bW1abifdT0H03f42keLjYEoRZzYtHPC5DuPE0UayiWGckI6BCDgy0sRKXCYS49UNFaQ== + dependencies: + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-hex-encoding@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz#19294c78986c90ae33f04491487863dc1d33bd87" + integrity sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40" + integrity sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-middleware@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.310.0.tgz#713c5bfa296f4cf707150a0a1e911afd50dcf939" + integrity sha512-FTSUKL/eRb9X6uEZClrTe27QFXUNNp7fxYrPndZwk1hlaOP5ix+MIHBcI7pIiiY/JPfOUmPyZOu+HetlFXjWog== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-retry@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.310.0.tgz#4cdc35e2dfdacf2d928ab474ba8b67bbadd6be3c" + integrity sha512-FwWGhCBLfoivTMUHu1LIn4NjrN9JLJ/aX5aZmbcPIOhZVFJj638j0qDgZXyfvVqBuBZh7M8kGq0Oahy3dp69OA== + dependencies: + "@aws-sdk/service-error-classification" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-uri-escape@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz#9f942f09a715d8278875013a416295746b6085ba" + integrity sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-browser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.310.0.tgz#48d463a93351b78b678df324f3518a9798029c44" + integrity sha512-yU/4QnHHuQ5z3vsUqMQVfYLbZGYwpYblPiuZx4Zo9+x0PBkNjYMqctdDcrpoH9Z2xZiDN16AmQGK1tix117ZKw== + dependencies: + "@aws-sdk/types" "3.310.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-node@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.310.0.tgz#ebefbedc5a4759adc958885741628ec0de1ab197" + integrity sha512-Ra3pEl+Gn2BpeE7KiDGpi4zj7WJXZA5GXnGo3mjbi9+Y3zrbuhJAbdZO3mO/o7xDgMC6ph4xCTbaSGzU6b6EDg== + dependencies: + "@aws-sdk/node-config-provider" "3.310.0" + "@aws-sdk/types" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-utf8@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz#4a7b9dcebb88e830d3811aeb21e9a6df4273afb4" + integrity sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA== + dependencies: + "@aws-sdk/util-buffer-from" "3.310.0" + tslib "^2.5.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" + integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== + +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.14.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659" + integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.4" + "@babel/helper-compilation-targets" "^7.21.4" + "@babel/helper-module-transforms" "^7.21.2" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.4" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.4" + "@babel/types" "^7.21.4" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.21.4", "@babel/generator@^7.7.2": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc" + integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA== + dependencies: + "@babel/types" "^7.21.4" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656" + integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg== + dependencies: + "@babel/compat-data" "^7.21.4" + "@babel/helper-validator-option" "^7.21.0" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18" + integrity sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" + integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== + dependencies: + "@babel/types" "^7.21.0" + +"@babel/helper-module-imports@^7.18.6": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + dependencies: + "@babel/types" "^7.21.4" + +"@babel/helper-module-transforms@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" + integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.2" + "@babel/types" "^7.21.2" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" + integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== + +"@babel/helpers@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" + integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" + integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== + +"@babel/plugin-proposal-class-properties@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.18.6": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz#3e37fca4f06d93567c1cd9b75156422e90a67107" + integrity sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-import-assertions@7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.18.6": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" + integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" + integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-arrow-functions@^7.0.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" + integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.0.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" + integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-classes@^7.0.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" + integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" + integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/template" "^7.20.7" + +"@babel/plugin-transform-destructuring@^7.0.0": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" + integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" + integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-flow" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.0.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" + integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-function-name@^7.0.0": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.0.0": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-commonjs@^7.0.0": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" + integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== + dependencies: + "@babel/helper-module-transforms" "^7.21.2" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-simple-access" "^7.20.2" + +"@babel/plugin-transform-object-super@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" + integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-property-literals@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-display-name@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" + integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz#656b42c2fdea0a6d8762075d58ef9d4e3c4ab8a2" + integrity sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-jsx" "^7.18.6" + "@babel/types" "^7.21.0" + +"@babel/plugin-transform-shorthand-properties@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.0.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + +"@babel/plugin-transform-template-literals@^7.0.0": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.20.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.7.2": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" + integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.4" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.21.4" + "@babel/types" "^7.21.4" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" + integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz#f6f729b02feee2c749f57e334b7a1b5f40a81724" + integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== + +"@eslint/eslintrc@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" + integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.1" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.38.0": + version "8.38.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.38.0.tgz#73a8a0d8aa8a8e6fe270431c5e72ae91b5337892" + integrity sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g== + +"@graphql-codegen/cli@^2.6.2": + version "2.16.5" + resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-2.16.5.tgz#b3b5eeec357af01c1cb72f6a4ea96e52bd49e662" + integrity sha512-XYPIp+q7fB0xAGSAoRykiTe4oY80VU+z+dw5nuv4mLY0+pv7+pa2C6Nwhdw7a65lXOhFviBApWCCZeqd54SMnA== + dependencies: + "@babel/generator" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/types" "^7.18.13" + "@graphql-codegen/core" "^2.6.8" + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-tools/apollo-engine-loader" "^7.3.6" + "@graphql-tools/code-file-loader" "^7.3.13" + "@graphql-tools/git-loader" "^7.2.13" + "@graphql-tools/github-loader" "^7.3.20" + "@graphql-tools/graphql-file-loader" "^7.5.0" + "@graphql-tools/json-file-loader" "^7.4.1" + "@graphql-tools/load" "^7.8.0" + "@graphql-tools/prisma-loader" "^7.2.49" + "@graphql-tools/url-loader" "^7.13.2" + "@graphql-tools/utils" "^9.0.0" + "@whatwg-node/fetch" "^0.6.0" + chalk "^4.1.0" + chokidar "^3.5.2" + cosmiconfig "^7.0.0" + cosmiconfig-typescript-loader "^4.3.0" + debounce "^1.2.0" + detect-indent "^6.0.0" + graphql-config "^4.4.0" + inquirer "^8.0.0" + is-glob "^4.0.1" + json-to-pretty-yaml "^1.2.2" + listr2 "^4.0.5" + log-symbols "^4.0.0" + shell-quote "^1.7.3" + string-env-interpolation "^1.0.1" + ts-log "^2.2.3" + ts-node "^10.9.1" + tslib "^2.4.0" + yaml "^1.10.0" + yargs "^17.0.0" + +"@graphql-codegen/core@^2.6.8": + version "2.6.8" + resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-2.6.8.tgz#00c4011e3619ddbc6af5e41b2f254d6f6759556e" + integrity sha512-JKllNIipPrheRgl+/Hm/xuWMw9++xNQ12XJR/OHHgFopOg4zmN3TdlRSyYcv/K90hCFkkIwhlHFUQTfKrm8rxQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.1" + "@graphql-tools/schema" "^9.0.0" + "@graphql-tools/utils" "^9.1.1" + tslib "~2.4.0" + +"@graphql-codegen/plugin-helpers@^2.7.2": + version "2.7.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz#6544f739d725441c826a8af6a49519f588ff9bed" + integrity sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg== + dependencies: + "@graphql-tools/utils" "^8.8.0" + change-case-all "1.0.14" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.4.0" + +"@graphql-codegen/plugin-helpers@^3.0.0", "@graphql-codegen/plugin-helpers@^3.1.1", "@graphql-codegen/plugin-helpers@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz#69a2e91178f478ea6849846ade0a59a844d34389" + integrity sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg== + dependencies: + "@graphql-tools/utils" "^9.0.0" + change-case-all "1.0.15" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.4.0" + +"@graphql-codegen/schema-ast@^2.6.1": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-2.6.1.tgz#8ba1b38827c034b51ecd3ce88622c2ae6cd3fe1a" + integrity sha512-5TNW3b1IHJjCh07D2yQNGDQzUpUl2AD+GVe1Dzjqyx/d2Fn0TPMxLsHsKPS4Plg4saO8FK/QO70wLsP7fdbQ1w== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-tools/utils" "^9.0.0" + tslib "~2.4.0" + +"@graphql-codegen/typescript-graphql-request@^4.4.4": + version "4.5.9" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-graphql-request/-/typescript-graphql-request-4.5.9.tgz#d8a9488b7419cabf2ca98ae3936e82b9d244f2e9" + integrity sha512-Vtv5qymUXcR4UFdHOlJHzK5TN+CZUwMwFDGb3n4Gjcr4yln1BWbUb7DXgD0GHzpXwDIj5G2XmJnFtr0jihBfrg== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.0.0" + "@graphql-codegen/visitor-plugin-common" "2.13.1" + auto-bind "~4.0.0" + tslib "~2.4.0" + +"@graphql-codegen/typescript-operations@^2.3.5": + version "2.5.13" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.13.tgz#f286c37f9c023356aacaa983ebd32e9e021a05ca" + integrity sha512-3vfR6Rx6iZU0JRt29GBkFlrSNTM6t+MSLF86ChvL4d/Jfo/JYAGuB3zNzPhirHYzJPCvLOAx2gy9ID1ltrpYiw== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-codegen/typescript" "^2.8.8" + "@graphql-codegen/visitor-plugin-common" "2.13.8" + auto-bind "~4.0.0" + tslib "~2.4.0" + +"@graphql-codegen/typescript-resolvers@^2.6.1": + version "2.7.13" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.7.13.tgz#169ba75bf686a96c2222ac8c5141e75ab6b4cb20" + integrity sha512-ZIXiUw86ctNYQe41RAwadhSMe0koNvomxNRK+ZYlWQn1gplpc3jcdgI+BrdJbBWK/6VBYKZzrayJHr1VsHfYJQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-codegen/typescript" "^2.8.8" + "@graphql-codegen/visitor-plugin-common" "2.13.8" + "@graphql-tools/utils" "^9.0.0" + auto-bind "~4.0.0" + tslib "~2.4.0" + +"@graphql-codegen/typescript@^2.4.4", "@graphql-codegen/typescript@^2.8.8": + version "2.8.8" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-2.8.8.tgz#8c3b9153e334db43c65f8f31ced69b4c60d14861" + integrity sha512-A0oUi3Oy6+DormOlrTC4orxT9OBZkIglhbJBcDmk34jAKKUgesukXRd4yOhmTrnbchpXz2T8IAOFB3FWIaK4Rw== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-codegen/schema-ast" "^2.6.1" + "@graphql-codegen/visitor-plugin-common" "2.13.8" + auto-bind "~4.0.0" + tslib "~2.4.0" + +"@graphql-codegen/visitor-plugin-common@2.13.1": + version "2.13.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz#2228660f6692bcdb96b1f6d91a0661624266b76b" + integrity sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-tools/optimize" "^1.3.0" + "@graphql-tools/relay-operation-optimizer" "^6.5.0" + "@graphql-tools/utils" "^8.8.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.4.0" + +"@graphql-codegen/visitor-plugin-common@2.13.8": + version "2.13.8" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz#09bc6317b227e5a278f394f4cef0d6c2d1910597" + integrity sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-tools/optimize" "^1.3.0" + "@graphql-tools/relay-operation-optimizer" "^6.5.0" + "@graphql-tools/utils" "^9.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.4.0" + +"@graphql-tools/apollo-engine-loader@^7.3.6": + version "7.3.26" + resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.26.tgz#91e54460d5579933e42a2010b8688c3459c245d8" + integrity sha512-h1vfhdJFjnCYn9b5EY1Z91JTF0KB3hHVJNQIsiUV2mpQXZdeOXQoaWeYEKaiI5R6kwBw5PP9B0fv3jfUIG8LyQ== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/utils" "^9.2.1" + "@whatwg-node/fetch" "^0.8.0" + tslib "^2.4.0" + +"@graphql-tools/batch-execute@^8.5.18": + version "8.5.18" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.18.tgz#2f0e91cc12e8eed32f14bc814f27c6a498b75e17" + integrity sha512-mNv5bpZMLLwhkmPA6+RP81A6u3KF4CSKLf3VX9hbomOkQR4db8pNs8BOvpZU54wKsUzMzdlws/2g/Dabyb2Vsg== + dependencies: + "@graphql-tools/utils" "9.2.1" + dataloader "2.2.2" + tslib "^2.4.0" + value-or-promise "1.0.12" + +"@graphql-tools/code-file-loader@^7.3.13": + version "7.3.21" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.21.tgz#3eed4ff4610cf0a6f4b1be17d0bce1eec9359479" + integrity sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA== + dependencies: + "@graphql-tools/graphql-tag-pluck" "7.5.0" + "@graphql-tools/utils" "9.2.1" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/delegate@9.0.30", "@graphql-tools/delegate@^9.0.30": + version "9.0.30" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.30.tgz#d91b0b61b91491e6434b1738ed831e89a4e228be" + integrity sha512-Q4xmpmFcPPrcrR6hZRmoinq9vPR38w26YKu8otKC6TgGpxxk7IBNe6bnvB9h0l05bs8nhDcYZBiLerqtYUFy8Q== + dependencies: + "@graphql-tools/batch-execute" "^8.5.18" + "@graphql-tools/executor" "^0.0.16" + "@graphql-tools/schema" "^9.0.16" + "@graphql-tools/utils" "^9.2.1" + dataloader "^2.2.2" + tslib "^2.5.0" + value-or-promise "^1.0.12" + +"@graphql-tools/executor-graphql-ws@^0.0.13": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.13.tgz#61deec5e87580147890b8d1a02817360e4466794" + integrity sha512-BCFTyXdNtX4BIMjVmctehTXJVdjknMx1d8uNuhENKc8x/hFWUBT2a2/vC/ewLzQ2aEdXMhru7ubYopp671/qUQ== + dependencies: + "@graphql-tools/utils" "9.2.1" + "@repeaterjs/repeater" "3.0.4" + "@types/ws" "^8.0.0" + graphql-ws "5.12.1" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + ws "8.13.0" + +"@graphql-tools/executor-http@^0.1.7", "@graphql-tools/executor-http@^0.1.9": + version "0.1.9" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz#ddd74ef376b4a2ed59c622acbcca068890854a30" + integrity sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ== + dependencies: + "@graphql-tools/utils" "^9.2.1" + "@repeaterjs/repeater" "^3.0.4" + "@whatwg-node/fetch" "^0.8.1" + dset "^3.1.2" + extract-files "^11.0.0" + meros "^1.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/executor-legacy-ws@^0.0.10": + version "0.0.10" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.10.tgz#9a75f46901db1e0406c110bac8340ba5d8d04189" + integrity sha512-DLd4t7LgPFkTIuVAgks6nj9kQCNmBIGg7enoAbkgcExW9xXm7dTB/QfHdu5/6EqFPbayt2G7NHWxY6IFTVkbkA== + dependencies: + "@graphql-tools/utils" "9.2.1" + "@types/ws" "^8.0.0" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + ws "8.13.0" + +"@graphql-tools/executor@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.16.tgz#6c7cfbc04c05149b8dd6630f9debeb0293e806d5" + integrity sha512-TGhvJPNaZbvhurLQtYBfedvNRuokvoPRC3vCjeHCe9AOUfb8Vn7Jvrpnys5R/wdCnXKsOpCm9QZt9OqNMfkByQ== + dependencies: + "@graphql-tools/utils" "9.2.1" + "@graphql-typed-document-node/core" "3.2.0" + "@repeaterjs/repeater" "3.0.4" + tslib "^2.4.0" + value-or-promise "1.0.12" + +"@graphql-tools/git-loader@^7.2.13": + version "7.2.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.2.20.tgz#b17917c89be961c272bfbf205dcf32287247494b" + integrity sha512-D/3uwTzlXxG50HI8BEixqirT4xiUp6AesTdfotRXAs2d4CT9wC6yuIWOHkSBqgI1cwKWZb6KXZr467YPS5ob1w== + dependencies: + "@graphql-tools/graphql-tag-pluck" "7.5.0" + "@graphql-tools/utils" "9.2.1" + is-glob "4.0.3" + micromatch "^4.0.4" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/github-loader@^7.3.20": + version "7.3.28" + resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.3.28.tgz#a7166b136e8442bd8b3ab943ad3b66c84bcabfcf" + integrity sha512-OK92Lf9pmxPQvjUNv05b3tnVhw0JRfPqOf15jZjyQ8BfdEUrJoP32b4dRQQem/wyRL24KY4wOfArJNqzpsbwCA== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/executor-http" "^0.1.9" + "@graphql-tools/graphql-tag-pluck" "^7.4.6" + "@graphql-tools/utils" "^9.2.1" + "@whatwg-node/fetch" "^0.8.0" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/graphql-file-loader@^7.3.7", "@graphql-tools/graphql-file-loader@^7.5.0": + version "7.5.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.16.tgz#d954b25ee14c6421ddcef43f4320a82e9800cb23" + integrity sha512-lK1N3Y2I634FS12nd4bu7oAJbai3bUc28yeX+boT+C83KTO4ujGHm+6hPC8X/FRGwhKOnZBxUM7I5nvb3HiUxw== + dependencies: + "@graphql-tools/import" "6.7.17" + "@graphql-tools/utils" "9.2.1" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/graphql-tag-pluck@7.5.0", "@graphql-tools/graphql-tag-pluck@^7.4.6": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.0.tgz#be99bc6b5e8331a2379ab4585d71b057eb981497" + integrity sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q== + dependencies: + "@babel/parser" "^7.16.8" + "@babel/plugin-syntax-import-assertions" "7.20.0" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + "@graphql-tools/utils" "9.2.1" + tslib "^2.4.0" + +"@graphql-tools/import@6.7.17": + version "6.7.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.17.tgz#ab51ed08bcbf757f952abf3f40793ce3db42d4a3" + integrity sha512-bn9SgrECXq3WIasgNP7ful/uON51wBajPXtxdY+z/ce7jLWaFE6lzwTDB/GAgiZ+jo7nb0ravlxteSAz2qZmuA== + dependencies: + "@graphql-tools/utils" "9.2.1" + resolve-from "5.0.0" + tslib "^2.4.0" + +"@graphql-tools/json-file-loader@^7.3.7", "@graphql-tools/json-file-loader@^7.4.1": + version "7.4.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.17.tgz#3f08e74ab1a3534c02dc97875acc7f15aa460011" + integrity sha512-KOSTP43nwjPfXgas90rLHAFgbcSep4nmiYyR9xRVz4ZAmw8VYHcKhOLTSGylCAzi7KUfyBXajoW+6Z7dQwdn3g== + dependencies: + "@graphql-tools/utils" "9.2.1" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/load@^7.5.5", "@graphql-tools/load@^7.8.0": + version "7.8.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.13.tgz#a813bfc8195d27f465739c15fb1672a6def6e9ee" + integrity sha512-c97/GuUl81Wpa38cx3E6nMz8gUrvVcFokoPfDOaA5uTWSTXA1UxaF4KrvM9P5rNFaKVAtF9f6nMIusRE5B0mag== + dependencies: + "@graphql-tools/schema" "9.0.17" + "@graphql-tools/utils" "9.2.1" + p-limit "3.1.0" + tslib "^2.4.0" + +"@graphql-tools/merge@8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.1.tgz#06121942ad28982a14635dbc87b5d488a041d722" + integrity sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg== + dependencies: + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + +"@graphql-tools/merge@8.4.0", "@graphql-tools/merge@^8.2.6": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.0.tgz#47fbe5c4b6764276dc35bd19c4e7d3c46d3dc0fc" + integrity sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA== + dependencies: + "@graphql-tools/utils" "9.2.1" + tslib "^2.4.0" + +"@graphql-tools/optimize@^1.3.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-1.3.1.tgz#29407991478dbbedc3e7deb8c44f46acb4e9278b" + integrity sha512-5j5CZSRGWVobt4bgRRg7zhjPiSimk+/zIuColih8E8DxuFOaJ+t0qu7eZS5KXWBkjcd4BPNuhUPpNlEmHPqVRQ== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/prisma-loader@^7.2.49": + version "7.2.69" + resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.69.tgz#cc823092650e4b2b790b106322c92d81bb2eb3e2" + integrity sha512-kSJ018huCzO0AMHAUK/OVSddGOWJxKtE6HXFyTPhJAnXdKEqOSuivaAXZt2msDVA8sL8x/qe0Fb5PTtP8Mhk1Q== + dependencies: + "@graphql-tools/url-loader" "7.17.17" + "@graphql-tools/utils" "9.2.1" + "@types/js-yaml" "^4.0.0" + "@types/json-stable-stringify" "^1.0.32" + "@whatwg-node/fetch" "^0.8.2" + chalk "^4.1.0" + debug "^4.3.1" + dotenv "^16.0.0" + graphql-request "^5.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + jose "^4.11.4" + js-yaml "^4.0.0" + json-stable-stringify "^1.0.1" + lodash "^4.17.20" + scuid "^1.1.0" + tslib "^2.4.0" + yaml-ast-parser "^0.0.43" + +"@graphql-tools/relay-operation-optimizer@^6.5.0": + version "6.5.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.17.tgz#4e4e2675d696a2a31f106b09ed436c43f7976f37" + integrity sha512-hHPEX6ccRF3+9kfVz0A3In//Dej7QrHOLGZEokBmPDMDqn9CS7qUjpjyGzclbOX0tRBtLfuFUZ68ABSac3P1nA== + dependencies: + "@ardatan/relay-compiler" "12.0.0" + "@graphql-tools/utils" "9.2.1" + tslib "^2.4.0" + +"@graphql-tools/schema@9.0.17", "@graphql-tools/schema@^9.0.0", "@graphql-tools/schema@^9.0.16": + version "9.0.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.17.tgz#d731e9899465f88d5b9bf69e607ec465bb88b062" + integrity sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng== + dependencies: + "@graphql-tools/merge" "8.4.0" + "@graphql-tools/utils" "9.2.1" + tslib "^2.4.0" + value-or-promise "1.0.12" + +"@graphql-tools/schema@^8.3.5": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" + integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg== + dependencies: + "@graphql-tools/merge" "8.3.1" + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/url-loader@7.17.17", "@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.9.7": + version "7.17.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.17.tgz#a26238fa80a788fc2a981cefcec2fa6c14643208" + integrity sha512-zT0GskawhfVzu3LjP5iXi+chyrUYvnv6B8RbJbnkiFHdSLsgIkxEyKm4tQUMN1Rm1l3i5nmeMtSzpEI9jTYLGw== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/delegate" "^9.0.30" + "@graphql-tools/executor-graphql-ws" "^0.0.13" + "@graphql-tools/executor-http" "^0.1.7" + "@graphql-tools/executor-legacy-ws" "^0.0.10" + "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/wrap" "^9.4.1" + "@types/ws" "^8.0.0" + "@whatwg-node/fetch" "^0.8.0" + isomorphic-ws "^5.0.0" + tslib "^2.4.0" + value-or-promise "^1.0.11" + ws "^8.12.0" + +"@graphql-tools/utils@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7" + integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@9.2.1", "@graphql-tools/utils@^9.0.0", "@graphql-tools/utils@^9.1.1", "@graphql-tools/utils@^9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" + integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + tslib "^2.4.0" + +"@graphql-tools/utils@^8.8.0": + version "8.13.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.13.1.tgz#b247607e400365c2cd87ff54654d4ad25a7ac491" + integrity sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/wrap@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.4.1.tgz#c8297d96967d9f1c6176d3d71b56780ff9a1244c" + integrity sha512-uMT6A8CKQhtKyzSI7BfU5YSG3dMW+3TuMN9W9N3wG+8E2m6Jb1twp8bAb7Ho9cvT8/tiLhl/xNkdMt17p+JCTQ== + dependencies: + "@graphql-tools/delegate" "9.0.30" + "@graphql-tools/schema" "9.0.17" + "@graphql-tools/utils" "9.2.1" + tslib "^2.4.0" + value-or-promise "1.0.12" + +"@graphql-typed-document-node/core@3.2.0", "@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + +"@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" + micromatch "^4.0.4" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== + dependencies: + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== + dependencies: + "@jest/types" "^27.5.1" + "@sinonjs/fake-timers" "^8.0.1" + "@types/node" "*" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" + +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.1.0" + +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.9" + source-map "^0.6.0" + +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== + dependencies: + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== + dependencies: + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" + +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.5.1" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + 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" + +"@josephg/resolvable@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" + integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@next/bundle-analyzer@^12.1.1": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-12.3.4.tgz#37c587525288a3dea64213c991590532246e8bb8" + integrity sha512-eKjgRICzbLTmod0UnJcArFVs5uEAiuZwB6NCf84m+btW7jdylUVoOYf1wi5tA14xk5L9Lho7Prm6/XJ8gxYzfQ== + dependencies: + webpack-bundle-analyzer "4.3.0" + +"@next/env@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/env/-/env-12.3.4.tgz#c787837d36fcad75d72ff8df6b57482027d64a47" + integrity sha512-H/69Lc5Q02dq3o+dxxy5O/oNxFsZpdL6WREtOOtOM1B/weonIwDXkekr1KV5DPVPr12IHFPrMrcJQ6bgPMfn7A== + +"@next/eslint-plugin-next@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz#e7dc00e2e89ed361f111d687b8534483ec15518b" + integrity sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og== + dependencies: + glob "7.1.7" + +"@next/swc-android-arm-eabi@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.4.tgz#fd1c2dafe92066c6120761c6a39d19e666dc5dd0" + integrity sha512-cM42Cw6V4Bz/2+j/xIzO8nK/Q3Ly+VSlZJTa1vHzsocJRYz8KT6MrreXaci2++SIZCF1rVRCDgAg5PpqRibdIA== + +"@next/swc-android-arm64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.3.4.tgz#11a146dae7b8bca007239b21c616e83f77b19ed4" + integrity sha512-5jf0dTBjL+rabWjGj3eghpLUxCukRhBcEJgwLedewEA/LJk2HyqCvGIwj5rH+iwmq1llCWbOky2dO3pVljrapg== + +"@next/swc-darwin-arm64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.4.tgz#14ac8357010c95e67327f47082af9c9d75d5be79" + integrity sha512-DqsSTd3FRjQUR6ao0E1e2OlOcrF5br+uegcEGPVonKYJpcr0MJrtYmPxd4v5T6UCJZ+XzydF7eQo5wdGvSZAyA== + +"@next/swc-darwin-x64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.4.tgz#e7dc63cd2ac26d15fb84d4d2997207fb9ba7da0f" + integrity sha512-PPF7tbWD4k0dJ2EcUSnOsaOJ5rhT3rlEt/3LhZUGiYNL8KvoqczFrETlUx0cUYaXe11dRA3F80Hpt727QIwByQ== + +"@next/swc-freebsd-x64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.4.tgz#fe7ceec58746fdf03f1fcb37ec1331c28e76af93" + integrity sha512-KM9JXRXi/U2PUM928z7l4tnfQ9u8bTco/jb939pdFUHqc28V43Ohd31MmZD1QzEK4aFlMRaIBQOWQZh4D/E5lQ== + +"@next/swc-linux-arm-gnueabihf@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.4.tgz#d7016934d02bfc8bd69818ffb0ae364b77b17af7" + integrity sha512-3zqD3pO+z5CZyxtKDTnOJ2XgFFRUBciOox6EWkoZvJfc9zcidNAQxuwonUeNts6Xbm8Wtm5YGIRC0x+12YH7kw== + +"@next/swc-linux-arm64-gnu@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.4.tgz#43a7bc409b03487bff5beb99479cacdc7bd29af5" + integrity sha512-kiX0vgJGMZVv+oo1QuObaYulXNvdH/IINmvdZnVzMO/jic/B8EEIGlZ8Bgvw8LCjH3zNVPO3mGrdMvnEEPEhKA== + +"@next/swc-linux-arm64-musl@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.4.tgz#4d1db6de6dc982b974cd1c52937111e3e4a34bd3" + integrity sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ== + +"@next/swc-linux-x64-gnu@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.4.tgz#c3b414d77bab08b35f7dd8943d5586f0adb15e38" + integrity sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag== + +"@next/swc-linux-x64-musl@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.4.tgz#187a883ec09eb2442a5ebf126826e19037313c61" + integrity sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg== + +"@next/swc-win32-arm64-msvc@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.4.tgz#89befa84e453ed2ef9a888f375eba565a0fde80b" + integrity sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ== + +"@next/swc-win32-ia32-msvc@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.4.tgz#cb50c08f0e40ead63642a7f269f0c8254261f17c" + integrity sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ== + +"@next/swc-win32-x64-msvc@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.4.tgz#d28ea15a72cdcf96201c60a43e9630cd7fda168f" + integrity sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@peculiar/asn1-schema@^2.3.6": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" + integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.4.0": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" + integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.2" + tslib "^2.5.0" + webcrypto-core "^1.7.7" + +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@reach/auto-id@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@reach/auto-id/-/auto-id-0.16.0.tgz#dfabc3227844e8c04f8e6e45203a8e14a8edbaed" + integrity sha512-5ssbeP5bCkM39uVsfQCwBBL+KT8YColdnMN5/Eto6Rj7929ql95R3HZUOkKIvj7mgPtEb60BLQxd1P3o6cjbmg== + dependencies: + "@reach/utils" "0.16.0" + tslib "^2.3.0" + +"@reach/checkbox@^0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@reach/checkbox/-/checkbox-0.16.0.tgz#198223a14182f318fdbd01289a2073e191f878cc" + integrity sha512-NgrCd+TKRn8MPEnCo3RUk4+/9y30eewdI/QiQ2Ix19zyoK3s34khQFJFL9ZlcFEOGNmQt5yfO+/uvpPUko7dhg== + dependencies: + "@reach/auto-id" "0.16.0" + "@reach/machine" "0.16.0" + "@reach/utils" "0.16.0" + prop-types "^15.7.2" + tiny-warning "^1.0.3" + tslib "^2.3.0" + +"@reach/combobox@^0.16.5": + version "0.16.5" + resolved "https://registry.yarnpkg.com/@reach/combobox/-/combobox-0.16.5.tgz#3493647950b4e0838d9442156fd5d6a52ea2f41d" + integrity sha512-Csm79qZN3aGpIHnqMYcDH0Y75Z0K8u3j1DzQiRa3w8aDwdmQFocBIo3p9veEytiKm28Dccj/wmmvrCpgVMVH9Q== + dependencies: + "@reach/auto-id" "0.16.0" + "@reach/descendants" "0.16.1" + "@reach/popover" "0.16.2" + "@reach/portal" "0.16.2" + "@reach/utils" "0.16.0" + prop-types "^15.7.2" + tiny-warning "^1.0.3" + tslib "^2.3.0" + +"@reach/descendants@0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@reach/descendants/-/descendants-0.16.1.tgz#fa3d89c0503565369707f32985d87eef61985d9f" + integrity sha512-3WZgRnD9O4EORKE31rrduJDiPFNMOjUkATx0zl192ZxMq3qITe4tUj70pS5IbJl/+v9zk78JwyQLvA1pL7XAPA== + dependencies: + "@reach/utils" "0.16.0" + tslib "^2.3.0" + +"@reach/dialog@^0.16.2": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@reach/dialog/-/dialog-0.16.2.tgz#567e6f59d0a6dabe84b2ba4c456404efa6cb7d03" + integrity sha512-qq8oX0cROgTb8LjOKWzzNm4SqaN9b89lJHr7UyVo2aQ6WbeNzZBxqXhGywFP7dkR+hNqOJnrA59PXFWhfttA9A== + dependencies: + "@reach/portal" "0.16.2" + "@reach/utils" "0.16.0" + prop-types "^15.7.2" + react-focus-lock "^2.5.2" + react-remove-scroll "^2.4.3" + tslib "^2.3.0" + +"@reach/dropdown@0.16.2": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@reach/dropdown/-/dropdown-0.16.2.tgz#4aa7df0f716cb448d01bc020d54df595303d5fa6" + integrity sha512-l4nNiX6iUpMdHQNbZMhgW5APtw0AUwJuRnkqE93vkjvdtrYl/sNJy1Jr6cGG7TrZIABLSOsfwbXU3C+qwJ3ftQ== + dependencies: + "@reach/auto-id" "0.16.0" + "@reach/descendants" "0.16.1" + "@reach/popover" "0.16.2" + "@reach/utils" "0.16.0" + tslib "^2.3.0" + +"@reach/machine@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@reach/machine/-/machine-0.16.0.tgz#0504ba47ac09ed495bd341bf5fdd6625bcade0e3" + integrity sha512-c8SRQz2xGtg5M9aXuuM5pFgaV1ZW5/nyMIYpZzBwHUlNFKGO+VBhwedbnqUxO0yLcbgl3wPvjPh740O3YjqiHg== + dependencies: + "@reach/utils" "0.16.0" + "@xstate/fsm" "1.4.0" + tslib "^2.3.0" + +"@reach/menu-button@^0.16.2": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@reach/menu-button/-/menu-button-0.16.2.tgz#664e33e70de431f88abf1f8537c48b1b6ce87e88" + integrity sha512-p4n6tFVaJZHJZEznHWy0YH2Xr3I+W7tsQWAT72PqKGT+uryGRdtgEQqi76f/8cRaw/00ueazBk5lwLG7UKGFaA== + dependencies: + "@reach/dropdown" "0.16.2" + "@reach/popover" "0.16.2" + "@reach/utils" "0.16.0" + prop-types "^15.7.2" + tiny-warning "^1.0.3" + tslib "^2.3.0" + +"@reach/observe-rect@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.2.0.tgz#d7a6013b8aafcc64c778a0ccb83355a11204d3b2" + integrity sha512-Ba7HmkFgfQxZqqaeIWWkNK0rEhpxVQHIoVyW1YDSkGsGIXzcaW4deC8B0pZrNSSyLTdIk7y+5olKt5+g0GmFIQ== + +"@reach/popover@0.16.2": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@reach/popover/-/popover-0.16.2.tgz#71d7af3002ca49d791476b22dee1840dd1719c19" + integrity sha512-IwkRrHM7Vt33BEkSXneovymJv7oIToOfTDwRKpuYEB/BWYMAuNfbsRL7KVe6MjkgchDeQzAk24cYY1ztQj5HQQ== + dependencies: + "@reach/portal" "0.16.2" + "@reach/rect" "0.16.0" + "@reach/utils" "0.16.0" + tabbable "^4.0.0" + tslib "^2.3.0" + +"@reach/portal@0.16.2": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@reach/portal/-/portal-0.16.2.tgz#ca83696215ee03acc2bb25a5ae5d8793eaaf2f64" + integrity sha512-9ur/yxNkuVYTIjAcfi46LdKUvH0uYZPfEp4usWcpt6PIp+WDF57F/5deMe/uGi/B/nfDweQu8VVwuMVrCb97JQ== + dependencies: + "@reach/utils" "0.16.0" + tiny-warning "^1.0.3" + tslib "^2.3.0" + +"@reach/rect@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@reach/rect/-/rect-0.16.0.tgz#78cf6acefe2e83d3957fa84f938f6e1fc5700f16" + integrity sha512-/qO9jQDzpOCdrSxVPR6l674mRHNTqfEjkaxZHluwJ/2qGUtYsA0GSZiF/+wX/yOWeBif1ycxJDa6HusAMJZC5Q== + dependencies: + "@reach/observe-rect" "1.2.0" + "@reach/utils" "0.16.0" + prop-types "^15.7.2" + tiny-warning "^1.0.3" + tslib "^2.3.0" + +"@reach/skip-nav@^0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@reach/skip-nav/-/skip-nav-0.16.0.tgz#dec34f3a40a1e804e05647646aacab0ffd73b24d" + integrity sha512-SY4PdNx+hQHbeOr/+qLc+QXdRt9NTVlt0r737bOqY1WURGBIEN9sGgsmIsHluP1/bQuAe0JKdOJ/tXiwQ3Z3ug== + dependencies: + "@reach/utils" "0.16.0" + tslib "^2.3.0" + +"@reach/utils@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.16.0.tgz#5b0777cf16a7cab1ddd4728d5d02762df0ba84ce" + integrity sha512-PCggBet3qaQmwFNcmQ/GqHSefadAFyNCUekq9RrWoaU9hh/S4iaFgf2MBMdM47eQj5i/Bk0Mm07cP/XPFlkN+Q== + dependencies: + tiny-warning "^1.0.3" + tslib "^2.3.0" + +"@reach/visually-hidden@^0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@reach/visually-hidden/-/visually-hidden-0.16.0.tgz#2a5e834af9e93c554065ff8cbb0907fbeb26ad02" + integrity sha512-IIayZ3jzJtI5KfcfRVtOMFkw2ef/1dMT8D9BUuFcU2ORZAWLNvnzj1oXNoIfABKl5wtsLjY6SGmkYQ+tMPN8TA== + dependencies: + prop-types "^15.7.2" + tslib "^2.3.0" + +"@repeaterjs/repeater@3.0.4", "@repeaterjs/repeater@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" + integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA== + +"@rushstack/eslint-patch@^1.1.3": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" + integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== + +"@sinonjs/commons@^1.7.0": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@swc/helpers@0.4.11": + version "0.4.11" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.11.tgz#db23a376761b3d31c26502122f349a21b592c8de" + integrity sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw== + dependencies: + tslib "^2.4.0" + +"@textlint/ast-node-types@^12.0.0": + version "12.6.1" + resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-12.6.1.tgz#35ecefe74e701d7f632c083d4fda89cab1b89012" + integrity sha512-uzlJ+ZsCAyJm+lBi7j0UeBbj+Oy6w/VWoGJ3iHRHE5eZ8Z4iK66mq+PG/spupmbllLtz77OJbY89BYqgFyjXmA== + +"@textlint/markdown-to-ast@12.0.2": + version "12.0.2" + resolved "https://registry.yarnpkg.com/@textlint/markdown-to-ast/-/markdown-to-ast-12.0.2.tgz#e20621a35135661963ae0f4e4e9e1876f54bb14b" + integrity sha512-xAJ4U/fOL7FoX4bYeYRCsSIeTxFqzKd944AsVxAYrz2ZfKH0TtBSNDDtN22uBEXOrSCCR12Z7QuMcp+URyYWlw== + dependencies: + "@textlint/ast-node-types" "^12.0.0" + debug "^4.3.2" + remark-footnotes "^3.0.0" + remark-frontmatter "^3.0.0" + remark-gfm "^1.0.0" + remark-parse "^9.0.0" + traverse "^0.6.6" + unified "^9.2.1" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/accepts@*": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== + dependencies: + "@types/node" "*" + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" + integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== + dependencies: + "@babel/types" "^7.3.0" + +"@types/base-64@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/base-64/-/base-64-1.0.0.tgz#de9c6070ea457fbd65a1b5ebf13976b3ac0bdad0" + integrity sha512-AvCJx/HrfYHmOQRFdVvgKMplXfzTUizmh0tz9GFTpDePWgCY4uoKll84zKlaRoeiYiCr7c9ZnqSTzkl0BUVD6g== + +"@types/bcryptjs@^2.4.2": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@types/bcryptjs/-/bcryptjs-2.4.2.tgz#e3530eac9dd136bfdfb0e43df2c4c5ce1f77dfae" + integrity sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/content-disposition@*": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.5.tgz#650820e95de346e1f84e30667d168c8fd25aa6e3" + integrity sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA== + +"@types/cookie@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803" + integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== + +"@types/cookie@^0.4.0": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" + integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== + +"@types/cookies@*": + version "0.7.7" + resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.7.tgz#7a92453d1d16389c05a5301eef566f34946cfd81" + integrity sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA== + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + +"@types/debug@^4.0.0": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + +"@types/draft-js@^0.11.9": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@types/draft-js/-/draft-js-0.11.10.tgz#46cf41e142b4b572467f7a78269a630a77e1f19c" + integrity sha512-o/DST8x0wNerwhRiaE577UHFIXb6HCywaZOZfj9TF2vU3CONvsCGoQmdOsKqERdXp+3ZNlSvFUH0B8lEEYOT4A== + dependencies: + "@types/react" "*" + immutable "~3.7.4" + +"@types/express-serve-static-core@^4.17.33": + version "4.17.33" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" + integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/fs-capacitor@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" + integrity sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== + dependencies: + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" + integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + dependencies: + "@types/node" "*" + +"@types/hast@^2.0.0": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" + integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + dependencies: + "@types/unist" "*" + +"@types/http-assert@*": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.3.tgz#ef8e3d1a8d46c387f04ab0f2e8ab8cb0c5078661" + integrity sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA== + +"@types/http-errors@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" + integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^27.4.1": + version "27.5.2" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c" + integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== + dependencies: + jest-matcher-utils "^27.0.0" + pretty-format "^27.0.0" + +"@types/js-yaml@^4.0.0": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" + integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== + +"@types/json-stable-stringify@^1.0.32": + version "1.0.34" + resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" + integrity sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/keygrip@*": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" + integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== + +"@types/koa-compose@*": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" + integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== + dependencies: + "@types/koa" "*" + +"@types/koa@*": + version "2.13.6" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.6.tgz#6dc14e727baf397310aa6f414ebe5d144983af42" + integrity sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/long@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/mdast@^3.0.0": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.11.tgz#dc130f7e7d9306124286f6d6cee40cf4d14a3dc0" + integrity sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw== + dependencies: + "@types/unist" "*" + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + +"@types/node@*": + version "18.15.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" + integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== + +"@types/node@^10.1.0": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^17.0.23": + version "17.0.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" + integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/parse5@^6.0.0": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" + integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== + +"@types/prettier@^2.1.5": + version "2.7.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" + integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== + +"@types/prismjs@^1.26.0": + version "1.26.0" + resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.0.tgz#a1c3809b0ad61c62cac6d4e0c56d610c910b7654" + integrity sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/puppeteer@^5.4.5": + version "5.4.7" + resolved "https://registry.yarnpkg.com/@types/puppeteer/-/puppeteer-5.4.7.tgz#b8804737c62c6e236de0c03fa74f91c174bf96b6" + integrity sha512-JdGWZZYL0vKapXF4oQTC5hLVNfOgdPrqeZ1BiQnGk5cB7HeE91EWUiTdVSdQPobRN8rIcdffjiOgCYJ/S8QrnQ== + dependencies: + "@types/node" "*" + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/react-dom@^17.0.14": + version "17.0.19" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.19.tgz#36feef3aa35d045cacd5ed60fe0eef5272f19492" + integrity sha512-PiYG40pnQRdPHnlf7tZnp0aQ6q9tspYr72vD61saO6zFCybLfMqwUCN0va1/P+86DXn18ZWeW30Bk7xlC5eEAQ== + dependencies: + "@types/react" "^17" + +"@types/react-test-renderer@^17.0.1": + version "17.0.2" + resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-17.0.2.tgz#5f800a39b12ac8d2a2149e7e1885215bcf4edbbf" + integrity sha512-+F1KONQTBHDBBhbHuT2GNydeMpPuviduXIVJRB7Y4nma4NR5DrTJfMMZ+jbhEHbpwL+Uqhs1WXh4KHiyrtYTPg== + dependencies: + "@types/react" "^17" + +"@types/react@*": + version "18.0.34" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.34.tgz#e553444a578f023e6e1ac499514688fb80b0a984" + integrity sha512-NO1UO8941541CJl1BeOXi8a9dNKFK09Gnru5ZJqkm4Q3/WoQJtHvmwt0VX0SB9YCEwe7TfSSxDuaNmx6H2BAIQ== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@^17", "@types/react@^17.0.43": + version "17.0.57" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.57.tgz#341152f222222075caf020ae6e0e68b9b835404c" + integrity sha512-e4msYpu5QDxzNrXDHunU/VPyv2M1XemGG/p7kfCjUiPtlLDCWLGQfgAMng6YyisWYxZ09mYdQlmMnyS0NfZdEg== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + +"@types/serve-static@*": + version "1.15.1" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" + integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/ua-parser-js@^0.7.36": + version "0.7.36" + resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz#9bd0b47f26b5a3151be21ba4ce9f5fa457c5f190" + integrity sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ== + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + +"@types/use-subscription@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/use-subscription/-/use-subscription-1.0.0.tgz#d146f8d834f70f50d48bd8246a481d096f11db19" + integrity sha512-0WWZ5GUDKMXUY/1zy4Ur5/zsC0s/B+JjXfHdkvx6JgDNZzZV5eW+KKhDqsTGyqX56uh99gwGwbsKbVwkcVIKQA== + +"@types/webidl-conversions@*": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" + integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== + +"@types/whatwg-url@^8.2.1": + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" + integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== + dependencies: + "@types/node" "*" + "@types/webidl-conversions" "*" + +"@types/ws@^7.0.0": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@types/ws@^8.0.0": + version "8.5.4" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" + integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^16.0.0": + version "16.0.5" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.5.tgz#12cc86393985735a283e387936398c2f9e5f88e3" + integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/parser@^5.21.0": + version "5.58.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.58.0.tgz#2ac4464cf48bef2e3234cb178ede5af352dddbc6" + integrity sha512-ixaM3gRtlfrKzP8N6lRhBbjTow1t6ztfBvQNGuRM8qH1bjFFXIJ35XY+FC0RRBKn3C6cT+7VW1y8tNm7DwPHDQ== + dependencies: + "@typescript-eslint/scope-manager" "5.58.0" + "@typescript-eslint/types" "5.58.0" + "@typescript-eslint/typescript-estree" "5.58.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.58.0": + version "5.58.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.58.0.tgz#5e023a48352afc6a87be6ce3c8e763bc9e2f0bc8" + integrity sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA== + dependencies: + "@typescript-eslint/types" "5.58.0" + "@typescript-eslint/visitor-keys" "5.58.0" + +"@typescript-eslint/types@5.58.0": + version "5.58.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.58.0.tgz#54c490b8522c18986004df7674c644ffe2ed77d8" + integrity sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g== + +"@typescript-eslint/typescript-estree@5.58.0": + version "5.58.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.58.0.tgz#4966e6ff57eaf6e0fce2586497edc097e2ab3e61" + integrity sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q== + dependencies: + "@typescript-eslint/types" "5.58.0" + "@typescript-eslint/visitor-keys" "5.58.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@5.58.0": + version "5.58.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.58.0.tgz#eb9de3a61d2331829e6761ce7fd13061781168b4" + integrity sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA== + dependencies: + "@typescript-eslint/types" "5.58.0" + eslint-visitor-keys "^3.3.0" + +"@whatwg-node/events@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.2.tgz#7b7107268d2982fc7b7aff5ee6803c64018f84dd" + integrity sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w== + +"@whatwg-node/fetch@^0.6.0": + version "0.6.9" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.9.tgz#6cc694cc0378e27b8dfed427c5bf633eda6972b9" + integrity sha512-JfrBCJdMu9n9OARc0e/hPHcD98/8Nz1CKSdGYDg6VbObDkV/Ys30xe5i/wPOatYbxuvatj1kfWeHf7iNX3i17w== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + "@whatwg-node/node-fetch" "^0.0.5" + busboy "^1.6.0" + urlpattern-polyfill "^6.0.2" + web-streams-polyfill "^3.2.1" + +"@whatwg-node/fetch@^0.8.0", "@whatwg-node/fetch@^0.8.1", "@whatwg-node/fetch@^0.8.2": + version "0.8.4" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.4.tgz#ae1c306d1e4f5ba5cf9badf070de259f04c2cda8" + integrity sha512-xK0NGWt49P+JmsdfN+8zmHzZoscENrV0KL1SyyncvWkc6vbFmSqGSpvItEBuhj1PAfTGFEUpyiRMCsut2hLy/Q== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + "@whatwg-node/node-fetch" "^0.3.3" + busboy "^1.6.0" + urlpattern-polyfill "^6.0.2" + web-streams-polyfill "^3.2.1" + +"@whatwg-node/node-fetch@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.0.5.tgz#bebf18891088e5e2fc449dea8d1bc94af5ec38df" + integrity sha512-hbccmaSZaItdsRuBKBEEhLoO+5oXJPxiyd0kG2xXd0Dh3Rt+vZn4pADHxuSiSHLd9CM+S2z4+IxlEGbWUgiz9g== + dependencies: + "@whatwg-node/events" "^0.0.2" + busboy "^1.6.0" + tslib "^2.3.1" + +"@whatwg-node/node-fetch@^0.3.3": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.4.tgz#4beb88579c53ebd870e28d0f2f0376191b9fd6c3" + integrity sha512-gP1MN6DiHVbhkLWH1eCELhE2ZtLRxb+HRKu4eYze1Tijxz0uT1T2kk3lseZp94txzxCfbxGFU0jsWkxNdH3EXA== + dependencies: + "@whatwg-node/events" "^0.0.2" + busboy "^1.6.0" + fast-querystring "^1.1.1" + fast-url-parser "^1.1.3" + tslib "^2.3.1" + +"@wry/equality@^0.1.2": + version "0.1.11" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" + integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== + dependencies: + tslib "^1.9.3" + +"@xstate/fsm@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@xstate/fsm/-/fsm-1.4.0.tgz#6fd082336fde4d026e9e448576189ee5265fa51a" + integrity sha512-uTHDeu2xI5E1IFwf37JFQM31RrH7mY7877RqPBS4ZqSNUwoLDuct8AhBWaXGnVizBAYyimVwgCyGa9z/NiRhXA== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +accept@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/accept/-/accept-3.1.3.tgz#29c3e2b3a8f4eedbc2b690e472b9ebbdc7385e87" + integrity sha512-OgOEAidVEOKPup+Gv2+2wdH2AgVKI9LxsJ4hicdJ6cY0faUuZdZoi56kkXWlHp9qicN1nWQLmW5ZRGk+SBS5xg== + dependencies: + boom "7.x.x" + hoek "6.x.x" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn-walk@^8.0.0, acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.0.4, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apollo-cache-control@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.15.0.tgz#45897ed318b883bf964960e6fcd7516a50b4e4d4" + integrity sha512-U2uYvHZsWmR6s6CD5zlq3PepfbUAM8953CeVM2Y2QYMtJ8i4CYplEPbIWb3zTIXSPbIPeWGddM56pChI6Iz3zA== + dependencies: + apollo-server-env "^3.2.0" + apollo-server-plugin-base "^0.14.0" + +apollo-datasource@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.10.0.tgz#5450fc88f23f73b36ba04b4f7a6d00ef2f5364a9" + integrity sha512-wrLhuoM2MtA0KA0+3qyioe0H2FjAxjTvuFOlNCk6WberA887m0MQlWULZImCWTkKuN+zEAMerHfxN+F+W8+lBA== + dependencies: + apollo-server-caching "^0.7.0" + apollo-server-env "^3.2.0" + +apollo-graphql@^0.9.0: + version "0.9.7" + resolved "https://registry.yarnpkg.com/apollo-graphql/-/apollo-graphql-0.9.7.tgz#33185093b497a578f2df61ab8ecc6447d700ae64" + integrity sha512-bezL9ItUWUGHTm1bI/XzIgiiZbhXpsC7uxk4UxFPmcVJwJsDc3ayZ99oXxAaK+3Rbg/IoqrHckA6CwmkCsbaSA== + dependencies: + core-js-pure "^3.10.2" + lodash.sortby "^4.7.0" + sha.js "^2.4.11" + +apollo-link@^1.2.14: + version "1.2.14" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" + integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== + dependencies: + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" + zen-observable-ts "^0.8.21" + +apollo-reporting-protobuf@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz#ae9d967934d3d8ed816fc85a0d8068ef45c371b9" + integrity sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg== + dependencies: + "@apollo/protobufjs" "1.2.2" + +apollo-server-caching@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz#e6d1e68e3bb571cba63a61f60b434fb771c6ff39" + integrity sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw== + dependencies: + lru-cache "^6.0.0" + +apollo-server-core@^2.26.1: + version "2.26.1" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.26.1.tgz#40a122b42f3ee2ddbfd1bd0c5775cd14eb454688" + integrity sha512-YnO1YXhHOnCY7Q2SZ0uUtPq6SLCw+t2uI19l59mzWuCyZYdHrtSy3zUEU6pM3tR9vvUuRGkYIfMRlo/Q8a1U5g== + dependencies: + "@apollographql/apollo-tools" "^0.5.0" + "@apollographql/graphql-playground-html" "1.6.27" + "@apollographql/graphql-upload-8-fork" "^8.1.4" + "@josephg/resolvable" "^1.0.0" + "@types/ws" "^7.0.0" + apollo-cache-control "^0.15.0" + apollo-datasource "^0.10.0" + apollo-graphql "^0.9.0" + apollo-reporting-protobuf "^0.8.0" + apollo-server-caching "^0.7.0" + apollo-server-env "^3.2.0" + apollo-server-errors "^2.5.0" + apollo-server-plugin-base "^0.14.0" + apollo-server-types "^0.10.0" + apollo-tracing "^0.16.0" + async-retry "^1.2.1" + fast-json-stable-stringify "^2.0.0" + graphql-extensions "^0.16.0" + graphql-tag "^2.11.0" + graphql-tools "^4.0.8" + loglevel "^1.6.7" + lru-cache "^6.0.0" + sha.js "^2.4.11" + subscriptions-transport-ws "^0.9.19" + uuid "^8.0.0" + +apollo-server-env@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-3.2.0.tgz#0572e307da4784c5d7633a0ade1f45e231da28e3" + integrity sha512-V+kO5e6vUo2JwqV1/Ng71ZE3J6x1hCOC+nID2/++bCYl0/fPY9iLChbBNSgN/uoFcjhgmBchOv+m4o0Nie/TFQ== + dependencies: + node-fetch "^2.6.1" + util.promisify "^1.0.0" + +apollo-server-errors@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz#5d1024117c7496a2979e3e34908b5685fe112b68" + integrity sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA== + +apollo-server-micro@^2.24.1: + version "2.26.1" + resolved "https://registry.yarnpkg.com/apollo-server-micro/-/apollo-server-micro-2.26.1.tgz#fdef741376641653422b572d8b2d7311f8034ce4" + integrity sha512-iZy7LN05hlKhZTIVMYwVvnFwIS7TUMIpgzOpfvW1ySrMpoL1L+qdUKDtgVP7NPJdIz7vRvMyGN1t1Cz5+//3Vg== + dependencies: + "@apollographql/graphql-playground-html" "1.6.27" + accept "^3.0.2" + apollo-server-core "^2.26.1" + apollo-server-types "^0.10.0" + micro "^9.3.2" + +apollo-server-plugin-base@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.14.0.tgz#f59b6ab7780304162d2e4fd9ee29ed0696b174ef" + integrity sha512-nTNSFuBhZURGjtWptdVqwemYUOdsvABj/GSKzeNvepiEubiv4N0rt4Gvy1inHDiMbo98wQTdF/7XohNcB9A77g== + dependencies: + apollo-server-types "^0.10.0" + +apollo-server-types@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.10.0.tgz#af578bf507151a0e86fbdf188f9673ece3f8f164" + integrity sha512-LsB3epw1X3Co/HGiKHCGtzWG35J59gG8Ypx0p22+wgdM9AVDm1ylsNGZy+osNIVJc1lUJf3nF5kZ90vA866K/w== + dependencies: + apollo-reporting-protobuf "^0.8.0" + apollo-server-caching "^0.7.0" + apollo-server-env "^3.2.0" + +apollo-tracing@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.16.0.tgz#8542ca40ae4a3f84f899e749631b65833557ceb1" + integrity sha512-Oy8kTggB+fJ/hHXwHyMpuTl5KW7u1XetKFDErZVOobUKc2zjc/NgWiC/s7SGYZCgfLodBjvwfa6rMcvLkz7c0w== + dependencies: + apollo-server-env "^3.2.0" + apollo-server-plugin-base "^0.14.0" + +apollo-utilities@^1.0.1, apollo-utilities@^1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" + integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== + dependencies: + "@wry/equality" "^0.1.2" + fast-json-stable-stringify "^2.0.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + +arg@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" + integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-includes@^3.1.5, array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" + integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-retry@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +attr-accept@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" + integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== + +auto-bind@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" + integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axe-core@^4.6.2: + version "4.6.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" + integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== + +axobject-query@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" + +babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== + dependencies: + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" + integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-fbjs@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" + integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== + 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" + +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== + dependencies: + babel-plugin-jest-hoist "^27.5.1" + babel-preset-current-node-syntax "^1.0.0" + +backo2@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== + +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-64@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base-64/-/base-64-1.0.0.tgz#09d0f2084e32a3fd08c2475b973788eee6ae8f4a" + integrity sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bcryptjs@^2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +boom@7.x.x: + version "7.3.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-7.3.0.tgz#733a6d956d33b0b1999da3fe6c12996950d017b9" + integrity sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A== + dependencies: + hoek "6.x.x" + +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserslist@^4.21.3: + version "4.21.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== + dependencies: + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +bson@^4.7.0: + version "4.7.2" + resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.2.tgz#320f4ad0eaf5312dd9b45dc369cc48945e2a5f2e" + integrity sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ== + dependencies: + buffer "^5.6.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +busboy@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" + integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== + dependencies: + dicer "0.3.0" + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001449: + version "1.0.30001477" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001477.tgz#a2ffb2276258233034bbb869d4558b02658a511e" + integrity sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ== + +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +ccount@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +change-case-all@1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1" + integrity sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA== + 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" + +change-case-all@1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.15.tgz#de29393167fc101d646cd76b0ef23e27d09756ad" + integrity sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ== + 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" + +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + 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" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +ci-info@^3.2.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +classnames@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.8.0.tgz#e97a3e2bd00e6d85aa0c13d7f9e3ce236f7787fc" + integrity sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ== + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +client-only@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + +colorette@^2.0.16: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +common-tags@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + +content-type@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cookie@^0.4.0, cookie@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +core-js-pure@^3.10.2: + version "3.30.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.0.tgz#41b6c42e5f363bd53d79999bd35093b17e42e1bf" + integrity sha512-+2KbMFGeBU0ln/csoPqTe0i/yfHbrd2EUhNMObsGtXMKS/RTtlkYyi+/3twLcevbgNR0yM/r0Psa3TEoQRpFMQ== + +core-js@^3.6.4: + version "3.30.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.0.tgz#64ac6f83bc7a49fd42807327051701d4b1478dea" + integrity sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg== + +cosmiconfig-typescript-loader@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" + integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== + +cosmiconfig@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" + integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + 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" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.0.4, cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-selector-parser@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.4.1.tgz#03f9cb8a81c3e5ab2c51684557d5aaf6d2569759" + integrity sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +cuid@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/cuid/-/cuid-2.1.8.tgz#cbb88f954171e0d5747606c0139fb65c5101eac0" + integrity sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg== + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +dataloader@2.2.2, dataloader@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" + integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== + +date-fns@^2.28.0: + version "2.29.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" + integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== + +debounce@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@4, debug@4.x, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decimal.js@^10.2.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-equal@^2.0.5: + version "2.2.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" + integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== + dependencies: + call-bind "^1.0.2" + es-get-iterator "^1.1.2" + get-intrinsic "^1.1.3" + is-arguments "^1.1.1" + is-array-buffer "^3.0.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" + integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dependency-graph@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" + integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== + +deprecated-decorator@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" + integrity sha512-MHidOOnCHGlZDKsI21+mbIIhf4Fff+hhCTB7gtVg4uoIqjcrTZc5v6M+GS2zVI0sV7PqK415rb8XaOSQsQkHOw== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +detect-libc@^2.0.0, detect-libc@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node-es@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" + integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== + +dicer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" + integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== + dependencies: + streamsearch "0.1.2" + +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dotenv@^16.0.0: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + +draft-js@^0.11.7: + version "0.11.7" + resolved "https://registry.yarnpkg.com/draft-js/-/draft-js-0.11.7.tgz#be293aaa255c46d8a6647f3860aa4c178484a206" + integrity sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg== + dependencies: + fbjs "^2.0.0" + immutable "~3.7.4" + object-assign "^4.1.1" + +draftjs-md-converter@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/draftjs-md-converter/-/draftjs-md-converter-1.5.2.tgz#099cba62ace84249d94ee8504816e63898fc3c77" + integrity sha512-Au4ZMdrqc2YxRWknBuvuvjcA/LjGuZ6KvL6K9nWsH5LKyCxwisxWV/s7idiFHN0EwRyGQ50+rbu3bMfr118BFw== + dependencies: + "@textlint/markdown-to-ast" "12.0.2" + +dset@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" + integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +electron-to-chromium@^1.4.284: + version "1.4.359" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.359.tgz#5c4d13cb08032469fcd6bd36457915caa211356b" + integrity sha512-OoVcngKCIuNXtZnsYoqlCvr0Cf3NIPzDIgwUfI9bdTFjXCrr79lI0kwQstLPZ7WhCezLlGksZk/BFAzoXC7GDw== + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-get-iterator@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-next@^12.1.1: + version "12.3.4" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.3.4.tgz#3d4d9e74b919b879c4cc79c61bdc388fb2b964ee" + integrity sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ== + dependencies: + "@next/eslint-plugin-next" "12.3.4" + "@rushstack/eslint-patch" "^1.1.3" + "@typescript-eslint/parser" "^5.21.0" + eslint-import-resolver-node "^0.3.6" + eslint-import-resolver-typescript "^2.7.1" + eslint-plugin-import "^2.26.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.31.7" + eslint-plugin-react-hooks "^4.5.0" + +eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + dependencies: + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" + +eslint-import-resolver-typescript@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz#a90a4a1c80da8d632df25994c4c5fdcdd02b8751" + integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== + dependencies: + debug "^4.3.4" + glob "^7.2.0" + is-glob "^4.0.3" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-module-utils@^2.7.4: + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.26.0: + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" + has "^1.0.3" + is-core-module "^2.11.0" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-jsx-a11y@^6.5.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== + dependencies: + "@babel/runtime" "^7.20.7" + aria-query "^5.1.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + ast-types-flow "^0.0.7" + axe-core "^4.6.2" + axobject-query "^3.1.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + has "^1.0.3" + jsx-ast-utils "^3.3.3" + language-tags "=1.0.5" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + semver "^6.3.0" + +eslint-plugin-react-hooks@^4.5.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-react@^7.31.7: + version "7.32.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" + integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== + dependencies: + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" + prop-types "^15.8.1" + resolve "^2.0.0-next.4" + semver "^6.3.0" + string.prototype.matchall "^4.0.8" + +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" + integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== + +eslint@^8.12.0: + version "8.38.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.38.0.tgz#a62c6f36e548a5574dd35728ac3c6209bd1e2f1a" + integrity sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.2" + "@eslint/js" "8.38.0" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.4.0" + espree "^9.5.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.5.1: + version "9.5.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" + integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + dependencies: + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extract-files@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" + integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== + +extract-files@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" + integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== + +fast-decode-uri-component@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" + integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-querystring@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.1.tgz#f4c56ef56b1a954880cfd8c01b83f9e1a3d3fda2" + integrity sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q== + dependencies: + fast-decode-uri-component "^1.0.1" + +fast-url-parser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + +fast-xml-parser@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz#5a98c18238d28a57bbdfa9fe4cda01211fff8f4a" + integrity sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg== + dependencies: + strnum "^1.0.5" + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fathom-client@^3.4.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/fathom-client/-/fathom-client-3.5.0.tgz#47bf3e67fa789ec415fe6efdc0ec02b9187b4b0d" + integrity sha512-BiRDS9Q9a8Zma0H717FWC5cvf545K/CsxBpxKT22TcSl1EbRhhlHWIJgrdeiQUfdorBK2ppy09TwMOhRsbos/A== + +fault@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" + integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== + dependencies: + format "^0.2.0" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz#01fb812138d7e31831ed3e374afe27b9169ef442" + integrity sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ== + dependencies: + core-js "^3.6.4" + 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.18" + +fbjs@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" + integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== + dependencies: + cross-fetch "^3.1.5" + 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" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-selector@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-0.5.0.tgz#21c7126dc9728b31a2742d91cab20d55e67e4fb4" + integrity sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA== + dependencies: + tslib "^2.0.3" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +focus-lock@^0.11.6: + version "0.11.6" + resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.11.6.tgz#e8821e21d218f03e100f7dc27b733f9c4f61e683" + integrity sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg== + dependencies: + tslib "^2.0.3" + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + +formik@^2.2.9: + version "2.2.9" + resolved "https://registry.yarnpkg.com/formik/-/formik-2.2.9.tgz#8594ba9c5e2e5cf1f42c5704128e119fc46232d0" + integrity sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA== + dependencies: + deepmerge "^2.1.1" + hoist-non-react-statics "^3.3.0" + lodash "^4.17.21" + lodash-es "^4.17.21" + react-fast-compare "^2.0.1" + tiny-warning "^1.0.2" + tslib "^1.10.0" + +fs-capacitor@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c" + integrity sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-nonce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" + integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.0.3, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphql-config@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.5.0.tgz#257c2338950b8dce295a27f75c5f6c39f8f777b2" + integrity sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw== + dependencies: + "@graphql-tools/graphql-file-loader" "^7.3.7" + "@graphql-tools/json-file-loader" "^7.3.7" + "@graphql-tools/load" "^7.5.5" + "@graphql-tools/merge" "^8.2.6" + "@graphql-tools/url-loader" "^7.9.7" + "@graphql-tools/utils" "^9.0.0" + cosmiconfig "8.0.0" + jiti "1.17.1" + minimatch "4.2.3" + string-env-interpolation "1.0.1" + tslib "^2.4.0" + +graphql-extensions@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.16.0.tgz#32669fde0a2f115de60e5dda818ae457c1d71bb8" + integrity sha512-rZQc/USoEIw437BGRUwoHoLPR1LA791Ltj6axONqgKIyyx2sqIO3YT9kTbB/eIUdJBrCozp4KuUeZ09xKeQDxg== + dependencies: + "@apollographql/apollo-tools" "^0.5.0" + apollo-server-env "^3.2.0" + apollo-server-types "^0.10.0" + +graphql-request@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-4.3.0.tgz#b934e08fcae764aa2cdc697d3c821f046cb5dbf2" + integrity sha512-2v6hQViJvSsifK606AliqiNiijb1uwWp6Re7o0RTyH+uRTv/u7Uqm2g4Fjq/LgZIzARB38RZEvVBFOQOVdlBow== + dependencies: + cross-fetch "^3.1.5" + extract-files "^9.0.0" + form-data "^3.0.0" + +graphql-request@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.2.0.tgz#a05fb54a517d91bb2d7aefa17ade4523dc5ebdca" + integrity sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-fetch "^3.1.5" + extract-files "^9.0.0" + form-data "^3.0.0" + +graphql-tag@^2.11.0, graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql-tools@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.8.tgz#e7fb9f0d43408fb0878ba66b522ce871bafe9d30" + integrity sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg== + dependencies: + apollo-link "^1.2.14" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.0" + +graphql-ws@5.12.1: + version "5.12.1" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.12.1.tgz#c62d5ac54dbd409cc6520b0b39de374b3d59d0dd" + integrity sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg== + +graphql@^15.7.2: + version "15.8.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" + integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hast-util-from-parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz#aecfef73e3ceafdfa4550716443e4eb7b02e22b0" + integrity sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + hastscript "^7.0.0" + property-information "^6.0.0" + vfile "^5.0.0" + vfile-location "^4.0.0" + web-namespaces "^2.0.0" + +hast-util-parse-selector@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz#25ab00ae9e75cbc62cf7a901f68a247eade659e2" + integrity sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA== + dependencies: + "@types/hast" "^2.0.0" + +hast-util-raw@^7.0.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.3.tgz#dcb5b22a22073436dbdc4aa09660a644f4991d99" + integrity sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg== + dependencies: + "@types/hast" "^2.0.0" + "@types/parse5" "^6.0.0" + hast-util-from-parse5 "^7.0.0" + hast-util-to-parse5 "^7.0.0" + html-void-elements "^2.0.0" + parse5 "^6.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-to-html@^8.0.0: + version "8.0.4" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz#0269ef33fa3f6599b260a8dc94f733b8e39e41fc" + integrity sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + ccount "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-raw "^7.0.0" + hast-util-whitespace "^2.0.0" + html-void-elements "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + stringify-entities "^4.0.0" + zwitch "^2.0.4" + +hast-util-to-parse5@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz#c49391bf8f151973e0c9adcd116b561e8daf29f3" + integrity sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== + +hastscript@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-7.2.0.tgz#0eafb7afb153d047077fa2a833dc9b7ec604d10b" + integrity sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^3.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + +hoek@6.x.x: + version "6.1.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" + integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== + +hoist-non-react-statics@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f" + integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== + +http-errors@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +husky@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" + integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.1.4, ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +immutable@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + +immutable@~3.7.4, immutable@~3.7.6: + version "3.7.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" + integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@^8.0.0: + version "8.2.5" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" + integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + +internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0, is-core-module@^2.9.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" + integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a" + integrity sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ== + dependencies: + tslib "^2.0.3" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-2.0.2.tgz#f1105ced1fe4de906a5f39553e7d3803fd804649" + integrity sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ== + dependencies: + tslib "^2.0.3" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isomorphic-ws@5.0.0, isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +iterall@^1.1.3, iterall@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== + dependencies: + "@jest/types" "^27.5.1" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== + dependencies: + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + prompts "^2.0.1" + yargs "^16.2.0" + +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== + dependencies: + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^27.5.1" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + jsdom "^16.6.0" + +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== + dependencies: + "@jest/types" "^27.5.1" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + throat "^6.0.1" + +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== + dependencies: + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.5.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== + dependencies: + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" + +jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-pnp-resolver "^1.2.2" + jest-util "^27.5.1" + jest-validate "^27.5.1" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.9" + +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + natural-compare "^1.4.0" + pretty-format "^27.5.1" + semver "^7.3.2" + +jest-util@^27.0.0, jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" + +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== + dependencies: + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.5.1" + string-length "^4.0.1" + +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== + dependencies: + "@jest/core" "^27.5.1" + import-local "^3.0.2" + jest-cli "^27.5.1" + +jiti@1.17.1: + version "1.17.1" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.17.1.tgz#264daa43ee89a03e8be28c3d712ccc4eb9f1e8ed" + integrity sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw== + +jose@^4.11.4: + version "4.13.1" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.13.1.tgz#449111bb5ab171db85c03f1bd2cb1647ca06db1c" + integrity sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ== + +js-sdsl@^4.1.4: + version "4.4.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" + integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.0.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsdom@^16.5.3, jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stable-stringify@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" + integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== + dependencies: + jsonify "^0.0.1" + +json-to-pretty-yaml@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz#f4cd0bd0a5e8fe1df25aaf5ba118b099fd992d5b" + integrity sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A== + dependencies: + remedial "^1.0.7" + remove-trailing-spaces "^1.0.6" + +json5@2.x, json5@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + 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" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + dependencies: + array-includes "^3.1.5" + object.assign "^4.1.3" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + +kareem@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.5.1.tgz#7b8203e11819a8e77a34b3517d3ead206764d15d" + integrity sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +language-subtag-registry@~0.3.2: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@=1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== + dependencies: + language-subtag-registry "~0.3.2" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0, lodash@~4.17.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.0.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +loglevel@^1.6.7: + version "1.8.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" + integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +longest-streak@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" + integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-2.0.2.tgz#64c2324a2250bf7c37c5901e76a5b5309301160b" + integrity sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg== + dependencies: + tslib "^2.0.3" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +markdown-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" + integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== + dependencies: + repeat-string "^1.0.0" + +mdast-util-definitions@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +mdast-util-find-and-replace@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" + integrity sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA== + dependencies: + escape-string-regexp "^4.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +mdast-util-footnote@^0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz#4b226caeab4613a3362c144c94af0fdd6f7e0ef0" + integrity sha512-QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w== + dependencies: + mdast-util-to-markdown "^0.6.0" + micromark "~2.11.0" + +mdast-util-from-markdown@^0.8.0: + version "0.8.5" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" + integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^2.0.0" + micromark "~2.11.0" + parse-entities "^2.0.0" + unist-util-stringify-position "^2.0.0" + +mdast-util-from-markdown@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz#0214124154f26154a2b3f9d401155509be45e894" + integrity sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-frontmatter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz#8bd5cd55e236c03e204a036f7372ebe9e6748240" + integrity sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ== + dependencies: + micromark-extension-frontmatter "^0.2.0" + +mdast-util-gfm-autolink-literal@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz#9c4ff399c5ddd2ece40bd3b13e5447d84e385fb7" + integrity sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A== + dependencies: + ccount "^1.0.0" + mdast-util-find-and-replace "^1.1.0" + micromark "^2.11.3" + +mdast-util-gfm-strikethrough@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz#45eea337b7fff0755a291844fbea79996c322890" + integrity sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA== + dependencies: + mdast-util-to-markdown "^0.6.0" + +mdast-util-gfm-table@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz#af05aeadc8e5ee004eeddfb324b2ad8c029b6ecf" + integrity sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ== + dependencies: + markdown-table "^2.0.0" + mdast-util-to-markdown "~0.6.0" + +mdast-util-gfm-task-list-item@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz#70c885e6b9f543ddd7e6b41f9703ee55b084af10" + integrity sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A== + dependencies: + mdast-util-to-markdown "~0.6.0" + +mdast-util-gfm@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" + integrity sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ== + dependencies: + mdast-util-gfm-autolink-literal "^0.1.0" + mdast-util-gfm-strikethrough "^0.2.0" + mdast-util-gfm-table "^0.1.0" + mdast-util-gfm-task-list-item "^0.1.0" + mdast-util-to-markdown "^0.6.1" + +mdast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" + integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== + dependencies: + "@types/mdast" "^3.0.0" + unist-util-is "^5.0.0" + +mdast-util-to-hast@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-definitions "^5.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: + version "0.6.5" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" + integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== + dependencies: + "@types/unist" "^2.0.0" + longest-streak "^2.0.0" + mdast-util-to-string "^2.0.0" + parse-entities "^2.0.0" + repeat-string "^1.0.0" + zwitch "^1.0.0" + +mdast-util-to-markdown@^1.0.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" + integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +meros@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/meros/-/meros-1.2.1.tgz#056f7a76e8571d0aaf3c7afcbe7eb6407ff7329e" + integrity sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g== + +micro@^9.3.2: + version "9.4.1" + resolved "https://registry.yarnpkg.com/micro/-/micro-9.4.1.tgz#3a7eedd96718d8569a324475cd1967441df4b3c7" + integrity sha512-Lpjcbp6Y9GJIfewxDfTmu9eW0rt0MGo+Gs1d3yJLFa7mhErtKkCngGhDbA/O1gqUjEwsHh+jWPg8BJ0Bx4AgFA== + dependencies: + arg "4.1.0" + content-type "1.0.4" + raw-body "2.4.1" + +micromark-core-commonmark@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" + integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-footnote@^0.3.0: + version "0.3.2" + resolved "https://registry.yarnpkg.com/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz#129b74ef4920ce96719b2c06102ee7abb2b88a20" + integrity sha512-gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ== + dependencies: + micromark "~2.11.0" + +micromark-extension-frontmatter@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz#61b8e92e9213e1d3c13f5a59e7862f5ca98dfa53" + integrity sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A== + dependencies: + fault "^1.0.0" + +micromark-extension-gfm-autolink-literal@~0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz#53866c1f0c7ef940ae7ca1f72c6faef8fed9f204" + integrity sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw== + dependencies: + micromark "~2.11.3" + +micromark-extension-gfm-strikethrough@~0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz#96cb83356ff87bf31670eefb7ad7bba73e6514d1" + integrity sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm-table@~0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz#4d49f1ce0ca84996c853880b9446698947f1802b" + integrity sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm-tagfilter@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad" + integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== + +micromark-extension-gfm-task-list-item@~0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" + integrity sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm@^0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz#36d1a4c089ca8bdfd978c9bd2bf1a0cb24e2acfe" + integrity sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A== + dependencies: + micromark "~2.11.0" + micromark-extension-gfm-autolink-literal "~0.5.0" + micromark-extension-gfm-strikethrough "~0.6.5" + micromark-extension-gfm-table "~0.4.0" + micromark-extension-gfm-tagfilter "~0.3.0" + micromark-extension-gfm-task-list-item "~0.3.0" + +micromark-factory-destination@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" + integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" + integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" + integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" + integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-whitespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" + integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" + integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" + integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" + integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" + integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" + integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" + integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" + integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== + +micromark-util-html-tag-name@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" + integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== + +micromark-util-normalize-identifier@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" + integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" + integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee" + integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" + integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" + integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" + integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== + +micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: + version "2.11.4" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" + integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== + dependencies: + debug "^4.0.0" + parse-entities "^2.0.0" + +micromark@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.1.0.tgz#eeba0fe0ac1c9aaef675157b52c166f125e89f62" + integrity sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimatch@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.3.tgz#b4dcece1d674dee104bb0fb833ebb85a78cbbca6" + integrity sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mongodb-connection-string-url@^2.5.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" + integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ== + dependencies: + "@types/whatwg-url" "^8.2.1" + whatwg-url "^11.0.0" + +mongodb@4.14.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.14.0.tgz#3a21ca602069b2494b7066a7709056c8cece6bf6" + integrity sha512-coGKkWXIBczZPr284tYKFLg+KbGPPLlSbdgfKAb6QqCFt5bo5VFZ50O3FFzsw4rnkqjwT6D8Qcoo9nshYKM7Mg== + dependencies: + bson "^4.7.0" + mongodb-connection-string-url "^2.5.4" + socks "^2.7.1" + optionalDependencies: + "@aws-sdk/credential-providers" "^3.186.0" + saslprep "^1.0.3" + +mongoose@^6.2.8: + version "6.10.5" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.10.5.tgz#4d027269b5fcb86f1d40ce1c188d5774bd080480" + integrity sha512-y4HL4/9EySec7L0gJ+pCm9heLSF45uIIvRS4fSeAFWDfe4vXW1vRZJwTz7OGkra3ZoSfRnFTo9bNZkuggDVlVA== + dependencies: + bson "^4.7.0" + kareem "2.5.1" + mongodb "4.14.0" + mpath "0.9.0" + mquery "4.0.3" + ms "2.1.3" + sift "16.0.1" + +mpath@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" + integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== + +mquery@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d" + integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA== + dependencies: + debug "4.x" + +mri@^1.1.0, mri@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multimatch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nanoid@^3.3.4: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +next@^12.1.1: + version "12.3.4" + resolved "https://registry.yarnpkg.com/next/-/next-12.3.4.tgz#f2780a6ebbf367e071ce67e24bd8a6e05de2fcb1" + integrity sha512-VcyMJUtLZBGzLKo3oMxrEF0stxh8HwuW976pAzlHhI3t8qJ4SROjCrSh1T24bhrbjw55wfZXAbXPGwPt5FLRfQ== + dependencies: + "@next/env" "12.3.4" + "@swc/helpers" "0.4.11" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.0.7" + use-sync-external-store "1.2.0" + optionalDependencies: + "@next/swc-android-arm-eabi" "12.3.4" + "@next/swc-android-arm64" "12.3.4" + "@next/swc-darwin-arm64" "12.3.4" + "@next/swc-darwin-x64" "12.3.4" + "@next/swc-freebsd-x64" "12.3.4" + "@next/swc-linux-arm-gnueabihf" "12.3.4" + "@next/swc-linux-arm64-gnu" "12.3.4" + "@next/swc-linux-arm64-musl" "12.3.4" + "@next/swc-linux-x64-gnu" "12.3.4" + "@next/swc-linux-x64-musl" "12.3.4" + "@next/swc-win32-arm64-msvc" "12.3.4" + "@next/swc-win32-ia32-msvc" "12.3.4" + "@next/swc-win32-x64-msvc" "12.3.4" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^3.3.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.35.0.tgz#c7f171af995cc5286fa95612c4ca97b3910eaa79" + integrity sha512-jAlSOFR1Bls963NmFwxeQkNTzqjUF0NThm8Le7eRIRGzFUVJuMOFZDLv5Y30W/Oaw+KEebEJLAigwO9gQHoEmw== + dependencies: + semver "^7.3.5" + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^2.6.1: + version "2.6.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" + integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + dependencies: + whatwg-url "^5.0.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" + integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nullthrows@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== + +nwsapi@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.3.tgz#00e04dfd5a4a751e5ec2fecdc75dfd2f0db820fa" + integrity sha512-jscxIO4/VKScHlbmFBdV1Z6LXnLO+ZR4VMtypudUdfwtKxUN3TQcNFIHLwKtrUbDyHN4/GycY9+oRGZ2XMXYPw== + +object-assign@^4.0.0, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-path@^0.11.4: + version "0.11.8" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" + integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== + +object.assign@^4.1.3, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.getownpropertydescriptors@^2.1.1: + version "2.1.5" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" + integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== + dependencies: + array.prototype.reduce "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-limit@3.1.0, p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-filepath@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-numeric-range@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + +parse5-htmlparser2-tree-adapter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@6.0.1, parse5@^6.0.0, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pirates@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prebuild-install@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prettier@^2.6.1: + version "2.8.7" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450" + integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw== + +pretty-format@^27.0.0, pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-quick@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" + integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== + dependencies: + chalk "^3.0.0" + execa "^4.0.0" + find-up "^4.1.0" + ignore "^5.1.4" + mri "^1.1.5" + multimatch "^4.0.0" + +prismjs@^1.23.0, prismjs@^1.27.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d" + integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +pvtsutils@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" + integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== + dependencies: + tslib "^2.4.0" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +raw-body@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-clientside-effect@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz#29f9b14e944a376b03fb650eed2a754dd128ea3a" + integrity sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg== + dependencies: + "@babel/runtime" "^7.12.13" + +react-dom@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-dropzone@^12.0.4: + version "12.1.0" + resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-12.1.0.tgz#e097b37e9da6f9e324efc757b7434ebc6f3dc2cb" + integrity sha512-iBYHA1rbopIvtzokEX4QubO6qk5IF/x3BtKGu74rF2JkQDXnwC4uO/lHKpaw4PJIV6iIAYOlwLv2FpiGyqHNog== + dependencies: + attr-accept "^2.2.2" + file-selector "^0.5.0" + prop-types "^15.8.1" + +react-fast-compare@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" + integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== + +react-focus-lock@^2.5.2: + version "2.9.4" + resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.9.4.tgz#4753f6dcd167c39050c9d84f9c63c71b3ff8462e" + integrity sha512-7pEdXyMseqm3kVjhdVH18sovparAzLg5h6WvIx7/Ck3ekjhrrDMEegHSa3swwC8wgfdd7DIdUVRGeiHT9/7Sgg== + dependencies: + "@babel/runtime" "^7.0.0" + focus-lock "^0.11.6" + prop-types "^15.6.2" + react-clientside-effect "^1.2.6" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + +react-icons@^4.3.1: + version "4.8.0" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.8.0.tgz#621e900caa23b912f737e41be57f27f6b2bff445" + integrity sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg== + +"react-is@^16.12.0 || ^17.0.0 || ^18.0.0": + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1, react-is@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-remove-scroll-bar@^2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9" + integrity sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A== + dependencies: + react-style-singleton "^2.2.1" + tslib "^2.0.0" + +react-remove-scroll@^2.4.3: + version "2.5.5" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz#1e31a1260df08887a8a0e46d09271b52b3a37e77" + integrity sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw== + dependencies: + react-remove-scroll-bar "^2.3.3" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + +react-shallow-renderer@^16.13.1: + version "16.15.0" + resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457" + integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== + dependencies: + object-assign "^4.1.1" + react-is "^16.12.0 || ^17.0.0 || ^18.0.0" + +react-style-singleton@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" + integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== + dependencies: + get-nonce "^1.0.0" + invariant "^2.2.4" + tslib "^2.0.0" + +react-test-renderer@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.2.tgz#4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c" + integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ== + dependencies: + object-assign "^4.1.1" + react-is "^17.0.2" + react-shallow-renderer "^16.13.1" + scheduler "^0.20.2" + +react@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +rehype-stringify@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/rehype-stringify/-/rehype-stringify-9.0.3.tgz#70e3bd6d4d29e7acf36b802deed350305d2c3c17" + integrity sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw== + dependencies: + "@types/hast" "^2.0.0" + hast-util-to-html "^8.0.0" + unified "^10.0.0" + +relay-runtime@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-12.0.0.tgz#1e039282bdb5e0c1b9a7dc7f6b9a09d4f4ff8237" + integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug== + dependencies: + "@babel/runtime" "^7.0.0" + fbjs "^3.0.0" + invariant "^2.2.4" + +remark-footnotes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-3.0.0.tgz#5756b56f8464fa7ed80dbba0c966136305d8cb8d" + integrity sha512-ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg== + dependencies: + mdast-util-footnote "^0.1.0" + micromark-extension-footnote "^0.3.0" + +remark-frontmatter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz#ca5d996361765c859bd944505f377d6b186a6ec6" + integrity sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA== + dependencies: + mdast-util-frontmatter "^0.2.0" + micromark-extension-frontmatter "^0.2.0" + +remark-gfm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" + integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA== + dependencies: + mdast-util-gfm "^0.1.0" + micromark-extension-gfm "^0.3.0" + +remark-parse@^10.0.0, remark-parse@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" + integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + +remark-parse@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" + integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== + dependencies: + mdast-util-from-markdown "^0.8.0" + +remark-prism@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/remark-prism/-/remark-prism-1.3.6.tgz#f733aaec1b9f37975ea730fca86c014dc9775cda" + integrity sha512-yYSXJ2MEK2DeD9UKDKFkQPcVqRx6aX2FYD1kE27ScogpZ/BBO8MoOO6gf/AKqfXvKGnP51wqvDEBmPseypgaug== + dependencies: + classnames "^2.3.1" + css-selector-parser "^1.4.1" + escape-html "^1.0.3" + jsdom "^16.5.3" + parse-numeric-range "^1.2.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + prismjs "^1.23.0" + unist-util-map "^2.0.1" + +remark-rehype@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + +remark-stringify@^10.0.0, remark-stringify@^10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7" + integrity sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.0.0" + unified "^10.0.0" + +remark@^14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.2.tgz#4a1833f7441a5c29e44b37bb1843fb820797b40f" + integrity sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA== + dependencies: + "@types/mdast" "^3.0.0" + remark-parse "^10.0.0" + remark-stringify "^10.0.0" + unified "^10.0.0" + +remedial@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remedial/-/remedial-1.0.8.tgz#a5e4fd52a0e4956adbaf62da63a5a46a78c578a0" + integrity sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +remove-trailing-spaces@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz#4354d22f3236374702f58ee373168f6d6887ada7" + integrity sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA== + +repeat-string@^1.0.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve.exports@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" + integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== + +resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.5.5: + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== + dependencies: + tslib "^2.1.0" + +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +saslprep@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" + integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== + dependencies: + sparse-bitfield "^3.0.3" + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +scuid@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" + integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== + +semver@7.x, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7: + version "7.4.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.4.0.tgz#8481c92feffc531ab1e012a8ffc15bdd3a0f4318" + integrity sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw== + dependencies: + lru-cache "^6.0.0" + +semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.11: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sharp@^0.30.3: + version "0.30.7" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.30.7.tgz#7862bda98804fdd1f0d5659c85e3324b90d94c7c" + integrity sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig== + dependencies: + color "^4.2.3" + detect-libc "^2.0.1" + node-addon-api "^5.0.0" + prebuild-install "^7.1.1" + semver "^7.3.7" + simple-get "^4.0.1" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +sift@16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.1.tgz#e9c2ccc72191585008cf3e36fc447b2d2633a053" + integrity sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ== + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signedsource@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" + integrity sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +sirv@^1.0.7: + version "1.0.19" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" + integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^1.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +socks@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@^0.5.6: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== + dependencies: + memory-pager "^1.0.2" + +sponge-case@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c" + integrity sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA== + dependencies: + tslib "^2.0.3" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-env-interpolation@1.0.1, string-env-interpolation@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" + integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +stringify-entities@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +styled-jsx@5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.7.tgz#be44afc53771b983769ac654d355ca8d019dff48" + integrity sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA== + +styled-jsx@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.2.tgz#55020c50da54d2b225750bd7aaab57d511724060" + integrity sha512-FI5r0a5ED2/+DSdG2ZRz3a4FtNQnKPLadauU5v76a9QsscwZrWggQKOmyxGGP5EWKbyY3bsuWAJYzyKaDAVAcw== + dependencies: + client-only "0.0.1" + +subscriptions-transport-ws@^0.9.19: + version "0.9.19" + resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz#10ca32f7e291d5ee8eb728b9c02e43c52606cdcf" + integrity sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw== + 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" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +swap-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-2.0.2.tgz#671aedb3c9c137e2985ef51c51f9e98445bf70d9" + integrity sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw== + dependencies: + tslib "^2.0.3" + +swr@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8" + integrity sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw== + +symbol-observable@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +tabbable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-4.0.0.tgz#5bff1d1135df1482cf0f0206434f15eadbeb9261" + integrity sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ== + +tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +throat@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" + integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== + +through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tiny-warning@^1.0.2, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +title-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" + integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA== + dependencies: + tslib "^2.0.3" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + +tough-cookie@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" + integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +traverse@^0.6.6: + version "0.6.7" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" + integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + +ts-invariant@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" + integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== + dependencies: + tslib "^1.9.3" + +ts-jest@^27.1.4: + version "27.1.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.5.tgz#0ddf1b163fbaae3d5b7504a1e65c914a95cff297" + integrity sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^27.0.0" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-log@^2.2.3: + version "2.2.5" + resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.5.tgz#aef3252f1143d11047e2cb6f7cfaac7408d96623" + integrity sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA== + +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfig-paths@^3.14.1: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + +tslib@~2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@^4.6.3: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +ua-parser-js@^0.7.18, ua-parser-js@^0.7.30: + version "0.7.35" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307" + integrity sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== + +unified@^10.0.0, unified@^10.1.2: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + +unified@^9.2.1: + version "9.2.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" + integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +unist-util-generated@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-map/-/unist-util-map-2.0.1.tgz#c3fca064486d3937c4dad8b39c64974faae7c7c4" + integrity sha512-VdNvk4BQUUU9Rgr8iUOvclHa/iN9O+6Dt66FKij8l9OVezGG37gGWCPU5KSax1R2degqXFvl3kWTkvzL79e9tQ== + dependencies: + "@types/mdast" "^3.0.0" + object-assign "^4.0.0" + +unist-util-position@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + +universal-cookie@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/universal-cookie/-/universal-cookie-4.0.4.tgz#06e8b3625bf9af049569ef97109b4bb226ad798d" + integrity sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw== + dependencies: + "@types/cookie" "^0.3.3" + cookie "^0.4.0" + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +unixify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" + integrity sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg== + dependencies: + normalize-path "^2.1.1" + +unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +urlpattern-polyfill@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-6.0.2.tgz#a193fe773459865a2a5c93b246bb794b13d07256" + integrity sha512-5vZjFlH9ofROmuWmXM9yj2wljYKgWstGwe8YTyiqM7hVum/g9LyCizPZtb3UqsuppVwety9QJmfc42VggLpTgg== + dependencies: + braces "^3.0.2" + +use-callback-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" + integrity sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w== + dependencies: + tslib "^2.0.0" + +use-sidecar@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" + integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== + dependencies: + detect-node-es "^1.1.0" + tslib "^2.0.0" + +use-subscription@^1.5.1: + version "1.8.0" + resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.8.0.tgz#f118938c29d263c2bce12fc5585d3fe694d4dbce" + integrity sha512-LISuG0/TmmoDoCRmV5XAqYkd3UCBNM0ML3gGBndze65WITcsExCD3DTvXXTLyNcOC0heFQZzluW88bN/oC1DQQ== + dependencies: + use-sync-external-store "^1.2.0" + +use-sync-external-store@1.2.0, use-sync-external-store@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" + integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + for-each "^0.3.3" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.1" + +uuid@^3.1.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.0.0, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +value-or-promise@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" + integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== + +value-or-promise@1.0.12, value-or-promise@^1.0.11, value-or-promise@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" + integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== + +vfile-location@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.1.0.tgz#69df82fb9ef0a38d0d02b90dd84620e120050dd0" + integrity sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw== + dependencies: + "@types/unist" "^2.0.0" + vfile "^5.0.0" + +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile-message@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + +vfile@^5.0.0: + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + +web-streams-polyfill@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + +webcrypto-core@^1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" + integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +webpack-bundle-analyzer@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.3.0.tgz#2f3c0ca9041d5ee47fa418693cf56b4a518b578b" + integrity sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA== + dependencies: + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^6.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@8.13.0, ws@^8.12.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1, ws@^7.4.6: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xss@^1.0.8: + version "1.0.14" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" + integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-ast-parser@^0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@20.x, yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + 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" + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.0.0: + version "17.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" + integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zen-observable-ts@^0.8.21: + version "0.8.21" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" + integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== + dependencies: + tslib "^1.9.3" + zen-observable "^0.8.0" + +zen-observable@^0.8.0: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zod@^3.14.2: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== + +zwitch@^2.0.0, zwitch@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==