From 718caf37d3c6e3eab2c375239d72b008ee250164 Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Tue, 21 Feb 2023 20:42:40 +0100 Subject: [PATCH 01/17] =?UTF-8?q?fix:=20=F0=9F=94=A5=20experiment=20typesc?= =?UTF-8?q?ript=20types=20from=20gql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + SWR Hooks (with types) --- codegen.ts | 36 + package-lock.json | 6063 +++++++++++++- package.json | 11 +- .../{CollabSwitch.jsx => CollabSwitch.tsx} | 44 +- src/data/api.ts | 256 +- src/data/ipfs.ts | 58 +- src/data/queries.ts | 295 + src/gql/README.md | 4 + src/gql/index.ts | 7453 +++++++++++++++++ src/pages/collaborate/manage.jsx | 124 +- src/pages/home/feeds/friends-feed.jsx | 2 +- src/pages/home/feeds/fund-feed.jsx | 2 +- src/pages/home/feeds/lists-feed.jsx | 2 +- src/pages/home/feeds/mime-type-feed.jsx | 2 +- src/pages/home/feeds/new-objkts-feed.jsx | 2 +- src/pages/home/feeds/random-feed.jsx | 2 +- src/pages/home/feeds/recent-sales-feed.jsx | 2 +- src/pages/home/feeds/tag-feed.jsx | 2 +- src/pages/objkt-display/index.tsx | 114 +- src/pages/profile/collabs.jsx | 2 +- src/pages/profile/collections.jsx | 2 +- src/pages/profile/creations.jsx | 2 +- 22 files changed, 13944 insertions(+), 536 deletions(-) create mode 100644 codegen.ts rename src/components/collab/{CollabSwitch.jsx => CollabSwitch.tsx} (56%) create mode 100644 src/data/queries.ts create mode 100644 src/gql/README.md create mode 100644 src/gql/index.ts diff --git a/codegen.ts b/codegen.ts new file mode 100644 index 000000000..df29ce3df --- /dev/null +++ b/codegen.ts @@ -0,0 +1,36 @@ +import type { CodegenConfig } from '@graphql-codegen/cli' + +const plugins = [ + 'typescript', + 'typescript-operations', + // 'typed-document-node', + 'typescript-graphql-request', + 'plugin-typescript-swr', +] +const config = { + skipTypename: false, + withHooks: true, + withHOC: false, + withComponent: false, + experimentalFragmentVariables: true, + useTypeImports: true, + commentDescriptions: true, +} +const codeGenConfig: CodegenConfig = { + ignoreNoDocuments: true, + overwrite: true, + + schema: 'https://indexer.tzprofiles.com/v1/graphql', + generates: { + './src/gql/index.ts': { + documents: ['src/data/queries.ts'], + schema: 'https://teztok.teia.rocks/v1/graphql', + + // preset: 'client', + plugins, + // schema: 'https://indexer.tzprofiles.com/v1/graphql', // this will get merged + config, + }, + }, +} +export default codeGenConfig diff --git a/package-lock.json b/package-lock.json index 255cc333e..70994d956 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,8 +18,8 @@ "compressorjs": "^1.1.1", "fflate": "^0.7.4", "framer-motion": "^9.0.1", - "graphql": "^16.4.0", - "graphql-request": "^4.2.0", + "graphql": "^16.6.0", + "graphql-request": "^4.3.0", "json5": "^2.2.3", "keyboardjs": "^2.7.0", "markdown-to-jsx": "^7.1.9", @@ -43,6 +43,12 @@ "@airgap/beacon-types": "^3.3.3", "@babel/preset-react": "^7.18.6", "@google/model-viewer": "^3.0.1", + "@graphql-codegen/cli": "^3.1.0", + "@graphql-codegen/client-preset": "^2.1.0", + "@graphql-codegen/introspection": "^3.0.1", + "@graphql-codegen/typed-document-node": "^3.0.1", + "@graphql-codegen/typescript-graphql-request": "^4.5.8", + "@graphql-typed-document-node/core": "^3.1.1", "@hookform/devtools": "^4.3.0", "@storybook/addon-essentials": "^7.0.0-beta.47", "@storybook/addon-interactions": "^7.0.0-beta.47", @@ -65,6 +71,7 @@ "eslint-plugin-react": "^7.32.2", "fnv1a": "^1.1.1", "fs-extra": "^11.1.0", + "graphql-codegen-plugin-typescript-swr": "^0.8.3", "husky": "^7.0.4", "libsodium-wrappers": "^0.7.11", "lodash": "^4.17.21", @@ -203,6 +210,248 @@ "node": ">=6.0.0" } }, + "node_modules/@ardatan/relay-compiler": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz", + "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==", + "dev": true, + "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" + }, + "bin": { + "relay-compiler": "bin/relay-compiler" + }, + "peerDependencies": { + "graphql": "*" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@ardatan/sync-fetch": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", + "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.1" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@aw-web-design/x-default-browser": { "version": "1.4.88", "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.88.tgz", @@ -2241,6 +2490,28 @@ "node": ">=0.1.90" } }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@csstools/postcss-cascade-layers": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", @@ -3130,6 +3401,937 @@ "node": ">=6.0.0" } }, + "node_modules/@graphql-codegen/add": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/add/-/add-4.0.1.tgz", + "integrity": "sha512-A7k+9eRfrKyyNfhWEN/0eKz09R5cp4XXxUuNLQAVm/aohmVI2xdMV4lM02rTlM6Pyou3cU/v0iZnhgo6IRpqeg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/cli": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-3.1.0.tgz", + "integrity": "sha512-MUYyHkh/n8XVuONk7AYvJV/ObZDlPGwyevl8ch21jNFNj2M5PM39WViHKmIYwVw2n4fDmoh3BNdaeHQs1wb4HA==", + "dev": true, + "dependencies": { + "@babel/generator": "^7.18.13", + "@babel/template": "^7.18.10", + "@babel/types": "^7.18.13", + "@graphql-codegen/core": "^3.1.0", + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-tools/apollo-engine-loader": "^7.3.6", + "@graphql-tools/code-file-loader": "^7.3.17", + "@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.8.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" + }, + "bin": { + "gql-gen": "cjs/bin.js", + "graphql-code-generator": "cjs/bin.js", + "graphql-codegen": "cjs/bin.js", + "graphql-codegen-esm": "esm/bin.js" + }, + "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" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/yargs": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.0.tgz", + "integrity": "sha512-dwqOPg5trmrre9+v8SUo2q/hAwyKoVfu8OC1xPHKJGNdxAvPl4sKxL4vBnh3bQz/ZvvGAFeA5H3ou2kcOY8sQQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@graphql-codegen/client-preset": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/client-preset/-/client-preset-2.1.0.tgz", + "integrity": "sha512-mt5CyPwZmOUP+ifC56xMjeEyfywu0P6HSWbhWPn1Jbv7n3TMILXMDfgOAufnOmrU1Ian8wu72I9A5IMRGqmW1w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7", + "@graphql-codegen/add": "^4.0.1", + "@graphql-codegen/gql-tag-operations": "2.0.1", + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/typed-document-node": "^3.0.1", + "@graphql-codegen/typescript": "^3.0.1", + "@graphql-codegen/typescript-operations": "^3.0.1", + "@graphql-codegen/visitor-plugin-common": "^3.0.1", + "@graphql-tools/documents": "^0.1.0", + "@graphql-tools/utils": "^9.0.0", + "@graphql-typed-document-node/core": "3.1.1", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/core": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-3.1.0.tgz", + "integrity": "sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-tools/schema": "^9.0.0", + "@graphql-tools/utils": "^9.1.1", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/gql-tag-operations": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-2.0.1.tgz", + "integrity": "sha512-BGJRfRYJo566x3nPoEwiU0KkhbBAB2i4UsUg2wAlzC+z8uoL1JtCI2besa7RoWxjvEpmjrn23O5CnUzD933JLg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/visitor-plugin-common": "3.0.1", + "@graphql-tools/utils": "^9.0.0", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/introspection": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/introspection/-/introspection-3.0.1.tgz", + "integrity": "sha512-D6vJQTEL/np4EmeUHm5spLK59cr+AMXEoLRoTI+dagFzlHYDTfXZH6F7uhKaakxcj0SAQhIWKvGMggotUdEtyg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/visitor-plugin-common": "^3.0.1", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.1.0.tgz", + "integrity": "sha512-xvSHJb9OGb5CODIls0AI1rCenLz+FuiaNPCsfHMCNsLDjOZK2u0jAQ9zUBdc/Wb+21YXZujBCc0Vm1QX+Zz0nw==", + "dev": true, + "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.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-3.0.1.tgz", + "integrity": "sha512-rTKTi4XiW4QFZnrEqetpiYEWVsOFNoiR/v3rY9mFSttXFbIwNXPme32EspTiGWmEEdHY8UuTDtZN3vEcs/31zw==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-tools/utils": "^9.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typed-document-node": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typed-document-node/-/typed-document-node-3.0.1.tgz", + "integrity": "sha512-2plPBbAJZtR72BU6n07N3nIJYlwnCWbFNoe++MQ33S2ML4KwpCiflGEJnTpiwOEhCklQLWg1FEUdEOYS2iluqw==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/visitor-plugin-common": "3.0.1", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-3.0.1.tgz", + "integrity": "sha512-HvozJg7eHqywmYvXa7+nmjw+v3+f8ilFv9VbRvmjhj/zBw3VKGT2n/85ZhVyuWjY2KrDLzl6BqeXttWsW5Wo4w==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/schema-ast": "^3.0.1", + "@graphql-codegen/visitor-plugin-common": "3.0.1", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request": { + "version": "4.5.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-graphql-request/-/typescript-graphql-request-4.5.8.tgz", + "integrity": "sha512-XsuAA35Ou03LsklNgnIWXZ5HOHsJ5w1dBuDKtvqM9rD0cAI8x0f4TY0n6O1EraSBSvyHLP3npb1lOTPZzG2TjA==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.7.2", + "@graphql-codegen/visitor-plugin-common": "2.13.1", + "auto-bind": "~4.0.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", + "graphql-request": "^3.4.0 || ^4.0.0 || ^5.0.0", + "graphql-tag": "^2.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-codegen/plugin-helpers": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz", + "integrity": "sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==", + "dev": true, + "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" + }, + "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" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz", + "integrity": "sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg==", + "dev": true, + "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" + }, + "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" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-tools/utils": { + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz", + "integrity": "sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "dev": true, + "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" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@graphql-codegen/typescript-operations": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-3.0.1.tgz", + "integrity": "sha512-Td1d483cQr7XJj/zXrbqVUEi2QK56DT7EToFheZrBFArIQCUEGK+Xgw6GhEmZaTwWYODxavzy1jmTTJC2fEuTw==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/typescript": "^3.0.1", + "@graphql-codegen/visitor-plugin-common": "3.0.1", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.0.1.tgz", + "integrity": "sha512-Qek+Ywy094Km7Vc1TzKBN9ICvtYwPdqZUliPO77urMSveP+2+G2O9Tjx546dW4A1O6rhEfexbenc2DqTAe7iLQ==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@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.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader": { + "version": "7.3.26", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.26.tgz", + "integrity": "sha512-h1vfhdJFjnCYn9b5EY1Z91JTF0KB3hHVJNQIsiUV2mpQXZdeOXQoaWeYEKaiI5R6kwBw5PP9B0fv3jfUIG8LyQ==", + "dev": true, + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/utils": "^9.2.1", + "@whatwg-node/fetch": "^0.8.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/batch-execute": { + "version": "8.5.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.18.tgz", + "integrity": "sha512-mNv5bpZMLLwhkmPA6+RP81A6u3KF4CSKLf3VX9hbomOkQR4db8pNs8BOvpZU54wKsUzMzdlws/2g/Dabyb2Vsg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "9.2.1", + "dataloader": "2.2.2", + "tslib": "^2.4.0", + "value-or-promise": "1.0.12" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/code-file-loader": { + "version": "7.3.21", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.21.tgz", + "integrity": "sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA==", + "dev": true, + "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" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/delegate": { + "version": "9.0.27", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.27.tgz", + "integrity": "sha512-goYewiPls/RDXiRTl1S2tRPlsyDQCxlDWqd0uEIzQZ6aWSyiutfwQnTzdbZPXK0qOblEVMIqFhSGrB6fp0OkBA==", + "dev": true, + "dependencies": { + "@graphql-tools/batch-execute": "8.5.18", + "@graphql-tools/executor": "0.0.14", + "@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" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/documents": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/documents/-/documents-0.1.0.tgz", + "integrity": "sha512-1WQeovHv5S1M3xMzQxbSrG3yl6QOnsq2JUBnlg5/0aMM5R4GNMx6Ms+ROByez/dnuA81kstRuSK+2qpe+GaRIw==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.14.tgz", + "integrity": "sha512-YiBbN9NT0FgqPJ35+Eg0ty1s5scOZTgiPf+6hLVJBd5zHEURwojEMCTKJ9e0RNZHETp2lN+YaTFGTSoRk0t4Sw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "9.2.1", + "@graphql-typed-document-node/core": "3.1.1", + "@repeaterjs/repeater": "3.0.4", + "tslib": "^2.4.0", + "value-or-promise": "1.0.12" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.11.tgz", + "integrity": "sha512-muRj6j897ks2iKqe3HchWFFzd+jFInSRuLPvHJ7e4WPrejFvaZx3BQ9gndfJvVkfYUZIFm13stCGXaJJTbVM0Q==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "9.2.1", + "@repeaterjs/repeater": "3.0.4", + "@types/ws": "^8.0.0", + "graphql-ws": "5.11.3", + "isomorphic-ws": "5.0.0", + "tslib": "^2.4.0", + "ws": "8.12.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-http": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz", + "integrity": "sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==", + "dev": true, + "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" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/extract-files": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", + "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", + "dev": true, + "engines": { + "node": "^12.20 || >= 14.13" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + } + }, + "node_modules/@graphql-tools/executor-legacy-ws": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.9.tgz", + "integrity": "sha512-L7oDv7R5yoXzMH+KLKDB2WHVijfVW4dB2H+Ae1RdW3MFvwbYjhnIB6QzHqKEqksjp/FndtxZkbuTIuAOsYGTYw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "9.2.1", + "@types/ws": "^8.0.0", + "isomorphic-ws": "5.0.0", + "tslib": "^2.4.0", + "ws": "8.12.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/git-loader": { + "version": "7.2.20", + "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.2.20.tgz", + "integrity": "sha512-D/3uwTzlXxG50HI8BEixqirT4xiUp6AesTdfotRXAs2d4CT9wC6yuIWOHkSBqgI1cwKWZb6KXZr467YPS5ob1w==", + "dev": true, + "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" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/github-loader": { + "version": "7.3.27", + "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.3.27.tgz", + "integrity": "sha512-fFFC35qenyhjb8pfcYXKknAt0CXP5CkQYtLfJXgTXSgBjIsfAVMrqxQ/Y0ejeM19XNF/C3VWJ7rE308yOX6ywA==", + "dev": true, + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/graphql-tag-pluck": "^7.4.6", + "@graphql-tools/utils": "^9.2.1", + "@whatwg-node/fetch": "^0.8.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/graphql-file-loader": { + "version": "7.5.16", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.16.tgz", + "integrity": "sha512-lK1N3Y2I634FS12nd4bu7oAJbai3bUc28yeX+boT+C83KTO4ujGHm+6hPC8X/FRGwhKOnZBxUM7I5nvb3HiUxw==", + "dev": true, + "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" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.0.tgz", + "integrity": "sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q==", + "dev": true, + "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" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/import": { + "version": "6.7.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.17.tgz", + "integrity": "sha512-bn9SgrECXq3WIasgNP7ful/uON51wBajPXtxdY+z/ce7jLWaFE6lzwTDB/GAgiZ+jo7nb0ravlxteSAz2qZmuA==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "9.2.1", + "resolve-from": "5.0.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/json-file-loader": { + "version": "7.4.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.17.tgz", + "integrity": "sha512-KOSTP43nwjPfXgas90rLHAFgbcSep4nmiYyR9xRVz4ZAmw8VYHcKhOLTSGylCAzi7KUfyBXajoW+6Z7dQwdn3g==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "9.2.1", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/load": { + "version": "7.8.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.12.tgz", + "integrity": "sha512-JwxgNS2c6i6oIdKttcbXns/lpKiyN7c6/MkkrJ9x2QE9rXk5HOhSJxRvPmOueCuAin1542xUrcDRGBXJ7thSig==", + "dev": true, + "dependencies": { + "@graphql-tools/schema": "9.0.16", + "@graphql-tools/utils": "9.2.1", + "p-limit": "3.1.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/merge": { + "version": "8.3.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.18.tgz", + "integrity": "sha512-R8nBglvRWPAyLpZL/f3lxsY7wjnAeE0l056zHhcO/CgpvK76KYUt9oEkR05i8Hmt8DLRycBN0FiotJ0yDQWTVA==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/optimize": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.3.1.tgz", + "integrity": "sha512-5j5CZSRGWVobt4bgRRg7zhjPiSimk+/zIuColih8E8DxuFOaJ+t0qu7eZS5KXWBkjcd4BPNuhUPpNlEmHPqVRQ==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader": { + "version": "7.2.64", + "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.64.tgz", + "integrity": "sha512-W8GfzfBKiBSIEgw+/nJk6zUlF6k/jterlNoFhM27mBsbeMtWxKnm1+gEU6KA0N1PNEdq2RIa2W4AfVfVBl2GgQ==", + "dev": true, + "dependencies": { + "@graphql-tools/url-loader": "7.17.13", + "@graphql-tools/utils": "9.2.1", + "@types/js-yaml": "^4.0.0", + "@types/json-stable-stringify": "^1.0.32", + "@types/jsonwebtoken": "^9.0.0", + "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", + "isomorphic-fetch": "^3.0.0", + "js-yaml": "^4.0.0", + "json-stable-stringify": "^1.0.1", + "jsonwebtoken": "^9.0.0", + "lodash": "^4.17.20", + "scuid": "^1.1.0", + "tslib": "^2.4.0", + "yaml-ast-parser": "^0.0.43" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/graphql-request": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.1.0.tgz", + "integrity": "sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-fetch": "^3.1.5", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + }, + "peerDependencies": { + "graphql": "14 - 16" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "6.5.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.17.tgz", + "integrity": "sha512-hHPEX6ccRF3+9kfVz0A3In//Dej7QrHOLGZEokBmPDMDqn9CS7qUjpjyGzclbOX0tRBtLfuFUZ68ABSac3P1nA==", + "dev": true, + "dependencies": { + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.16.tgz", + "integrity": "sha512-kF+tbYPPf/6K2aHG3e1SWIbapDLQaqnIHVRG6ow3onkFoowwtKszvUyOASL6Krcv2x9bIMvd1UkvRf9OaoROQQ==", + "dev": true, + "dependencies": { + "@graphql-tools/merge": "8.3.18", + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "1.0.12" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/url-loader": { + "version": "7.17.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.13.tgz", + "integrity": "sha512-FEmbvw68kxeZLn4VYGAl+NuBPk09ZnxymjW07A6mCtiDayFgYfHdWeRzXn/iM5PzsEuCD73R1sExtNQ/ISiajg==", + "dev": true, + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/delegate": "^9.0.27", + "@graphql-tools/executor-graphql-ws": "^0.0.11", + "@graphql-tools/executor-http": "^0.1.7", + "@graphql-tools/executor-legacy-ws": "^0.0.9", + "@graphql-tools/utils": "^9.2.1", + "@graphql-tools/wrap": "^9.3.6", + "@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" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/wrap": { + "version": "9.3.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.3.6.tgz", + "integrity": "sha512-HtQIYoPz48bzpMYZzoeMmzIIYuVxcaUuLD7dH7GtIhwe2f4hpPDE+JLUPxpYiaXdY10l7kP9wycK+FtRfCsFlw==", + "dev": true, + "dependencies": { + "@graphql-tools/delegate": "9.0.27", + "@graphql-tools/schema": "9.0.16", + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "1.0.12" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", + "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "dev": 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" + } + }, "node_modules/@hookform/devtools": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/@hookform/devtools/-/devtools-4.3.0.tgz", @@ -3711,6 +4913,45 @@ "node": ">= 8" } }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", + "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "dev": true, + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", + "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.0", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.1", + "webcrypto-core": "^1.7.4" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/@playwright/test": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.30.0.tgz", @@ -3735,6 +4976,12 @@ "node": ">=14" } }, + "node_modules/@repeaterjs/repeater": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz", + "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==", + "dev": true + }, "node_modules/@rollup/plugin-inject": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz", @@ -6052,6 +7299,15 @@ "@testing-library/dom": ">=7.21.4" } }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -6061,6 +7317,30 @@ "node": ">=10.13.0" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, "node_modules/@types/aria-query": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", @@ -6118,6 +7398,12 @@ "@types/node": "*" } }, + "node_modules/@types/braces": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/braces/-/braces-3.0.1.tgz", + "integrity": "sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ==", + "dev": true + }, "node_modules/@types/bs58check": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", @@ -6321,18 +7607,39 @@ "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz", "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==" }, + "node_modules/@types/js-yaml": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", + "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", + "dev": true + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, + "node_modules/@types/json-stable-stringify": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz", + "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz", + "integrity": "sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/lodash": { "version": "4.14.191", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", @@ -6345,6 +7652,15 @@ "integrity": "sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==", "dev": true }, + "node_modules/@types/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-oqXqVb0ci19GtH0vOA/U2TmHTcRY9kuZl4mqUxe0QmJAlIW13kzhuK5pi1i9+ngav8FjpSb9FVS/GE00GLX1VA==", + "dev": true, + "dependencies": { + "@types/braces": "*" + } + }, "node_modules/@types/mime": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", @@ -6513,6 +7829,15 @@ "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", "dev": true }, + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/yargs": { "version": "17.0.22", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", @@ -6883,6 +8208,41 @@ "vite": "^4.1.0-beta.0" } }, + "node_modules/@whatwg-node/events": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.2.tgz", + "integrity": "sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==", + "dev": true + }, + "node_modules/@whatwg-node/fetch": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.1.tgz", + "integrity": "sha512-Fkd1qQHK2tAWxKlC85h9L86Lgbq3BzxMnHSnTsnzNZMMzn6Xi+HlN8/LJ90LxorhSqD54td+Q864LgwUaYDj1Q==", + "dev": true, + "dependencies": { + "@peculiar/webcrypto": "^1.4.0", + "@whatwg-node/node-fetch": "^0.3.0", + "busboy": "^1.6.0", + "urlpattern-polyfill": "^6.0.2", + "web-streams-polyfill": "^3.2.1" + } + }, + "node_modules/@whatwg-node/node-fetch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.0.tgz", + "integrity": "sha512-mPM8WnuHiI/3kFxDeE0SQQXAElbz4onqmm64fEGCwYEcBes2UsvIDI8HwQIqaXCH42A9ajJUPv4WsYoN/9oG6w==", + "dev": true, + "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" + }, + "peerDependencies": { + "@types/node": "^18.0.6" + } + }, "node_modules/@xobotyi/scrollbar-width": { "version": "1.9.5", "resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz", @@ -7005,6 +8365,33 @@ "string-width": "^4.1.0" } }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -7076,6 +8463,12 @@ "node": ">=10" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -7186,6 +8579,12 @@ "node": ">=0.10.0" } }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -7198,6 +8597,20 @@ "safer-buffer": "^2.1.0" } }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dev": true, + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/assert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", @@ -7254,6 +8667,18 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "node_modules/auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/autoprefixer": { "version": "10.4.13", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", @@ -7404,12 +8829,56 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "dev": true + }, "node_modules/babel-plugin-transform-react-remove-prop-types": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", "dev": true }, + "node_modules/babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "dev": true, + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/babel-preset-react-app": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", @@ -7502,6 +8971,41 @@ "node": ">=8" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/blakejs": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", @@ -7905,6 +9409,12 @@ "node": "*" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -7923,6 +9433,18 @@ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -7979,6 +9501,16 @@ "node": ">=6" } }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -8032,6 +9564,17 @@ } ] }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -8053,6 +9596,50 @@ "node": ">=0.8.0" } }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "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" + } + }, + "node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "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" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -8151,6 +9738,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-table3": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", @@ -8166,6 +9777,60 @@ "@colors/colors": "1.5.0" } }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -8177,6 +9842,15 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -8268,6 +9942,15 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -8418,6 +10101,17 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -8507,6 +10201,22 @@ "node": ">=10" } }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", + "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", + "dev": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" + } + }, "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -8875,6 +10585,18 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, + "node_modules/dataloader": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", + "dev": true + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -8975,6 +10697,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -9051,6 +10785,15 @@ "node": ">= 0.8" } }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -9115,6 +10858,15 @@ "detect-port": "bin/detect-port.js" } }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.4.2", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.2.tgz", @@ -9247,6 +10999,16 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/dotenv": { "version": "16.0.3", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", @@ -9265,12 +11027,30 @@ "node": ">=12" } }, + "node_modules/dset": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz", + "integrity": "sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -10335,6 +12115,20 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -10376,6 +12170,12 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -10425,11 +12225,29 @@ "resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz", "integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==" }, + "node_modules/fast-querystring": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.1.tgz", + "integrity": "sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==", + "dev": true, + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, "node_modules/fast-shallow-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz", "integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==" }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -10462,6 +12280,27 @@ "bser": "2.1.1" } }, + "node_modules/fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "dev": true, + "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" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "dev": true + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -10482,6 +12321,30 @@ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==" }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -11263,6 +13126,198 @@ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, + "node_modules/graphql-codegen-plugin-typescript-swr": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/graphql-codegen-plugin-typescript-swr/-/graphql-codegen-plugin-typescript-swr-0.8.3.tgz", + "integrity": "sha512-6PH4z34oZMgvDkYIiBFHetZEgnkNrzUQ+F0pivGjOpsjgRZSESFXYa2h9kPXuCCAQbwn4Sp6yMuWUnlnm55Gaw==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.3.1", + "@graphql-codegen/visitor-plugin-common": "^2.5.1", + "@types/micromatch": "^4.0.1", + "graphql-request": "^4.0.0", + "micromatch": "^4.0.4", + "pascal-case": "^3.1.2", + "swr": "^1.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "graphql": "<17.0.0" + } + }, + "node_modules/graphql-codegen-plugin-typescript-swr/node_modules/@graphql-codegen/plugin-helpers": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz", + "integrity": "sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==", + "dev": true, + "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" + }, + "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" + } + }, + "node_modules/graphql-codegen-plugin-typescript-swr/node_modules/@graphql-codegen/plugin-helpers/node_modules/@graphql-tools/utils": { + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz", + "integrity": "sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/graphql-codegen-plugin-typescript-swr/node_modules/@graphql-codegen/plugin-helpers/node_modules/change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "dev": true, + "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" + } + }, + "node_modules/graphql-codegen-plugin-typescript-swr/node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "2.13.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz", + "integrity": "sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==", + "dev": true, + "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" + }, + "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" + } + }, + "node_modules/graphql-codegen-plugin-typescript-swr/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "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" + }, + "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" + } + }, + "node_modules/graphql-codegen-plugin-typescript-swr/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/graphql-config": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.4.1.tgz", + "integrity": "sha512-B8wlvfBHZ5WnI4IiuQZRqql6s+CKz7S+xpUeTb28Z8nRBi8tH9ChEBgT5FnTyE05PUhHlrS2jK9ICJ4YBl9OtQ==", + "dev": true, + "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", + "minimatch": "4.2.1", + "string-env-interpolation": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "cosmiconfig-toml-loader": "^1.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "cosmiconfig-toml-loader": { + "optional": true + }, + "cosmiconfig-typescript-loader": { + "optional": true + } + } + }, + "node_modules/graphql-config/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/graphql-config/node_modules/cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/graphql-config/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/graphql-config/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/graphql-request": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-4.3.0.tgz", @@ -11289,6 +13344,33 @@ "node": ">= 6" } }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + }, + "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" + } + }, + "node_modules/graphql-ws": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.11.3.tgz", + "integrity": "sha512-fU8zwSgAX2noXAsuFiCZ8BtXeXZOzXyK5u1LloCdacsVth4skdBMPO74EG51lBoWSIZ8beUocdpV8+cQHBODnQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": ">=0.11 <=16" + } + }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", @@ -11450,6 +13532,16 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/hey-listen": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", @@ -11556,6 +13648,20 @@ "node": ">= 0.8" } }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -11673,6 +13779,18 @@ "node": ">=4" } }, + "node_modules/import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "dev": true, + "engines": { + "node": ">=12.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", @@ -11730,6 +13848,93 @@ "fast-loops": "^1.1.3" } }, + "node_modules/inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/internal-slot": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", @@ -11753,6 +13958,15 @@ "node": ">= 0.10" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -11768,6 +13982,19 @@ "node": ">= 0.10" } }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", @@ -11961,6 +14188,24 @@ "node": ">=0.10.0" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -12065,6 +14310,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -12147,6 +14404,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -12181,6 +14471,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -12214,6 +14513,16 @@ "node": ">=0.10.0" } }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, "node_modules/isomorphic-timers-promises": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz", @@ -12233,6 +14542,15 @@ "unfetch": "^4.2.0" } }, + "node_modules/isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "dev": true, + "peerDependencies": { + "ws": "*" + } + }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -13150,12 +15468,37 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/json-stable-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "dev": true, + "dependencies": { + "jsonify": "^0.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json-to-pretty-yaml": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", + "integrity": "sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==", + "dev": true, + "dependencies": { + "remedial": "^1.0.7", + "remove-trailing-spaces": "^1.0.6" + }, + "engines": { + "node": ">= 0.2.0" + } + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -13179,6 +15522,64 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "dev": true, + "dependencies": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonwebtoken/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -13192,6 +15593,27 @@ "node": ">=4.0" } }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/keyboardjs": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/keyboardjs/-/keyboardjs-2.7.0.tgz", @@ -13310,6 +15732,42 @@ "uc.micro": "^1.0.1" } }, + "node_modules/listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", + "dev": true, + "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" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/lit": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", @@ -13387,6 +15845,12 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, "node_modules/lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", @@ -13404,6 +15868,121 @@ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -13415,6 +15994,24 @@ "loose-envify": "cli.js" } }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lower-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -13468,6 +16065,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "node_modules/make-event-props": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.4.2.tgz", @@ -13486,6 +16089,15 @@ "tmpl": "1.0.5" } }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/map-obj": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", @@ -13694,6 +16306,23 @@ "node": ">= 8" } }, + "node_modules/meros": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.1.tgz", + "integrity": "sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==", + "dev": true, + "engines": { + "node": ">=13" + }, + "peerDependencies": { + "@types/node": ">=13" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -13898,6 +16527,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, "node_modules/nano-css": { "version": "5.3.5", "resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.3.5.tgz", @@ -13956,6 +16591,16 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node_modules/node-dir": { "version": "0.1.17", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", @@ -14180,6 +16825,12 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -14413,12 +17064,96 @@ "node": ">= 0.8.0" } }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -14479,6 +17214,16 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -14503,6 +17248,20 @@ "safe-buffer": "^5.1.1" } }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -14529,12 +17288,32 @@ "node": ">= 0.8" } }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -14567,6 +17346,27 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -15826,6 +18626,15 @@ "node": ">=0.4.0" } }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "dependencies": { + "asap": "~2.0.3" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -15984,6 +18793,24 @@ "async-limiter": "~1.0.0" } }, + "node_modules/pvtsutils": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/qrcode-generator": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", @@ -16746,6 +19573,17 @@ "jsesc": "bin/jsesc" } }, + "node_modules/relay-runtime": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", + "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0", + "invariant": "^2.2.4" + } + }, "node_modules/remark-external-links": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", @@ -16778,6 +19616,27 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remedial": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", + "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "node_modules/remove-trailing-spaces": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz", + "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==", + "dev": true + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -16796,6 +19655,12 @@ "node": ">=0.10.0" } }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -16826,6 +19691,19 @@ "node": ">=8" } }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -16836,6 +19714,12 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -16967,6 +19851,15 @@ "@babel/runtime": "^7.1.2" } }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -17081,6 +19974,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/scuid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz", + "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==", + "dev": true + }, "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -17134,6 +20033,17 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "node_modules/serve-favicon": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", @@ -17248,6 +20158,15 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -17305,6 +20224,12 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "node_modules/signedsource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==", + "dev": true + }, "node_modules/simple-update-notifier": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", @@ -17373,6 +20298,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -17565,6 +20500,15 @@ "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, + "node_modules/sponge-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -17705,6 +20649,15 @@ "xtend": "^4.0.2" } }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -17713,6 +20666,12 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-env-interpolation": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz", + "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==", + "dev": true + }, "node_modules/string-natural-compare": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", @@ -18103,6 +21062,15 @@ "node": ">= 10" } }, + "node_modules/swap-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/swr": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/swr/-/swr-1.3.0.tgz", @@ -18338,6 +21306,12 @@ "node": ">=10" } }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, "node_modules/timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", @@ -18362,6 +21336,27 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "dev": true }, + "node_modules/title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -18430,6 +21425,76 @@ "resolved": "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz", "integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==" }, + "node_modules/ts-log": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", + "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==", + "dev": true + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "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" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/tsconfck": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.0.2.tgz", @@ -18658,6 +21723,25 @@ "node": ">=4.2.0" } }, + "node_modules/ua-parser-js": { + "version": "0.7.33", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", + "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -18692,6 +21776,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/unfetch": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", @@ -18798,6 +21891,30 @@ "node": ">= 10.0.0" } }, + "node_modules/unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", + "dev": true, + "dependencies": { + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unixify/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -18865,6 +21982,24 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -18899,6 +22034,15 @@ "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "dev": true }, + "node_modules/urlpattern-polyfill": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-6.0.2.tgz", + "integrity": "sha512-5vZjFlH9ofROmuWmXM9yj2wljYKgWstGwe8YTyiqM7hVum/g9LyCizPZtb3UqsuppVwety9QJmfc42VggLpTgg==", + "dev": true, + "dependencies": { + "braces": "^3.0.2" + } + }, "node_modules/use-deep-compare-effect": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/use-deep-compare-effect/-/use-deep-compare-effect-1.8.1.tgz", @@ -18999,6 +22143,12 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "node_modules/v8-to-istanbul": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", @@ -19023,6 +22173,15 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -19331,6 +22490,15 @@ "node": ">=10.13.0" } }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, "node_modules/web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", @@ -19340,6 +22508,19 @@ "node": ">= 8" } }, + "node_modules/webcrypto-core": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.6.tgz", + "integrity": "sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -19360,6 +22541,12 @@ "integrity": "sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==", "dev": true }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -19415,6 +22602,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, "node_modules/which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -19574,6 +22767,12 @@ "node": ">= 6" } }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true + }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -19611,6 +22810,15 @@ "fd-slicer": "~1.1.0" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -19750,6 +22958,190 @@ "@jridgewell/trace-mapping": "^0.3.9" } }, + "@ardatan/relay-compiler": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz", + "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "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" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "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-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "@ardatan/sync-fetch": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", + "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", + "dev": true, + "requires": { + "node-fetch": "^2.6.1" + } + }, "@aw-web-design/x-default-browser": { "version": "1.4.88", "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.88.tgz", @@ -21153,6 +24545,27 @@ "dev": true, "optional": true }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, "@csstools/postcss-cascade-layers": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", @@ -21426,178 +24839,879 @@ "dev": true, "optional": true }, - "@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "dev": true, + "optional": true + }, + "@eslint/eslintrc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "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" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@fal-works/esbuild-plugin-global-externals": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", + "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", + "dev": true + }, + "@floating-ui/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.1.tgz", + "integrity": "sha512-LSqwPZkK3rYfD7GKoIeExXOyYx6Q1O4iqZWwIehDNuv3Dv425FIAE8PRwtAx1imEolFTHgBEcoFHm9MDnYgPCg==" + }, + "@floating-ui/dom": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.1.tgz", + "integrity": "sha512-Rt45SmRiV8eU+xXSB9t0uMYiQ/ZWGE/jumse2o3i5RGlyvcbqOF4q+1qBnzLE2kZ5JGhq0iMkcGXUKbFe7MpTA==", + "requires": { + "@floating-ui/core": "^1.2.1" + } + }, + "@google/model-viewer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-3.0.1.tgz", + "integrity": "sha512-zelc/iyokFBEIQZCG0earetQGVRe/DCR0b+0qbThesGaVOCPhSz0SAikJ+IOyKd4iBTEyonnlzB+APbIUzE7VQ==", + "dev": true, + "requires": { + "lit": "^2.2.3", + "three": "^0.149.0" + } + }, + "@graphql-codegen/add": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/add/-/add-4.0.1.tgz", + "integrity": "sha512-A7k+9eRfrKyyNfhWEN/0eKz09R5cp4XXxUuNLQAVm/aohmVI2xdMV4lM02rTlM6Pyou3cU/v0iZnhgo6IRpqeg==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "tslib": "~2.5.0" + } + }, + "@graphql-codegen/cli": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-3.1.0.tgz", + "integrity": "sha512-MUYyHkh/n8XVuONk7AYvJV/ObZDlPGwyevl8ch21jNFNj2M5PM39WViHKmIYwVw2n4fDmoh3BNdaeHQs1wb4HA==", + "dev": true, + "requires": { + "@babel/generator": "^7.18.13", + "@babel/template": "^7.18.10", + "@babel/types": "^7.18.13", + "@graphql-codegen/core": "^3.1.0", + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-tools/apollo-engine-loader": "^7.3.6", + "@graphql-tools/code-file-loader": "^7.3.17", + "@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.8.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" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.0.tgz", + "integrity": "sha512-dwqOPg5trmrre9+v8SUo2q/hAwyKoVfu8OC1xPHKJGNdxAvPl4sKxL4vBnh3bQz/ZvvGAFeA5H3ou2kcOY8sQQ==", + "dev": true, + "requires": { + "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" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "@graphql-codegen/client-preset": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/client-preset/-/client-preset-2.1.0.tgz", + "integrity": "sha512-mt5CyPwZmOUP+ifC56xMjeEyfywu0P6HSWbhWPn1Jbv7n3TMILXMDfgOAufnOmrU1Ian8wu72I9A5IMRGqmW1w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7", + "@graphql-codegen/add": "^4.0.1", + "@graphql-codegen/gql-tag-operations": "2.0.1", + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/typed-document-node": "^3.0.1", + "@graphql-codegen/typescript": "^3.0.1", + "@graphql-codegen/typescript-operations": "^3.0.1", + "@graphql-codegen/visitor-plugin-common": "^3.0.1", + "@graphql-tools/documents": "^0.1.0", + "@graphql-tools/utils": "^9.0.0", + "@graphql-typed-document-node/core": "3.1.1", + "tslib": "~2.5.0" + } + }, + "@graphql-codegen/core": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-3.1.0.tgz", + "integrity": "sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-tools/schema": "^9.0.0", + "@graphql-tools/utils": "^9.1.1", + "tslib": "~2.5.0" + } + }, + "@graphql-codegen/gql-tag-operations": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-2.0.1.tgz", + "integrity": "sha512-BGJRfRYJo566x3nPoEwiU0KkhbBAB2i4UsUg2wAlzC+z8uoL1JtCI2besa7RoWxjvEpmjrn23O5CnUzD933JLg==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/visitor-plugin-common": "3.0.1", + "@graphql-tools/utils": "^9.0.0", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + } + }, + "@graphql-codegen/introspection": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/introspection/-/introspection-3.0.1.tgz", + "integrity": "sha512-D6vJQTEL/np4EmeUHm5spLK59cr+AMXEoLRoTI+dagFzlHYDTfXZH6F7uhKaakxcj0SAQhIWKvGMggotUdEtyg==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/visitor-plugin-common": "^3.0.1", + "tslib": "~2.5.0" + } + }, + "@graphql-codegen/plugin-helpers": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.1.0.tgz", + "integrity": "sha512-xvSHJb9OGb5CODIls0AI1rCenLz+FuiaNPCsfHMCNsLDjOZK2u0jAQ9zUBdc/Wb+21YXZujBCc0Vm1QX+Zz0nw==", + "dev": true, + "requires": { + "@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.5.0" + } + }, + "@graphql-codegen/schema-ast": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-3.0.1.tgz", + "integrity": "sha512-rTKTi4XiW4QFZnrEqetpiYEWVsOFNoiR/v3rY9mFSttXFbIwNXPme32EspTiGWmEEdHY8UuTDtZN3vEcs/31zw==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-tools/utils": "^9.0.0", + "tslib": "~2.5.0" + } + }, + "@graphql-codegen/typed-document-node": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typed-document-node/-/typed-document-node-3.0.1.tgz", + "integrity": "sha512-2plPBbAJZtR72BU6n07N3nIJYlwnCWbFNoe++MQ33S2ML4KwpCiflGEJnTpiwOEhCklQLWg1FEUdEOYS2iluqw==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/visitor-plugin-common": "3.0.1", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "tslib": "~2.5.0" + } + }, + "@graphql-codegen/typescript": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-3.0.1.tgz", + "integrity": "sha512-HvozJg7eHqywmYvXa7+nmjw+v3+f8ilFv9VbRvmjhj/zBw3VKGT2n/85ZhVyuWjY2KrDLzl6BqeXttWsW5Wo4w==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/schema-ast": "^3.0.1", + "@graphql-codegen/visitor-plugin-common": "3.0.1", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + } + }, + "@graphql-codegen/typescript-graphql-request": { + "version": "4.5.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-graphql-request/-/typescript-graphql-request-4.5.8.tgz", + "integrity": "sha512-XsuAA35Ou03LsklNgnIWXZ5HOHsJ5w1dBuDKtvqM9rD0cAI8x0f4TY0n6O1EraSBSvyHLP3npb1lOTPZzG2TjA==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^2.7.2", + "@graphql-codegen/visitor-plugin-common": "2.13.1", + "auto-bind": "~4.0.0", + "tslib": "~2.4.0" + }, + "dependencies": { + "@graphql-codegen/plugin-helpers": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz", + "integrity": "sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==", + "dev": true, + "requires": { + "@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/visitor-plugin-common": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz", + "integrity": "sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg==", + "dev": true, + "requires": { + "@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-tools/utils": { + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz", + "integrity": "sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "dev": true, + "requires": { + "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" + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + } + } + }, + "@graphql-codegen/typescript-operations": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-3.0.1.tgz", + "integrity": "sha512-Td1d483cQr7XJj/zXrbqVUEi2QK56DT7EToFheZrBFArIQCUEGK+Xgw6GhEmZaTwWYODxavzy1jmTTJC2fEuTw==", "dev": true, - "optional": true + "requires": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@graphql-codegen/typescript": "^3.0.1", + "@graphql-codegen/visitor-plugin-common": "3.0.1", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + } }, - "@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "@graphql-codegen/visitor-plugin-common": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.0.1.tgz", + "integrity": "sha512-Qek+Ywy094Km7Vc1TzKBN9ICvtYwPdqZUliPO77urMSveP+2+G2O9Tjx546dW4A1O6rhEfexbenc2DqTAe7iLQ==", "dev": true, - "optional": true + "requires": { + "@graphql-codegen/plugin-helpers": "^4.1.0", + "@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.5.0" + } }, - "@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "@graphql-tools/apollo-engine-loader": { + "version": "7.3.26", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.26.tgz", + "integrity": "sha512-h1vfhdJFjnCYn9b5EY1Z91JTF0KB3hHVJNQIsiUV2mpQXZdeOXQoaWeYEKaiI5R6kwBw5PP9B0fv3jfUIG8LyQ==", "dev": true, - "optional": true + "requires": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/utils": "^9.2.1", + "@whatwg-node/fetch": "^0.8.0", + "tslib": "^2.4.0" + } }, - "@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "@graphql-tools/batch-execute": { + "version": "8.5.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.18.tgz", + "integrity": "sha512-mNv5bpZMLLwhkmPA6+RP81A6u3KF4CSKLf3VX9hbomOkQR4db8pNs8BOvpZU54wKsUzMzdlws/2g/Dabyb2Vsg==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/utils": "9.2.1", + "dataloader": "2.2.2", + "tslib": "^2.4.0", + "value-or-promise": "1.0.12" + } }, - "@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "@graphql-tools/code-file-loader": { + "version": "7.3.21", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.21.tgz", + "integrity": "sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA==", "dev": true, - "optional": true + "requires": { + "@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" + } }, - "@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "@graphql-tools/delegate": { + "version": "9.0.27", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.27.tgz", + "integrity": "sha512-goYewiPls/RDXiRTl1S2tRPlsyDQCxlDWqd0uEIzQZ6aWSyiutfwQnTzdbZPXK0qOblEVMIqFhSGrB6fp0OkBA==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/batch-execute": "8.5.18", + "@graphql-tools/executor": "0.0.14", + "@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" + } }, - "@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "@graphql-tools/documents": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/documents/-/documents-0.1.0.tgz", + "integrity": "sha512-1WQeovHv5S1M3xMzQxbSrG3yl6QOnsq2JUBnlg5/0aMM5R4GNMx6Ms+ROByez/dnuA81kstRuSK+2qpe+GaRIw==", "dev": true, - "optional": true + "requires": { + "lodash.sortby": "^4.7.0", + "tslib": "^2.4.0" + } }, - "@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "@graphql-tools/executor": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.14.tgz", + "integrity": "sha512-YiBbN9NT0FgqPJ35+Eg0ty1s5scOZTgiPf+6hLVJBd5zHEURwojEMCTKJ9e0RNZHETp2lN+YaTFGTSoRk0t4Sw==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/utils": "9.2.1", + "@graphql-typed-document-node/core": "3.1.1", + "@repeaterjs/repeater": "3.0.4", + "tslib": "^2.4.0", + "value-or-promise": "1.0.12" + } }, - "@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "@graphql-tools/executor-graphql-ws": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.11.tgz", + "integrity": "sha512-muRj6j897ks2iKqe3HchWFFzd+jFInSRuLPvHJ7e4WPrejFvaZx3BQ9gndfJvVkfYUZIFm13stCGXaJJTbVM0Q==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/utils": "9.2.1", + "@repeaterjs/repeater": "3.0.4", + "@types/ws": "^8.0.0", + "graphql-ws": "5.11.3", + "isomorphic-ws": "5.0.0", + "tslib": "^2.4.0", + "ws": "8.12.1" + } }, - "@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "@graphql-tools/executor-http": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz", + "integrity": "sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==", "dev": true, - "optional": true + "requires": { + "@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" + }, + "dependencies": { + "extract-files": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", + "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", + "dev": true + } + } }, - "@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "@graphql-tools/executor-legacy-ws": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.9.tgz", + "integrity": "sha512-L7oDv7R5yoXzMH+KLKDB2WHVijfVW4dB2H+Ae1RdW3MFvwbYjhnIB6QzHqKEqksjp/FndtxZkbuTIuAOsYGTYw==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/utils": "9.2.1", + "@types/ws": "^8.0.0", + "isomorphic-ws": "5.0.0", + "tslib": "^2.4.0", + "ws": "8.12.1" + } }, - "@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "@graphql-tools/git-loader": { + "version": "7.2.20", + "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.2.20.tgz", + "integrity": "sha512-D/3uwTzlXxG50HI8BEixqirT4xiUp6AesTdfotRXAs2d4CT9wC6yuIWOHkSBqgI1cwKWZb6KXZr467YPS5ob1w==", "dev": true, - "optional": true + "requires": { + "@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" + } }, - "@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "@graphql-tools/github-loader": { + "version": "7.3.27", + "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.3.27.tgz", + "integrity": "sha512-fFFC35qenyhjb8pfcYXKknAt0CXP5CkQYtLfJXgTXSgBjIsfAVMrqxQ/Y0ejeM19XNF/C3VWJ7rE308yOX6ywA==", "dev": true, - "optional": true + "requires": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/graphql-tag-pluck": "^7.4.6", + "@graphql-tools/utils": "^9.2.1", + "@whatwg-node/fetch": "^0.8.0", + "tslib": "^2.4.0" + } }, - "@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "@graphql-tools/graphql-file-loader": { + "version": "7.5.16", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.16.tgz", + "integrity": "sha512-lK1N3Y2I634FS12nd4bu7oAJbai3bUc28yeX+boT+C83KTO4ujGHm+6hPC8X/FRGwhKOnZBxUM7I5nvb3HiUxw==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/import": "6.7.17", + "@graphql-tools/utils": "9.2.1", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + } }, - "@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "@graphql-tools/graphql-tag-pluck": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.0.tgz", + "integrity": "sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q==", "dev": true, - "optional": true + "requires": { + "@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" + } }, - "@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "@graphql-tools/import": { + "version": "6.7.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.17.tgz", + "integrity": "sha512-bn9SgrECXq3WIasgNP7ful/uON51wBajPXtxdY+z/ce7jLWaFE6lzwTDB/GAgiZ+jo7nb0ravlxteSAz2qZmuA==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/utils": "9.2.1", + "resolve-from": "5.0.0", + "tslib": "^2.4.0" + } }, - "@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "@graphql-tools/json-file-loader": { + "version": "7.4.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.17.tgz", + "integrity": "sha512-KOSTP43nwjPfXgas90rLHAFgbcSep4nmiYyR9xRVz4ZAmw8VYHcKhOLTSGylCAzi7KUfyBXajoW+6Z7dQwdn3g==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/utils": "9.2.1", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + } }, - "@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "@graphql-tools/load": { + "version": "7.8.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.12.tgz", + "integrity": "sha512-JwxgNS2c6i6oIdKttcbXns/lpKiyN7c6/MkkrJ9x2QE9rXk5HOhSJxRvPmOueCuAin1542xUrcDRGBXJ7thSig==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/schema": "9.0.16", + "@graphql-tools/utils": "9.2.1", + "p-limit": "3.1.0", + "tslib": "^2.4.0" + } }, - "@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "@graphql-tools/merge": { + "version": "8.3.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.18.tgz", + "integrity": "sha512-R8nBglvRWPAyLpZL/f3lxsY7wjnAeE0l056zHhcO/CgpvK76KYUt9oEkR05i8Hmt8DLRycBN0FiotJ0yDQWTVA==", "dev": true, - "optional": true + "requires": { + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0" + } }, - "@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "@graphql-tools/optimize": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.3.1.tgz", + "integrity": "sha512-5j5CZSRGWVobt4bgRRg7zhjPiSimk+/zIuColih8E8DxuFOaJ+t0qu7eZS5KXWBkjcd4BPNuhUPpNlEmHPqVRQ==", "dev": true, - "optional": true + "requires": { + "tslib": "^2.4.0" + } }, - "@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "@graphql-tools/prisma-loader": { + "version": "7.2.64", + "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.64.tgz", + "integrity": "sha512-W8GfzfBKiBSIEgw+/nJk6zUlF6k/jterlNoFhM27mBsbeMtWxKnm1+gEU6KA0N1PNEdq2RIa2W4AfVfVBl2GgQ==", "dev": true, "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "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" + "@graphql-tools/url-loader": "7.17.13", + "@graphql-tools/utils": "9.2.1", + "@types/js-yaml": "^4.0.0", + "@types/json-stable-stringify": "^1.0.32", + "@types/jsonwebtoken": "^9.0.0", + "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", + "isomorphic-fetch": "^3.0.0", + "js-yaml": "^4.0.0", + "json-stable-stringify": "^1.0.1", + "jsonwebtoken": "^9.0.0", + "lodash": "^4.17.20", + "scuid": "^1.1.0", + "tslib": "^2.4.0", + "yaml-ast-parser": "^0.0.43" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "type-fest": "^0.20.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "graphql-request": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.1.0.tgz", + "integrity": "sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw==", + "dev": true, + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-fetch": "^3.1.5", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -21607,43 +25721,91 @@ "argparse": "^2.0.1" } }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "@fal-works/esbuild-plugin-global-externals": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", - "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", - "dev": true + "@graphql-tools/relay-operation-optimizer": { + "version": "6.5.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.17.tgz", + "integrity": "sha512-hHPEX6ccRF3+9kfVz0A3In//Dej7QrHOLGZEokBmPDMDqn9CS7qUjpjyGzclbOX0tRBtLfuFUZ68ABSac3P1nA==", + "dev": true, + "requires": { + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0" + } }, - "@floating-ui/core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.1.tgz", - "integrity": "sha512-LSqwPZkK3rYfD7GKoIeExXOyYx6Q1O4iqZWwIehDNuv3Dv425FIAE8PRwtAx1imEolFTHgBEcoFHm9MDnYgPCg==" + "@graphql-tools/schema": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.16.tgz", + "integrity": "sha512-kF+tbYPPf/6K2aHG3e1SWIbapDLQaqnIHVRG6ow3onkFoowwtKszvUyOASL6Krcv2x9bIMvd1UkvRf9OaoROQQ==", + "dev": true, + "requires": { + "@graphql-tools/merge": "8.3.18", + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "1.0.12" + } }, - "@floating-ui/dom": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.1.tgz", - "integrity": "sha512-Rt45SmRiV8eU+xXSB9t0uMYiQ/ZWGE/jumse2o3i5RGlyvcbqOF4q+1qBnzLE2kZ5JGhq0iMkcGXUKbFe7MpTA==", + "@graphql-tools/url-loader": { + "version": "7.17.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.17.13.tgz", + "integrity": "sha512-FEmbvw68kxeZLn4VYGAl+NuBPk09ZnxymjW07A6mCtiDayFgYfHdWeRzXn/iM5PzsEuCD73R1sExtNQ/ISiajg==", + "dev": true, "requires": { - "@floating-ui/core": "^1.2.1" + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/delegate": "^9.0.27", + "@graphql-tools/executor-graphql-ws": "^0.0.11", + "@graphql-tools/executor-http": "^0.1.7", + "@graphql-tools/executor-legacy-ws": "^0.0.9", + "@graphql-tools/utils": "^9.2.1", + "@graphql-tools/wrap": "^9.3.6", + "@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" } }, - "@google/model-viewer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-3.0.1.tgz", - "integrity": "sha512-zelc/iyokFBEIQZCG0earetQGVRe/DCR0b+0qbThesGaVOCPhSz0SAikJ+IOyKd4iBTEyonnlzB+APbIUzE7VQ==", + "@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", "dev": true, "requires": { - "lit": "^2.2.3", - "three": "^0.149.0" + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + } + }, + "@graphql-tools/wrap": { + "version": "9.3.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.3.6.tgz", + "integrity": "sha512-HtQIYoPz48bzpMYZzoeMmzIIYuVxcaUuLD7dH7GtIhwe2f4hpPDE+JLUPxpYiaXdY10l7kP9wycK+FtRfCsFlw==", + "dev": true, + "requires": { + "@graphql-tools/delegate": "9.0.27", + "@graphql-tools/schema": "9.0.16", + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "1.0.12" } }, + "@graphql-typed-document-node/core": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", + "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "dev": true, + "requires": {} + }, "@hookform/devtools": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/@hookform/devtools/-/devtools-4.3.0.tgz", @@ -22096,6 +26258,39 @@ "fastq": "^1.6.0" } }, + "@peculiar/asn1-schema": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", + "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "dev": true, + "requires": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dev": true, + "requires": { + "tslib": "^2.0.0" + } + }, + "@peculiar/webcrypto": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", + "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.3.0", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.1", + "webcrypto-core": "^1.7.4" + } + }, "@playwright/test": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.30.0.tgz", @@ -22111,6 +26306,12 @@ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.3.2.tgz", "integrity": "sha512-t54ONhl/h75X94SWsHGQ4G/ZrCEguKSRQr7DrjTciJXW0YU1QhlwYeycvK5JgkzlxmvrK7wq1NB/PLtHxoiDcA==" }, + "@repeaterjs/repeater": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz", + "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==", + "dev": true + }, "@rollup/plugin-inject": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz", @@ -23746,12 +27947,42 @@ "dev": true, "requires": {} }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, "@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, "@types/aria-query": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", @@ -23809,6 +28040,12 @@ "@types/node": "*" } }, + "@types/braces": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/braces/-/braces-3.0.1.tgz", + "integrity": "sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ==", + "dev": true + }, "@types/bs58check": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", @@ -24005,18 +28242,39 @@ "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz", "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==" }, + "@types/js-yaml": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", + "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", + "dev": true + }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, + "@types/json-stable-stringify": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz", + "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw==", + "dev": true + }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "@types/jsonwebtoken": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz", + "integrity": "sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/lodash": { "version": "4.14.191", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", @@ -24029,6 +28287,15 @@ "integrity": "sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==", "dev": true }, + "@types/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-oqXqVb0ci19GtH0vOA/U2TmHTcRY9kuZl4mqUxe0QmJAlIW13kzhuK5pi1i9+ngav8FjpSb9FVS/GE00GLX1VA==", + "dev": true, + "requires": { + "@types/braces": "*" + } + }, "@types/mime": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", @@ -24196,6 +28463,15 @@ "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", "dev": true }, + "@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/yargs": { "version": "17.0.22", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", @@ -24431,6 +28707,38 @@ "react-refresh": "^0.14.0" } }, + "@whatwg-node/events": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.2.tgz", + "integrity": "sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==", + "dev": true + }, + "@whatwg-node/fetch": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.1.tgz", + "integrity": "sha512-Fkd1qQHK2tAWxKlC85h9L86Lgbq3BzxMnHSnTsnzNZMMzn6Xi+HlN8/LJ90LxorhSqD54td+Q864LgwUaYDj1Q==", + "dev": true, + "requires": { + "@peculiar/webcrypto": "^1.4.0", + "@whatwg-node/node-fetch": "^0.3.0", + "busboy": "^1.6.0", + "urlpattern-polyfill": "^6.0.2", + "web-streams-polyfill": "^3.2.1" + } + }, + "@whatwg-node/node-fetch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.0.tgz", + "integrity": "sha512-mPM8WnuHiI/3kFxDeE0SQQXAElbz4onqmm64fEGCwYEcBes2UsvIDI8HwQIqaXCH42A9ajJUPv4WsYoN/9oG6w==", + "dev": true, + "requires": { + "@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" + } + }, "@xobotyi/scrollbar-width": { "version": "1.9.5", "resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz", @@ -24520,6 +28828,23 @@ "string-width": "^4.1.0" } }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -24581,6 +28906,12 @@ "readable-stream": "^3.6.0" } }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -24667,6 +28998,12 @@ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, "asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -24679,6 +29016,17 @@ "safer-buffer": "^2.1.0" } }, + "asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dev": true, + "requires": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + } + }, "assert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", @@ -24729,6 +29077,12 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "dev": true + }, "autoprefixer": { "version": "10.4.13", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", @@ -24833,12 +29187,53 @@ "@babel/helper-define-polyfill-provider": "^0.3.3" } }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "dev": true + }, "babel-plugin-transform-react-remove-prop-types": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", "dev": true }, + "babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "dev": true, + "requires": { + "@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-react-app": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", @@ -24905,6 +29300,29 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, "blakejs": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", @@ -25233,6 +29651,12 @@ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -25251,6 +29675,15 @@ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "requires": { + "streamsearch": "^1.1.0" + } + }, "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -25292,6 +29725,16 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -25326,6 +29769,17 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001452.tgz", "integrity": "sha512-Lkp0vFjMkBB3GTpLR8zk4NwW5EdRdnitwYJHDOOKIU85x4ckYCPQ+9WlVvSVClHxVReefkUMtWZH2l9KGlD51w==" }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -25343,6 +29797,50 @@ } } }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "requires": { + "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" + } + }, + "change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "requires": { + "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" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -25408,6 +29906,21 @@ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true + }, "cli-table3": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", @@ -25418,6 +29931,44 @@ "string-width": "^4.2.0" } }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -25429,6 +29980,12 @@ "wrap-ansi": "^7.0.0" } }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -25504,6 +30061,12 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true + }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -25646,6 +30209,17 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -25719,6 +30293,13 @@ "yaml": "^1.10.0" } }, + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", + "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", + "dev": true, + "requires": {} + }, "create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -25988,6 +30569,18 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, + "dataloader": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", + "dev": true + }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -26061,6 +30654,15 @@ "untildify": "^4.0.0" } }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -26116,6 +30718,12 @@ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, "dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -26163,6 +30771,12 @@ "debug": "4" } }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, "diff-sequences": { "version": "29.4.2", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.2.tgz", @@ -26262,6 +30876,16 @@ "domhandler": "^4.2.0" } }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "dotenv": { "version": "16.0.3", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", @@ -26274,12 +30898,27 @@ "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", "dev": true }, + "dset": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz", + "integrity": "sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==", + "dev": true + }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -27101,6 +31740,17 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -27135,6 +31785,12 @@ } } }, + "fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -27180,11 +31836,29 @@ "resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz", "integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==" }, + "fast-querystring": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.1.tgz", + "integrity": "sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==", + "dev": true, + "requires": { + "fast-decode-uri-component": "^1.0.1" + } + }, "fast-shallow-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz", "integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==" }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "requires": { + "punycode": "^1.3.2" + } + }, "fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -27214,6 +31888,27 @@ "bser": "2.1.1" } }, + "fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "dev": true, + "requires": { + "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" + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "dev": true + }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -27234,6 +31929,23 @@ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==" }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + } + } + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -27829,6 +32541,163 @@ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" }, + "graphql-codegen-plugin-typescript-swr": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/graphql-codegen-plugin-typescript-swr/-/graphql-codegen-plugin-typescript-swr-0.8.3.tgz", + "integrity": "sha512-6PH4z34oZMgvDkYIiBFHetZEgnkNrzUQ+F0pivGjOpsjgRZSESFXYa2h9kPXuCCAQbwn4Sp6yMuWUnlnm55Gaw==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^2.3.1", + "@graphql-codegen/visitor-plugin-common": "^2.5.1", + "@types/micromatch": "^4.0.1", + "graphql-request": "^4.0.0", + "micromatch": "^4.0.4", + "pascal-case": "^3.1.2", + "swr": "^1.0.0", + "tslib": "^2.2.0" + }, + "dependencies": { + "@graphql-codegen/plugin-helpers": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz", + "integrity": "sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz", + "integrity": "sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "dev": true, + "requires": { + "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" + } + } + } + }, + "@graphql-codegen/visitor-plugin-common": { + "version": "2.13.8", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz", + "integrity": "sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "requires": { + "@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" + } + } + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + } + } + }, + "graphql-config": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.4.1.tgz", + "integrity": "sha512-B8wlvfBHZ5WnI4IiuQZRqql6s+CKz7S+xpUeTb28Z8nRBi8tH9ChEBgT5FnTyE05PUhHlrS2jK9ICJ4YBl9OtQ==", + "dev": true, + "requires": { + "@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", + "minimatch": "4.2.1", + "string-env-interpolation": "1.0.1", + "tslib": "^2.4.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, "graphql-request": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-4.3.0.tgz", @@ -27851,6 +32720,22 @@ } } }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "graphql-ws": { + "version": "5.11.3", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.11.3.tgz", + "integrity": "sha512-fU8zwSgAX2noXAsuFiCZ8BtXeXZOzXyK5u1LloCdacsVth4skdBMPO74EG51lBoWSIZ8beUocdpV8+cQHBODnQ==", + "dev": true, + "requires": {} + }, "gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", @@ -27961,6 +32846,16 @@ "minimalistic-assert": "^1.0.1" } }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "requires": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, "hey-listen": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", @@ -28047,6 +32942,17 @@ "toidentifier": "1.0.1" } }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -28122,6 +33028,12 @@ } } }, + "import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "dev": true + }, "import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", @@ -28170,6 +33082,74 @@ "fast-loops": "^1.1.3" } }, + "inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "internal-slot": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", @@ -28187,6 +33167,15 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, "ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -28199,6 +33188,16 @@ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, "is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", @@ -28323,6 +33322,21 @@ "is-extglob": "^2.1.1" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, "is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -28388,6 +33402,15 @@ "has-tostringtag": "^1.0.0" } }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, "is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -28440,6 +33463,30 @@ "has-tostringtag": "^1.0.0" } }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, "is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -28465,6 +33512,12 @@ "get-intrinsic": "^1.1.1" } }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -28492,6 +33545,16 @@ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dev": true, + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, "isomorphic-timers-promises": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz", @@ -28508,6 +33571,13 @@ "unfetch": "^4.2.0" } }, + "isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "dev": true, + "requires": {} + }, "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -29191,12 +34261,31 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "json-stable-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "dev": true, + "requires": { + "jsonify": "^0.0.1" + } + }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "json-to-pretty-yaml": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", + "integrity": "sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==", + "dev": true, + "requires": { + "remedial": "^1.0.7", + "remove-trailing-spaces": "^1.0.6" + } + }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -29212,6 +34301,50 @@ "universalify": "^2.0.0" } }, + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true + }, + "jsonwebtoken": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "dev": true, + "requires": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -29222,6 +34355,27 @@ "object.assign": "^4.1.3" } }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "keyboardjs": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/keyboardjs/-/keyboardjs-2.7.0.tgz", @@ -29322,6 +34476,33 @@ "uc.micro": "^1.0.1" } }, + "listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, "lit": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", @@ -29391,6 +34572,12 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, "lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", @@ -29408,6 +34595,86 @@ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -29416,6 +34683,24 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lower-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -29454,6 +34739,12 @@ "semver": "^6.0.0" } }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "make-event-props": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.4.2.tgz", @@ -29469,6 +34760,12 @@ "tmpl": "1.0.5" } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, "map-obj": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", @@ -29631,6 +34928,13 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, + "meros": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.1.tgz", + "integrity": "sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==", + "dev": true, + "requires": {} + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -29785,6 +35089,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, "nano-css": { "version": "5.3.5", "resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.3.5.tgz", @@ -29830,6 +35140,16 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node-dir": { "version": "0.1.17", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", @@ -29997,6 +35317,12 @@ "boolbase": "^1.0.0" } }, + "nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -30163,12 +35489,71 @@ } } }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -30208,6 +35593,16 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -30229,6 +35624,17 @@ "safe-buffer": "^5.1.1" } }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -30246,12 +35652,32 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -30275,6 +35701,21 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -31036,6 +36477,15 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -31166,6 +36616,21 @@ } } }, + "pvtsutils": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "dev": true + }, "qrcode-generator": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", @@ -31723,6 +37188,17 @@ } } }, + "relay-runtime": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", + "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0", + "invariant": "^2.2.4" + } + }, "remark-external-links": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", @@ -31747,6 +37223,24 @@ "unist-util-visit": "^2.0.0" } }, + "remedial": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", + "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "remove-trailing-spaces": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz", + "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==", + "dev": true + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -31759,6 +37253,12 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, "resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -31780,12 +37280,28 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -31900,6 +37416,12 @@ "@babel/runtime": "^7.1.2" } }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -31970,6 +37492,12 @@ "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-6.0.2.tgz", "integrity": "sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==" }, + "scuid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz", + "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -32021,6 +37549,17 @@ } } }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "serve-favicon": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", @@ -32116,6 +37655,12 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shell-quote": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "dev": true + }, "shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -32160,6 +37705,12 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "signedsource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==", + "dev": true + }, "simple-update-notifier": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", @@ -32211,6 +37762,16 @@ } } }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -32359,6 +37920,15 @@ "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, + "sponge-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -32479,6 +38049,12 @@ "xtend": "^4.0.2" } }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -32487,6 +38063,12 @@ "safe-buffer": "~5.2.0" } }, + "string-env-interpolation": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz", + "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==", + "dev": true + }, "string-natural-compare": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", @@ -32786,6 +38368,15 @@ } } }, + "swap-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, "swr": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/swr/-/swr-1.3.0.tgz", @@ -32974,6 +38565,12 @@ "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==" }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, "timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", @@ -32995,6 +38592,24 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "dev": true }, + "title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -33048,6 +38663,47 @@ "resolved": "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz", "integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==" }, + "ts-log": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", + "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==", + "dev": true + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + } + } + }, "tsconfck": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.0.2.tgz", @@ -33217,6 +38873,12 @@ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true }, + "ua-parser-js": { + "version": "0.7.33", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", + "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==", + "dev": true + }, "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -33242,6 +38904,12 @@ "which-boxed-primitive": "^1.0.2" } }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true + }, "unfetch": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", @@ -33318,6 +38986,26 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, + "unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", + "dev": true, + "requires": { + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -33359,6 +39047,24 @@ "picocolors": "^1.0.0" } }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -33394,6 +39100,15 @@ } } }, + "urlpattern-polyfill": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-6.0.2.tgz", + "integrity": "sha512-5vZjFlH9ofROmuWmXM9yj2wljYKgWstGwe8YTyiqM7hVum/g9LyCizPZtb3UqsuppVwety9QJmfc42VggLpTgg==", + "dev": true, + "requires": { + "braces": "^3.0.2" + } + }, "use-deep-compare-effect": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/use-deep-compare-effect/-/use-deep-compare-effect-1.8.1.tgz", @@ -33468,6 +39183,12 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "v8-to-istanbul": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", @@ -33489,6 +39210,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "dev": true + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -33708,12 +39435,34 @@ "graceful-fs": "^4.1.2" } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, "web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", "dev": true }, + "webcrypto-core": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.6.tgz", + "integrity": "sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -33731,6 +39480,12 @@ "integrity": "sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==", "dev": true }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -33774,6 +39529,12 @@ "is-weakset": "^2.0.1" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, "which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -33885,6 +39646,12 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" }, + "yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -33916,6 +39683,12 @@ "fd-slicer": "~1.1.0" } }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 9fb181a65..59e6680df 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "compressorjs": "^1.1.1", "fflate": "^0.7.4", "framer-motion": "^9.0.1", - "graphql": "^16.4.0", - "graphql-request": "^4.2.0", + "graphql": "^16.6.0", + "graphql-request": "^4.3.0", "json5": "^2.2.3", "keyboardjs": "^2.7.0", "markdown-to-jsx": "^7.1.9", @@ -68,6 +68,12 @@ "@airgap/beacon-types": "^3.3.3", "@babel/preset-react": "^7.18.6", "@google/model-viewer": "^3.0.1", + "@graphql-codegen/cli": "^3.1.0", + "@graphql-codegen/client-preset": "^2.1.0", + "@graphql-codegen/introspection": "^3.0.1", + "@graphql-codegen/typed-document-node": "^3.0.1", + "@graphql-codegen/typescript-graphql-request": "^4.5.8", + "@graphql-typed-document-node/core": "^3.1.1", "@hookform/devtools": "^4.3.0", "@storybook/addon-essentials": "^7.0.0-beta.47", "@storybook/addon-interactions": "^7.0.0-beta.47", @@ -90,6 +96,7 @@ "eslint-plugin-react": "^7.32.2", "fnv1a": "^1.1.1", "fs-extra": "^11.1.0", + "graphql-codegen-plugin-typescript-swr": "^0.8.3", "husky": "^7.0.4", "libsodium-wrappers": "^0.7.11", "lodash": "^4.17.21", diff --git a/src/components/collab/CollabSwitch.jsx b/src/components/collab/CollabSwitch.tsx similarity index 56% rename from src/components/collab/CollabSwitch.jsx rename to src/components/collab/CollabSwitch.tsx index b91390426..7ff5271c6 100644 --- a/src/components/collab/CollabSwitch.jsx +++ b/src/components/collab/CollabSwitch.tsx @@ -1,39 +1,49 @@ import { Button } from '@atoms/button' -import { fetchGraphQL, getCollabsForAddress } from '@data/api' +import { apiSWR, fetchGraphQL } from '@data/api' import { CollabContractsOverview } from '@pages/collaborate/manage' import { useEffect, useState } from 'react' import collabStyles from '@components/collab/index.module.scss' import classNames from 'classnames' +import { Teia_Split_Contracts } from 'gql' +import { Loading } from '@atoms/loading' -export const CollabSwitch = ({ address, name, className }) => { - const [collabs, setCollabs] = useState([]) +export const CollabSwitch = ({ + address, + name, + className, +}: { + address: string + name: string + className?: string +}) => { + // const [collabs, setCollabs] = useState() const [selectCollab, setSelectCollab] = useState(false) - useEffect(() => { - // On boot, see what addresses the synced address can manage - fetchGraphQL(getCollabsForAddress, 'GetCollabs', { - address: address, - }).then(({ data, errors }) => { - if (data) { - // const shareholderInfo = data.shareholder.map(s => s.split_contract); - // setCollabs(shareholderInfo || []) - const managedCollabs = data.split_contracts - setCollabs(managedCollabs || []) - } - }) - }, [address]) + const { data, error } = apiSWR.useGetCollabsForAddress('collab-switch', { + address, + }) + + if (error) { + throw error + } const flexBetween = classNames( collabStyles.flex, collabStyles.flexBetween, className ) + if (!address) { + return 'Not logged in' + } + if (!data) { + return + } return ( <> {/* User has collabs available */} - {collabs.length > 0 && ( + {data.split_contracts.length > 0 && (

minting as {name} diff --git a/src/data/api.ts b/src/data/api.ts index ef6c8a9db..26aefbc31 100644 --- a/src/data/api.ts +++ b/src/data/api.ts @@ -1,50 +1,14 @@ -import { HEN_CONTRACT_FA2 } from '@constants' +// import { HEN_CONTRACT_FA2 } from '@constants' +// import axios from 'axios' import axios from 'axios' -export const BaseTokenFieldsFragment = ` -fragment baseTokenFields on tokens { - artifact_uri - display_uri - thumbnail_uri - metadata_uri +import { gql, GraphQLClient } from 'graphql-request' +import { getSdk, getSdkWithHooks } from '../gql' - artist_address - artist_profile { - name - is_split - } - description - editions - fa2_address - listings(where: {status: {_eq: "active"}}, order_by: {price: asc}) { - amount - amount_left - contract_address - price - status - type - } - mime_type - minted_at - metadata_status - name - price - - royalties - royalties_total - - royalty_receivers { - receiver_address - royalties - } - teia_meta { - accessibility - content_rating - is_signed - preview_uri - } - token_id -} -` +const client = new GraphQLClient(import.meta.env.VITE_TEIA_GRAPHQL_API) +const clientTZP = new GraphQLClient(import.meta.env.VITE_TZPROFILES_GRAPHQL_API) +export const api = getSdk(client) +export const apiTzp = getSdk(clientTZP) +export const apiSWR = getSdkWithHooks(client) export async function fetchGraphQL( operationsDoc: string, @@ -54,7 +18,9 @@ export async function fetchGraphQL( const result = await fetch(import.meta.env.VITE_TEIA_GRAPHQL_API, { method: 'POST', body: JSON.stringify({ - query: operationsDoc, + query: gql` + ${operationsDoc} + `, variables, operationName, }), @@ -63,190 +29,54 @@ export async function fetchGraphQL( return await result.json() } -export const getCollabsForAddress = `query GetCollabs($address: String!) { - split_contracts: teia_split_contracts(where: {_or: [{administrator_address: {_eq: $address}}, {shareholders: {shareholder_address: {_eq: $address}}}]}) { - contract_address - contract_profile { +export const getNameForAddress = gql` + query GetNameForAddress($address: String!) { + teia_users(where: { user_address: { _eq: $address } }) { name - metadata { - data - } - } - administrator_address - shareholders { - shareholder_address - shareholder_profile { - name - } - shares - holder_type } } -}` - -export const getNameForAddress = `query GetNameForAddress($address: String!) { - teia_users(where: {user_address: {_eq: $address}}) { - name - } -}` - -// TODO: add all supported event types -const query_objkt = ` -${BaseTokenFieldsFragment} -query objkt($id: String!) { - tokens_by_pk(fa2_address: "${HEN_CONTRACT_FA2}", token_id: $id) { - ...baseTokenFields - artist_profile { - name - is_split - split_contract { - administrator_address - shareholders { - shareholder_address - shareholder_profile { - user_address - name - } - holder_type - shares - } - } - } - signatures { - shareholder_address - } - rights - right_uri - listings(where: {status: {_eq: "active"}}, order_by: {price: asc}) { - type - contract_address - amount - amount_left - swap_id - ask_id - offer_id - price - start_price - end_price - seller_address - seller_profile { - name - } - status - } - holdings(where: {amount: {_gt: "0"}}) { - holder_address - amount - holder_profile { - name - } - } - tags { - tag - } - events(where: { _or: [{ implements: {_eq: "SALE"} }, { type: {_in: ["HEN_MINT", "TEIA_SWAP", "HEN_SWAP", "HEN_SWAP_V2", "VERSUM_SWAP", "FA2_TRANSFER"]} }]}, order_by: [{level: desc}, {opid: desc}]) { - timestamp - implements - ophash - id - type - price - amount - editions - seller_address - seller_profile { - name - } - buyer_address - buyer_profile { - name - } - from_address - from_profile { - name - } - to_address - to_profile { - name - } - } - } -} ` -export async function getUser(addressOrName: string, type = 'user_address') { - const { data } = await fetchGraphQL( - ` - query addressQuery($addressOrName: String!) { - teia_users(where: { ${type}: {_eq: $addressOrName}}) { - user_address - name - metadata { - data - } - } - } - `, - 'addressQuery', - { - addressOrName, - } - ) +// TODO: add all supported event types +export async function getUser(addressOrSubjkt: string, type = 'user_address') { + // const { data } = await fetchGraphQL( + // type === 'name' ? userByName : userByAddress, + // 'addressQuery', + // { + // addressOrSubjkt, + // } + // ) + const query = type === 'name' ? api.userByName : api.userByAddress + const data = await query({ addressOrSubjkt }) + console.log({ data }) return data?.teia_users?.length ? data.teia_users[0] : null + + // return data?.teia_users?.length ? data.teia_users[0] : null } export async function fetchCollabCreations( addressOrSubjkt: string, type = 'address' ) { - const { data } = await fetchGraphQL( - ` - ${BaseTokenFieldsFragment} - query GetCollabCreations($addressOrSubjkt: String!) { - tokens(where: {${ - type === 'address' - ? `artist_address: {_eq: $addressOrSubjkt}` - : `artist_profile: {name: {_eq: $addressOrSubjkt }}` - }, editions: {_gt: "0"}}, order_by: {token_id: desc}) { - ...baseTokenFields - tags { - tag - } - } - split_contracts: teia_split_contracts(where: {${ - type === 'address' - ? `contract_address: {_eq: $addressOrSubjkt}` - : `contract_profile: {name: {_eq: $addressOrSubjkt}}` - }}) { - administrator_address - shareholders { - shareholder_address - shareholder_profile { - name - } - holder_type - } - contract_address - contract_profile { - name - metadata { - data - } - } - } - }`, - 'GetCollabCreations', - { addressOrSubjkt } - ) - + // const { data } = await fetchGraphQL( + // type === 'address' ? collabCreationsFromAddress : collabCreationsFromName, + // 'GetCollabCreations', + // { addressOrSubjkt } + // ) + const query = + type === 'address' + ? api.collabCreationsFromAddress + : api.collabCreationsFromName + const data = await query({ addressOrSubjkt }) return data } export async function fetchObjktDetails(id: string) { - const { data } = await fetchGraphQL(query_objkt, 'objkt', { - id, - }) + // const { data } = await fetchGraphQL(query_objkt, 'objkt', { + // id, + // }) + const data = await api.objkt({ id }) return data.tokens_by_pk } diff --git a/src/data/ipfs.ts b/src/data/ipfs.ts index 0b34b94b0..8e5cebe07 100644 --- a/src/data/ipfs.ts +++ b/src/data/ipfs.ts @@ -3,7 +3,7 @@ import { MIMETYPE, IPFS_DEFAULT_THUMBNAIL_URI } from '@constants' import mime from 'mime-types' import axios from 'axios' import { Buffer } from 'buffer' -import { fetchGraphQL } from './api' +import { api } from './api' import { useUserStore } from '@context/userStore' import { useModalStore } from '@context/modalStore' import { FileForm, FileMint, MintFormat } from '@types' @@ -94,40 +94,38 @@ export async function uploadMultipleFilesToIPFSProxy(files: FileMint[]) { } const isDoubleMint = async (uri: string) => { - const uriQuery = `query uriQuery($address: String!, $ids: [String!] = "") { - tokens(order_by: {minted_at: desc}, where: {metadata_status: { _eq: "processed" }, artifact_uri: {_in: $ids}, artist_address: {_eq: $address}}) { - token_id - } - }` const { proxyAddress, address } = useUserStore.getState() const { show } = useModalStore.getState() - const { errors, data } = await fetchGraphQL(uriQuery, 'uriQuery', { - address: proxyAddress || address, - ids: [uri], - }) - console.debug(data) - - if (errors) { - show(`GraphQL Error: ${JSON.stringify(errors)}`) - return true - } else if (data) { - if (!data.tokens) return false - const areAllTokensBurned = data.tokens.every( - ({ editions }: { editions: number }) => editions === 0 - ) - - if (areAllTokensBurned) { - return false - } + const res = await api.uriMintedByAddress({ + address: proxyAddress || address || '', + uris: [uri], + }) + // await fetchGraphQL(uriQuery, 'uriQuery', { + // address: proxyAddress || address, + // ids: [uri], + // }) + + console.debug(res) + + // if (errors) { + // show(`GraphQL Error: ${JSON.stringify(errors)}`) + // return true + // } else if (data) { + if (!res.tokens) return false + const areAllTokensBurned = res.tokens.every((token) => token.editions === 0) + + if (areAllTokensBurned) { + return false + } - show( - `Duplicate mint detected: [#${data.tokens[0].token_id}](/objkt/${data.tokens[0].token_id}) is already minted` - ) + show( + `Duplicate mint detected: [#${res.tokens[0].token_id}](/objkt/${res.tokens[0].token_id}) is already minted` + ) - return true - } - return false + return true + // } + // return false } interface PrepareProps { diff --git a/src/data/queries.ts b/src/data/queries.ts new file mode 100644 index 000000000..b224c429c --- /dev/null +++ b/src/data/queries.ts @@ -0,0 +1,295 @@ +import { gql } from 'graphql-request' + +//- fragments +export const BaseTokenFieldsFragment = gql` + fragment baseTokenFields on tokens { + artifact_uri + display_uri + thumbnail_uri + metadata_uri + + artist_address + artist_profile { + name + is_split + } + description + editions + fa2_address + listings(where: { status: { _eq: "active" } }, order_by: { price: asc }) { + amount + amount_left + contract_address + price + status + type + } + mime_type + minted_at + metadata_status + name + price + + royalties + royalties_total + + royalty_receivers { + receiver_address + royalties + } + teia_meta { + accessibility + content_rating + is_signed + preview_uri + } + token_id + } +` + +//- Tokens +export const objkt = gql` + ${BaseTokenFieldsFragment} + query objkt($id: String!) { + tokens_by_pk( + fa2_address: "KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton" + token_id: $id + ) { + ...baseTokenFields + artist_profile { + name + is_split + split_contract { + administrator_address + shareholders { + shareholder_address + shareholder_profile { + user_address + name + } + holder_type + shares + } + } + } + signatures { + shareholder_address + } + rights + right_uri + listings(where: { status: { _eq: "active" } }, order_by: { price: asc }) { + type + contract_address + amount + amount_left + swap_id + ask_id + offer_id + price + start_price + end_price + seller_address + seller_profile { + name + } + status + } + holdings(where: { amount: { _gt: "0" } }) { + holder_address + amount + holder_profile { + name + } + } + tags { + tag + } + events( + where: { + _or: [ + { implements: { _eq: "SALE" } } + { + type: { + _in: [ + "HEN_MINT" + "TEIA_SWAP" + "HEN_SWAP" + "HEN_SWAP_V2" + "VERSUM_SWAP" + "FA2_TRANSFER" + ] + } + } + ] + } + order_by: [{ level: desc }, { opid: desc }] + ) { + timestamp + implements + ophash + id + type + price + amount + editions + seller_address + seller_profile { + name + } + buyer_address + buyer_profile { + name + } + from_address + from_profile { + name + } + to_address + to_profile { + name + } + } + } + } +` + +//- Double Mint +export const uriMintedByAddress = gql` + query uriMintedByAddress($address: String!, $uris: [String!] = "") { + tokens( + order_by: { minted_at: desc } + where: { + metadata_status: { _eq: "processed" } + artifact_uri: { _in: $uris } + artist_address: { _eq: $address } + } + ) { + token_id + editions + } + } +` + +//- Collabs +export const getCollabsForAddress = gql` + query getCollabsForAddress($address: String!) { + split_contracts: teia_split_contracts( + where: { + _or: [ + { administrator_address: { _eq: $address } } + { shareholders: { shareholder_address: { _eq: $address } } } + ] + } + ) { + contract_address + contract_profile { + name + metadata { + data + } + } + administrator_address + shareholders { + shareholder_address + shareholder_profile { + name + } + shares + holder_type + } + } + } +` +// collab Creations +export const collabCreationsFragment = gql` + fragment collabCreationsTokens on tokens { + ${BaseTokenFieldsFragment} + ...baseTokenFields + tags{ + tag + } + } + fragment collabCreationsSplit on teia_split_contracts { + administrator_address + shareholders { + shareholder_address + shareholder_profile { + name + } + holder_type + } + contract_address + contract_profile { + name + metadata { + data + } + } + } +` +export const collabCreationsFromAddress = gql` + ${collabCreationsFragment} + query collabCreationsFromAddress($addressOrSubjkt: String!) { + tokens( + where: { + artist_address: { _eq: $addressOrSubjkt } + editions: { _gt: "0" } + } + order_by: { token_id: desc } + ) { + ...collabCreationsTokens + } + split_contracts: teia_split_contracts( + where: { contract_address: { _eq: $addressOrSubjkt } } + ) { + ...collabCreationsSplit + } + } +` +export const collabCreationsFromName = gql` + ${collabCreationsFragment} + query collabCreationsFromName($addressOrSubjkt: String!) { + tokens( + where: { + artist_profile: { name: { _eq: $addressOrSubjkt } } + editions: { _gt: "0" } + } + order_by: { token_id: desc } + ) { + ...collabCreationsTokens + } + split_contracts: teia_split_contracts( + where: { contract_profile: { name: { _eq: $addressOrSubjkt } } } + ) { + ...collabCreationsSplit + } + } +` + +// user +export const userFragment = gql` + fragment userFragment on teia_users { + user_address + name + metadata { + data + } + } +` + +export const userByName = gql` + query userByName($addressOrSubjkt: String!) { + teia_users(where: { name: { _eq: $addressOrSubjkt } }) { + ${userFragment} + ...userFragment + } + } +` +export const userByAddress = gql` + query userByAddress($addressOrSubjkt: String!) { + teia_users(where: { user_address: { _eq: $addressOrSubjkt } }) { + ${userFragment} + ...userFragment + } + } +` diff --git a/src/gql/README.md b/src/gql/README.md new file mode 100644 index 000000000..6610032c7 --- /dev/null +++ b/src/gql/README.md @@ -0,0 +1,4 @@ +# GQL + +This `index.ts` file is auto generated and should not be manually edited. +To update it run `npm run gen-api`. This will generate types and SWR utilities to get typed responses. diff --git a/src/gql/index.ts b/src/gql/index.ts new file mode 100644 index 000000000..4dda2f7ce --- /dev/null +++ b/src/gql/index.ts @@ -0,0 +1,7453 @@ +import type { GraphQLClient } from 'graphql-request' +import type * as Dom from 'graphql-request/dist/types.dom' +import gql from 'graphql-tag' +import type { ClientError } from 'graphql-request/dist/types' +import type { + SWRConfiguration as SWRConfigInterface, + Key as SWRKeyInterface, +} from 'swr' +import useSWR from 'swr' +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 +} +export type MakeMaybe = Omit & { + [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 + bigint: any + jsonb: any + timestamptz: any +} + +/** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */ +export type Boolean_Comparison_Exp = { + _eq?: InputMaybe + _gt?: InputMaybe + _gte?: InputMaybe + _in?: InputMaybe> + _is_null?: InputMaybe + _lt?: InputMaybe + _lte?: InputMaybe + _neq?: InputMaybe + _nin?: InputMaybe> +} + +/** Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. */ +export type Int_Comparison_Exp = { + _eq?: InputMaybe + _gt?: InputMaybe + _gte?: InputMaybe + _in?: InputMaybe> + _is_null?: InputMaybe + _lt?: InputMaybe + _lte?: InputMaybe + _neq?: InputMaybe + _nin?: InputMaybe> +} + +/** Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. */ +export type String_Comparison_Exp = { + _eq?: InputMaybe + _gt?: InputMaybe + _gte?: InputMaybe + /** does the column match the given case-insensitive pattern */ + _ilike?: InputMaybe + _in?: InputMaybe> + /** does the column match the given POSIX regular expression, case insensitive */ + _iregex?: InputMaybe + _is_null?: InputMaybe + /** does the column match the given pattern */ + _like?: InputMaybe + _lt?: InputMaybe + _lte?: InputMaybe + _neq?: InputMaybe + /** does the column NOT match the given case-insensitive pattern */ + _nilike?: InputMaybe + _nin?: InputMaybe> + /** does the column NOT match the given POSIX regular expression, case insensitive */ + _niregex?: InputMaybe + /** does the column NOT match the given pattern */ + _nlike?: InputMaybe + /** does the column NOT match the given POSIX regular expression, case sensitive */ + _nregex?: InputMaybe + /** does the column NOT match the given SQL regular expression */ + _nsimilar?: InputMaybe + /** does the column match the given POSIX regular expression, case sensitive */ + _regex?: InputMaybe + /** does the column match the given SQL regular expression */ + _similar?: InputMaybe +} + +/** Boolean expression to compare columns of type "bigint". All fields are combined with logical 'AND'. */ +export type Bigint_Comparison_Exp = { + _eq?: InputMaybe + _gt?: InputMaybe + _gte?: InputMaybe + _in?: InputMaybe> + _is_null?: InputMaybe + _lt?: InputMaybe + _lte?: InputMaybe + _neq?: InputMaybe + _nin?: InputMaybe> +} + +/** ordering argument of a cursor */ +export enum Cursor_Ordering { + /** ascending ordering of the cursor */ + Asc = 'ASC', + /** descending ordering of the cursor */ + Desc = 'DESC', +} + +/** columns and relationships of "dipdup_contract" */ +export type Dipdup_Contract = { + __typename?: 'dipdup_contract' + address: Scalars['String'] + created_at: Scalars['timestamptz'] + name: Scalars['String'] + typename?: Maybe + updated_at: Scalars['timestamptz'] +} + +/** aggregated selection of "dipdup_contract" */ +export type Dipdup_Contract_Aggregate = { + __typename?: 'dipdup_contract_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "dipdup_contract" */ +export type Dipdup_Contract_Aggregate_Fields = { + __typename?: 'dipdup_contract_aggregate_fields' + count: Scalars['Int'] + max?: Maybe + min?: Maybe +} + +/** aggregate fields of "dipdup_contract" */ +export type Dipdup_Contract_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** Boolean expression to filter rows from the table "dipdup_contract". All fields are combined with a logical 'AND'. */ +export type Dipdup_Contract_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + address?: InputMaybe + created_at?: InputMaybe + name?: InputMaybe + typename?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate max on columns */ +export type Dipdup_Contract_Max_Fields = { + __typename?: 'dipdup_contract_max_fields' + address?: Maybe + created_at?: Maybe + name?: Maybe + typename?: Maybe + updated_at?: Maybe +} + +/** columns and relationships of "dipdup_contract_metadata" */ +export type Dipdup_Contract_Metadata = { + __typename?: 'dipdup_contract_metadata' + contract: Scalars['String'] + created_at: Scalars['timestamptz'] + id: Scalars['Int'] + metadata: Scalars['jsonb'] + network: Scalars['String'] + update_id: Scalars['Int'] + updated_at: Scalars['timestamptz'] +} + +/** columns and relationships of "dipdup_contract_metadata" */ +export type Dipdup_Contract_MetadataMetadataArgs = { + path?: InputMaybe +} + +/** aggregated selection of "dipdup_contract_metadata" */ +export type Dipdup_Contract_Metadata_Aggregate = { + __typename?: 'dipdup_contract_metadata_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "dipdup_contract_metadata" */ +export type Dipdup_Contract_Metadata_Aggregate_Fields = { + __typename?: 'dipdup_contract_metadata_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "dipdup_contract_metadata" */ +export type Dipdup_Contract_Metadata_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** aggregate avg on columns */ +export type Dipdup_Contract_Metadata_Avg_Fields = { + __typename?: 'dipdup_contract_metadata_avg_fields' + id?: Maybe + update_id?: Maybe +} + +/** Boolean expression to filter rows from the table "dipdup_contract_metadata". All fields are combined with a logical 'AND'. */ +export type Dipdup_Contract_Metadata_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + contract?: InputMaybe + created_at?: InputMaybe + id?: InputMaybe + metadata?: InputMaybe + network?: InputMaybe + update_id?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate max on columns */ +export type Dipdup_Contract_Metadata_Max_Fields = { + __typename?: 'dipdup_contract_metadata_max_fields' + contract?: Maybe + created_at?: Maybe + id?: Maybe + network?: Maybe + update_id?: Maybe + updated_at?: Maybe +} + +/** aggregate min on columns */ +export type Dipdup_Contract_Metadata_Min_Fields = { + __typename?: 'dipdup_contract_metadata_min_fields' + contract?: Maybe + created_at?: Maybe + id?: Maybe + network?: Maybe + update_id?: Maybe + updated_at?: Maybe +} + +/** Ordering options when selecting data from "dipdup_contract_metadata". */ +export type Dipdup_Contract_Metadata_Order_By = { + contract?: InputMaybe + created_at?: InputMaybe + id?: InputMaybe + metadata?: InputMaybe + network?: InputMaybe + update_id?: InputMaybe + updated_at?: InputMaybe +} + +/** select columns of table "dipdup_contract_metadata" */ +export enum Dipdup_Contract_Metadata_Select_Column { + /** column name */ + Contract = 'contract', + /** column name */ + CreatedAt = 'created_at', + /** column name */ + Id = 'id', + /** column name */ + Metadata = 'metadata', + /** column name */ + Network = 'network', + /** column name */ + UpdateId = 'update_id', + /** column name */ + UpdatedAt = 'updated_at', +} + +/** aggregate stddev on columns */ +export type Dipdup_Contract_Metadata_Stddev_Fields = { + __typename?: 'dipdup_contract_metadata_stddev_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate stddev_pop on columns */ +export type Dipdup_Contract_Metadata_Stddev_Pop_Fields = { + __typename?: 'dipdup_contract_metadata_stddev_pop_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate stddev_samp on columns */ +export type Dipdup_Contract_Metadata_Stddev_Samp_Fields = { + __typename?: 'dipdup_contract_metadata_stddev_samp_fields' + id?: Maybe + update_id?: Maybe +} + +/** Streaming cursor of the table "dipdup_contract_metadata" */ +export type Dipdup_Contract_Metadata_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Dipdup_Contract_Metadata_Stream_Cursor_Value_Input + /** cursor ordering */ + ordering?: InputMaybe +} + +/** Initial value of the column from where the streaming should start */ +export type Dipdup_Contract_Metadata_Stream_Cursor_Value_Input = { + contract?: InputMaybe + created_at?: InputMaybe + id?: InputMaybe + metadata?: InputMaybe + network?: InputMaybe + update_id?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate sum on columns */ +export type Dipdup_Contract_Metadata_Sum_Fields = { + __typename?: 'dipdup_contract_metadata_sum_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate var_pop on columns */ +export type Dipdup_Contract_Metadata_Var_Pop_Fields = { + __typename?: 'dipdup_contract_metadata_var_pop_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate var_samp on columns */ +export type Dipdup_Contract_Metadata_Var_Samp_Fields = { + __typename?: 'dipdup_contract_metadata_var_samp_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate variance on columns */ +export type Dipdup_Contract_Metadata_Variance_Fields = { + __typename?: 'dipdup_contract_metadata_variance_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate min on columns */ +export type Dipdup_Contract_Min_Fields = { + __typename?: 'dipdup_contract_min_fields' + address?: Maybe + created_at?: Maybe + name?: Maybe + typename?: Maybe + updated_at?: Maybe +} + +/** Ordering options when selecting data from "dipdup_contract". */ +export type Dipdup_Contract_Order_By = { + address?: InputMaybe + created_at?: InputMaybe + name?: InputMaybe + typename?: InputMaybe + updated_at?: InputMaybe +} + +/** select columns of table "dipdup_contract" */ +export enum Dipdup_Contract_Select_Column { + /** column name */ + Address = 'address', + /** column name */ + CreatedAt = 'created_at', + /** column name */ + Name = 'name', + /** column name */ + Typename = 'typename', + /** column name */ + UpdatedAt = 'updated_at', +} + +/** Streaming cursor of the table "dipdup_contract" */ +export type Dipdup_Contract_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Dipdup_Contract_Stream_Cursor_Value_Input + /** cursor ordering */ + ordering?: InputMaybe +} + +/** Initial value of the column from where the streaming should start */ +export type Dipdup_Contract_Stream_Cursor_Value_Input = { + address?: InputMaybe + created_at?: InputMaybe + name?: InputMaybe + typename?: InputMaybe + updated_at?: InputMaybe +} + +/** columns and relationships of "dipdup_head" */ +export type Dipdup_Head = { + __typename?: 'dipdup_head' + created_at: Scalars['timestamptz'] + hash: Scalars['String'] + level: Scalars['Int'] + name: Scalars['String'] + timestamp: Scalars['timestamptz'] + updated_at: Scalars['timestamptz'] +} + +/** aggregated selection of "dipdup_head" */ +export type Dipdup_Head_Aggregate = { + __typename?: 'dipdup_head_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "dipdup_head" */ +export type Dipdup_Head_Aggregate_Fields = { + __typename?: 'dipdup_head_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "dipdup_head" */ +export type Dipdup_Head_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** aggregate avg on columns */ +export type Dipdup_Head_Avg_Fields = { + __typename?: 'dipdup_head_avg_fields' + level?: Maybe +} + +/** Boolean expression to filter rows from the table "dipdup_head". All fields are combined with a logical 'AND'. */ +export type Dipdup_Head_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + created_at?: InputMaybe + hash?: InputMaybe + level?: InputMaybe + name?: InputMaybe + timestamp?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate max on columns */ +export type Dipdup_Head_Max_Fields = { + __typename?: 'dipdup_head_max_fields' + created_at?: Maybe + hash?: Maybe + level?: Maybe + name?: Maybe + timestamp?: Maybe + updated_at?: Maybe +} + +/** aggregate min on columns */ +export type Dipdup_Head_Min_Fields = { + __typename?: 'dipdup_head_min_fields' + created_at?: Maybe + hash?: Maybe + level?: Maybe + name?: Maybe + timestamp?: Maybe + updated_at?: Maybe +} + +/** Ordering options when selecting data from "dipdup_head". */ +export type Dipdup_Head_Order_By = { + created_at?: InputMaybe + hash?: InputMaybe + level?: InputMaybe + name?: InputMaybe + timestamp?: InputMaybe + updated_at?: InputMaybe +} + +/** select columns of table "dipdup_head" */ +export enum Dipdup_Head_Select_Column { + /** column name */ + CreatedAt = 'created_at', + /** column name */ + Hash = 'hash', + /** column name */ + Level = 'level', + /** column name */ + Name = 'name', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + UpdatedAt = 'updated_at', +} + +/** columns and relationships of "dipdup_head_status" */ +export type Dipdup_Head_Status = { + __typename?: 'dipdup_head_status' + name?: Maybe + status?: Maybe +} + +/** aggregated selection of "dipdup_head_status" */ +export type Dipdup_Head_Status_Aggregate = { + __typename?: 'dipdup_head_status_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "dipdup_head_status" */ +export type Dipdup_Head_Status_Aggregate_Fields = { + __typename?: 'dipdup_head_status_aggregate_fields' + count: Scalars['Int'] + max?: Maybe + min?: Maybe +} + +/** aggregate fields of "dipdup_head_status" */ +export type Dipdup_Head_Status_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** Boolean expression to filter rows from the table "dipdup_head_status". All fields are combined with a logical 'AND'. */ +export type Dipdup_Head_Status_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + name?: InputMaybe + status?: InputMaybe +} + +/** aggregate max on columns */ +export type Dipdup_Head_Status_Max_Fields = { + __typename?: 'dipdup_head_status_max_fields' + name?: Maybe + status?: Maybe +} + +/** aggregate min on columns */ +export type Dipdup_Head_Status_Min_Fields = { + __typename?: 'dipdup_head_status_min_fields' + name?: Maybe + status?: Maybe +} + +/** Ordering options when selecting data from "dipdup_head_status". */ +export type Dipdup_Head_Status_Order_By = { + name?: InputMaybe + status?: InputMaybe +} + +/** select columns of table "dipdup_head_status" */ +export enum Dipdup_Head_Status_Select_Column { + /** column name */ + Name = 'name', + /** column name */ + Status = 'status', +} + +/** Streaming cursor of the table "dipdup_head_status" */ +export type Dipdup_Head_Status_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Dipdup_Head_Status_Stream_Cursor_Value_Input + /** cursor ordering */ + ordering?: InputMaybe +} + +/** Initial value of the column from where the streaming should start */ +export type Dipdup_Head_Status_Stream_Cursor_Value_Input = { + name?: InputMaybe + status?: InputMaybe +} + +/** aggregate stddev on columns */ +export type Dipdup_Head_Stddev_Fields = { + __typename?: 'dipdup_head_stddev_fields' + level?: Maybe +} + +/** aggregate stddev_pop on columns */ +export type Dipdup_Head_Stddev_Pop_Fields = { + __typename?: 'dipdup_head_stddev_pop_fields' + level?: Maybe +} + +/** aggregate stddev_samp on columns */ +export type Dipdup_Head_Stddev_Samp_Fields = { + __typename?: 'dipdup_head_stddev_samp_fields' + level?: Maybe +} + +/** Streaming cursor of the table "dipdup_head" */ +export type Dipdup_Head_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Dipdup_Head_Stream_Cursor_Value_Input + /** cursor ordering */ + ordering?: InputMaybe +} + +/** Initial value of the column from where the streaming should start */ +export type Dipdup_Head_Stream_Cursor_Value_Input = { + created_at?: InputMaybe + hash?: InputMaybe + level?: InputMaybe + name?: InputMaybe + timestamp?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate sum on columns */ +export type Dipdup_Head_Sum_Fields = { + __typename?: 'dipdup_head_sum_fields' + level?: Maybe +} + +/** aggregate var_pop on columns */ +export type Dipdup_Head_Var_Pop_Fields = { + __typename?: 'dipdup_head_var_pop_fields' + level?: Maybe +} + +/** aggregate var_samp on columns */ +export type Dipdup_Head_Var_Samp_Fields = { + __typename?: 'dipdup_head_var_samp_fields' + level?: Maybe +} + +/** aggregate variance on columns */ +export type Dipdup_Head_Variance_Fields = { + __typename?: 'dipdup_head_variance_fields' + level?: Maybe +} + +/** columns and relationships of "dipdup_index" */ +export type Dipdup_Index = { + __typename?: 'dipdup_index' + config_hash: Scalars['String'] + created_at: Scalars['timestamptz'] + level: Scalars['Int'] + name: Scalars['String'] + /** NEW: NEW\nSYNCING: SYNCING\nREALTIME: REALTIME\nROLLBACK: ROLLBACK\nONESHOT: ONESHOT */ + status: Scalars['String'] + template?: Maybe + template_values?: Maybe + /** operation: operation\nbig_map: big_map\nhead: head\ntoken_transfer: token_transfer\nevent: event */ + type: Scalars['String'] + updated_at: Scalars['timestamptz'] +} + +/** columns and relationships of "dipdup_index" */ +export type Dipdup_IndexTemplate_ValuesArgs = { + path?: InputMaybe +} + +/** aggregated selection of "dipdup_index" */ +export type Dipdup_Index_Aggregate = { + __typename?: 'dipdup_index_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "dipdup_index" */ +export type Dipdup_Index_Aggregate_Fields = { + __typename?: 'dipdup_index_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "dipdup_index" */ +export type Dipdup_Index_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** aggregate avg on columns */ +export type Dipdup_Index_Avg_Fields = { + __typename?: 'dipdup_index_avg_fields' + level?: Maybe +} + +/** Boolean expression to filter rows from the table "dipdup_index". All fields are combined with a logical 'AND'. */ +export type Dipdup_Index_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + config_hash?: InputMaybe + created_at?: InputMaybe + level?: InputMaybe + name?: InputMaybe + status?: InputMaybe + template?: InputMaybe + template_values?: InputMaybe + type?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate max on columns */ +export type Dipdup_Index_Max_Fields = { + __typename?: 'dipdup_index_max_fields' + config_hash?: Maybe + created_at?: Maybe + level?: Maybe + name?: Maybe + /** NEW: NEW\nSYNCING: SYNCING\nREALTIME: REALTIME\nROLLBACK: ROLLBACK\nONESHOT: ONESHOT */ + status?: Maybe + template?: Maybe + /** operation: operation\nbig_map: big_map\nhead: head\ntoken_transfer: token_transfer\nevent: event */ + type?: Maybe + updated_at?: Maybe +} + +/** aggregate min on columns */ +export type Dipdup_Index_Min_Fields = { + __typename?: 'dipdup_index_min_fields' + config_hash?: Maybe + created_at?: Maybe + level?: Maybe + name?: Maybe + /** NEW: NEW\nSYNCING: SYNCING\nREALTIME: REALTIME\nROLLBACK: ROLLBACK\nONESHOT: ONESHOT */ + status?: Maybe + template?: Maybe + /** operation: operation\nbig_map: big_map\nhead: head\ntoken_transfer: token_transfer\nevent: event */ + type?: Maybe + updated_at?: Maybe +} + +/** Ordering options when selecting data from "dipdup_index". */ +export type Dipdup_Index_Order_By = { + config_hash?: InputMaybe + created_at?: InputMaybe + level?: InputMaybe + name?: InputMaybe + status?: InputMaybe + template?: InputMaybe + template_values?: InputMaybe + type?: InputMaybe + updated_at?: InputMaybe +} + +/** select columns of table "dipdup_index" */ +export enum Dipdup_Index_Select_Column { + /** column name */ + ConfigHash = 'config_hash', + /** column name */ + CreatedAt = 'created_at', + /** column name */ + Level = 'level', + /** column name */ + Name = 'name', + /** column name */ + Status = 'status', + /** column name */ + Template = 'template', + /** column name */ + TemplateValues = 'template_values', + /** column name */ + Type = 'type', + /** column name */ + UpdatedAt = 'updated_at', +} + +/** aggregate stddev on columns */ +export type Dipdup_Index_Stddev_Fields = { + __typename?: 'dipdup_index_stddev_fields' + level?: Maybe +} + +/** aggregate stddev_pop on columns */ +export type Dipdup_Index_Stddev_Pop_Fields = { + __typename?: 'dipdup_index_stddev_pop_fields' + level?: Maybe +} + +/** aggregate stddev_samp on columns */ +export type Dipdup_Index_Stddev_Samp_Fields = { + __typename?: 'dipdup_index_stddev_samp_fields' + level?: Maybe +} + +/** Streaming cursor of the table "dipdup_index" */ +export type Dipdup_Index_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Dipdup_Index_Stream_Cursor_Value_Input + /** cursor ordering */ + ordering?: InputMaybe +} + +/** Initial value of the column from where the streaming should start */ +export type Dipdup_Index_Stream_Cursor_Value_Input = { + config_hash?: InputMaybe + created_at?: InputMaybe + level?: InputMaybe + name?: InputMaybe + /** NEW: NEW\nSYNCING: SYNCING\nREALTIME: REALTIME\nROLLBACK: ROLLBACK\nONESHOT: ONESHOT */ + status?: InputMaybe + template?: InputMaybe + template_values?: InputMaybe + /** operation: operation\nbig_map: big_map\nhead: head\ntoken_transfer: token_transfer\nevent: event */ + type?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate sum on columns */ +export type Dipdup_Index_Sum_Fields = { + __typename?: 'dipdup_index_sum_fields' + level?: Maybe +} + +/** aggregate var_pop on columns */ +export type Dipdup_Index_Var_Pop_Fields = { + __typename?: 'dipdup_index_var_pop_fields' + level?: Maybe +} + +/** aggregate var_samp on columns */ +export type Dipdup_Index_Var_Samp_Fields = { + __typename?: 'dipdup_index_var_samp_fields' + level?: Maybe +} + +/** aggregate variance on columns */ +export type Dipdup_Index_Variance_Fields = { + __typename?: 'dipdup_index_variance_fields' + level?: Maybe +} + +/** Model update created within versioned transactions */ +export type Dipdup_Model_Update = { + __typename?: 'dipdup_model_update' + /** INSERT: INSERT\nUPDATE: UPDATE\nDELETE: DELETE */ + action: Scalars['String'] + created_at: Scalars['timestamptz'] + data?: Maybe + id: Scalars['Int'] + index: Scalars['String'] + level: Scalars['Int'] + model_name: Scalars['String'] + model_pk: Scalars['String'] + updated_at: Scalars['timestamptz'] +} + +/** Model update created within versioned transactions */ +export type Dipdup_Model_UpdateDataArgs = { + path?: InputMaybe +} + +/** aggregated selection of "dipdup_model_update" */ +export type Dipdup_Model_Update_Aggregate = { + __typename?: 'dipdup_model_update_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "dipdup_model_update" */ +export type Dipdup_Model_Update_Aggregate_Fields = { + __typename?: 'dipdup_model_update_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "dipdup_model_update" */ +export type Dipdup_Model_Update_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** aggregate avg on columns */ +export type Dipdup_Model_Update_Avg_Fields = { + __typename?: 'dipdup_model_update_avg_fields' + id?: Maybe + level?: Maybe +} + +/** Boolean expression to filter rows from the table "dipdup_model_update". All fields are combined with a logical 'AND'. */ +export type Dipdup_Model_Update_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + action?: InputMaybe + created_at?: InputMaybe + data?: InputMaybe + id?: InputMaybe + index?: InputMaybe + level?: InputMaybe + model_name?: InputMaybe + model_pk?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate max on columns */ +export type Dipdup_Model_Update_Max_Fields = { + __typename?: 'dipdup_model_update_max_fields' + /** INSERT: INSERT\nUPDATE: UPDATE\nDELETE: DELETE */ + action?: Maybe + created_at?: Maybe + id?: Maybe + index?: Maybe + level?: Maybe + model_name?: Maybe + model_pk?: Maybe + updated_at?: Maybe +} + +/** aggregate min on columns */ +export type Dipdup_Model_Update_Min_Fields = { + __typename?: 'dipdup_model_update_min_fields' + /** INSERT: INSERT\nUPDATE: UPDATE\nDELETE: DELETE */ + action?: Maybe + created_at?: Maybe + id?: Maybe + index?: Maybe + level?: Maybe + model_name?: Maybe + model_pk?: Maybe + updated_at?: Maybe +} + +/** Ordering options when selecting data from "dipdup_model_update". */ +export type Dipdup_Model_Update_Order_By = { + action?: InputMaybe + created_at?: InputMaybe + data?: InputMaybe + id?: InputMaybe + index?: InputMaybe + level?: InputMaybe + model_name?: InputMaybe + model_pk?: InputMaybe + updated_at?: InputMaybe +} + +/** select columns of table "dipdup_model_update" */ +export enum Dipdup_Model_Update_Select_Column { + /** column name */ + Action = 'action', + /** column name */ + CreatedAt = 'created_at', + /** column name */ + Data = 'data', + /** column name */ + Id = 'id', + /** column name */ + Index = 'index', + /** column name */ + Level = 'level', + /** column name */ + ModelName = 'model_name', + /** column name */ + ModelPk = 'model_pk', + /** column name */ + UpdatedAt = 'updated_at', +} + +/** aggregate stddev on columns */ +export type Dipdup_Model_Update_Stddev_Fields = { + __typename?: 'dipdup_model_update_stddev_fields' + id?: Maybe + level?: Maybe +} + +/** aggregate stddev_pop on columns */ +export type Dipdup_Model_Update_Stddev_Pop_Fields = { + __typename?: 'dipdup_model_update_stddev_pop_fields' + id?: Maybe + level?: Maybe +} + +/** aggregate stddev_samp on columns */ +export type Dipdup_Model_Update_Stddev_Samp_Fields = { + __typename?: 'dipdup_model_update_stddev_samp_fields' + id?: Maybe + level?: Maybe +} + +/** Streaming cursor of the table "dipdup_model_update" */ +export type Dipdup_Model_Update_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Dipdup_Model_Update_Stream_Cursor_Value_Input + /** cursor ordering */ + ordering?: InputMaybe +} + +/** Initial value of the column from where the streaming should start */ +export type Dipdup_Model_Update_Stream_Cursor_Value_Input = { + /** INSERT: INSERT\nUPDATE: UPDATE\nDELETE: DELETE */ + action?: InputMaybe + created_at?: InputMaybe + data?: InputMaybe + id?: InputMaybe + index?: InputMaybe + level?: InputMaybe + model_name?: InputMaybe + model_pk?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate sum on columns */ +export type Dipdup_Model_Update_Sum_Fields = { + __typename?: 'dipdup_model_update_sum_fields' + id?: Maybe + level?: Maybe +} + +/** aggregate var_pop on columns */ +export type Dipdup_Model_Update_Var_Pop_Fields = { + __typename?: 'dipdup_model_update_var_pop_fields' + id?: Maybe + level?: Maybe +} + +/** aggregate var_samp on columns */ +export type Dipdup_Model_Update_Var_Samp_Fields = { + __typename?: 'dipdup_model_update_var_samp_fields' + id?: Maybe + level?: Maybe +} + +/** aggregate variance on columns */ +export type Dipdup_Model_Update_Variance_Fields = { + __typename?: 'dipdup_model_update_variance_fields' + id?: Maybe + level?: Maybe +} + +/** columns and relationships of "dipdup_schema" */ +export type Dipdup_Schema = { + __typename?: 'dipdup_schema' + created_at: Scalars['timestamptz'] + hash: Scalars['String'] + name: Scalars['String'] + /** manual: manual\nmigration: migration\nrollback: rollback\nconfig_modified: config_modified\nschema_modified: schema_modified */ + reindex?: Maybe + updated_at: Scalars['timestamptz'] +} + +/** aggregated selection of "dipdup_schema" */ +export type Dipdup_Schema_Aggregate = { + __typename?: 'dipdup_schema_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "dipdup_schema" */ +export type Dipdup_Schema_Aggregate_Fields = { + __typename?: 'dipdup_schema_aggregate_fields' + count: Scalars['Int'] + max?: Maybe + min?: Maybe +} + +/** aggregate fields of "dipdup_schema" */ +export type Dipdup_Schema_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** Boolean expression to filter rows from the table "dipdup_schema". All fields are combined with a logical 'AND'. */ +export type Dipdup_Schema_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + created_at?: InputMaybe + hash?: InputMaybe + name?: InputMaybe + reindex?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate max on columns */ +export type Dipdup_Schema_Max_Fields = { + __typename?: 'dipdup_schema_max_fields' + created_at?: Maybe + hash?: Maybe + name?: Maybe + /** manual: manual\nmigration: migration\nrollback: rollback\nconfig_modified: config_modified\nschema_modified: schema_modified */ + reindex?: Maybe + updated_at?: Maybe +} + +/** aggregate min on columns */ +export type Dipdup_Schema_Min_Fields = { + __typename?: 'dipdup_schema_min_fields' + created_at?: Maybe + hash?: Maybe + name?: Maybe + /** manual: manual\nmigration: migration\nrollback: rollback\nconfig_modified: config_modified\nschema_modified: schema_modified */ + reindex?: Maybe + updated_at?: Maybe +} + +/** Ordering options when selecting data from "dipdup_schema". */ +export type Dipdup_Schema_Order_By = { + created_at?: InputMaybe + hash?: InputMaybe + name?: InputMaybe + reindex?: InputMaybe + updated_at?: InputMaybe +} + +/** select columns of table "dipdup_schema" */ +export enum Dipdup_Schema_Select_Column { + /** column name */ + CreatedAt = 'created_at', + /** column name */ + Hash = 'hash', + /** column name */ + Name = 'name', + /** column name */ + Reindex = 'reindex', + /** column name */ + UpdatedAt = 'updated_at', +} + +/** Streaming cursor of the table "dipdup_schema" */ +export type Dipdup_Schema_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Dipdup_Schema_Stream_Cursor_Value_Input + /** cursor ordering */ + ordering?: InputMaybe +} + +/** Initial value of the column from where the streaming should start */ +export type Dipdup_Schema_Stream_Cursor_Value_Input = { + created_at?: InputMaybe + hash?: InputMaybe + name?: InputMaybe + /** manual: manual\nmigration: migration\nrollback: rollback\nconfig_modified: config_modified\nschema_modified: schema_modified */ + reindex?: InputMaybe + updated_at?: InputMaybe +} + +/** columns and relationships of "dipdup_token_metadata" */ +export type Dipdup_Token_Metadata = { + __typename?: 'dipdup_token_metadata' + contract: Scalars['String'] + created_at: Scalars['timestamptz'] + id: Scalars['Int'] + metadata: Scalars['jsonb'] + network: Scalars['String'] + token_id: Scalars['String'] + update_id: Scalars['Int'] + updated_at: Scalars['timestamptz'] +} + +/** columns and relationships of "dipdup_token_metadata" */ +export type Dipdup_Token_MetadataMetadataArgs = { + path?: InputMaybe +} + +/** aggregated selection of "dipdup_token_metadata" */ +export type Dipdup_Token_Metadata_Aggregate = { + __typename?: 'dipdup_token_metadata_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "dipdup_token_metadata" */ +export type Dipdup_Token_Metadata_Aggregate_Fields = { + __typename?: 'dipdup_token_metadata_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "dipdup_token_metadata" */ +export type Dipdup_Token_Metadata_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** aggregate avg on columns */ +export type Dipdup_Token_Metadata_Avg_Fields = { + __typename?: 'dipdup_token_metadata_avg_fields' + id?: Maybe + update_id?: Maybe +} + +/** Boolean expression to filter rows from the table "dipdup_token_metadata". All fields are combined with a logical 'AND'. */ +export type Dipdup_Token_Metadata_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + contract?: InputMaybe + created_at?: InputMaybe + id?: InputMaybe + metadata?: InputMaybe + network?: InputMaybe + token_id?: InputMaybe + update_id?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate max on columns */ +export type Dipdup_Token_Metadata_Max_Fields = { + __typename?: 'dipdup_token_metadata_max_fields' + contract?: Maybe + created_at?: Maybe + id?: Maybe + network?: Maybe + token_id?: Maybe + update_id?: Maybe + updated_at?: Maybe +} + +/** aggregate min on columns */ +export type Dipdup_Token_Metadata_Min_Fields = { + __typename?: 'dipdup_token_metadata_min_fields' + contract?: Maybe + created_at?: Maybe + id?: Maybe + network?: Maybe + token_id?: Maybe + update_id?: Maybe + updated_at?: Maybe +} + +/** Ordering options when selecting data from "dipdup_token_metadata". */ +export type Dipdup_Token_Metadata_Order_By = { + contract?: InputMaybe + created_at?: InputMaybe + id?: InputMaybe + metadata?: InputMaybe + network?: InputMaybe + token_id?: InputMaybe + update_id?: InputMaybe + updated_at?: InputMaybe +} + +/** select columns of table "dipdup_token_metadata" */ +export enum Dipdup_Token_Metadata_Select_Column { + /** column name */ + Contract = 'contract', + /** column name */ + CreatedAt = 'created_at', + /** column name */ + Id = 'id', + /** column name */ + Metadata = 'metadata', + /** column name */ + Network = 'network', + /** column name */ + TokenId = 'token_id', + /** column name */ + UpdateId = 'update_id', + /** column name */ + UpdatedAt = 'updated_at', +} + +/** aggregate stddev on columns */ +export type Dipdup_Token_Metadata_Stddev_Fields = { + __typename?: 'dipdup_token_metadata_stddev_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate stddev_pop on columns */ +export type Dipdup_Token_Metadata_Stddev_Pop_Fields = { + __typename?: 'dipdup_token_metadata_stddev_pop_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate stddev_samp on columns */ +export type Dipdup_Token_Metadata_Stddev_Samp_Fields = { + __typename?: 'dipdup_token_metadata_stddev_samp_fields' + id?: Maybe + update_id?: Maybe +} + +/** Streaming cursor of the table "dipdup_token_metadata" */ +export type Dipdup_Token_Metadata_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Dipdup_Token_Metadata_Stream_Cursor_Value_Input + /** cursor ordering */ + ordering?: InputMaybe +} + +/** Initial value of the column from where the streaming should start */ +export type Dipdup_Token_Metadata_Stream_Cursor_Value_Input = { + contract?: InputMaybe + created_at?: InputMaybe + id?: InputMaybe + metadata?: InputMaybe + network?: InputMaybe + token_id?: InputMaybe + update_id?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate sum on columns */ +export type Dipdup_Token_Metadata_Sum_Fields = { + __typename?: 'dipdup_token_metadata_sum_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate var_pop on columns */ +export type Dipdup_Token_Metadata_Var_Pop_Fields = { + __typename?: 'dipdup_token_metadata_var_pop_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate var_samp on columns */ +export type Dipdup_Token_Metadata_Var_Samp_Fields = { + __typename?: 'dipdup_token_metadata_var_samp_fields' + id?: Maybe + update_id?: Maybe +} + +/** aggregate variance on columns */ +export type Dipdup_Token_Metadata_Variance_Fields = { + __typename?: 'dipdup_token_metadata_variance_fields' + id?: Maybe + update_id?: Maybe +} + +/** columns and relationships of "events" */ +export type Events = { + __typename?: 'events' + amount?: Maybe + artist_address?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + bidder_address?: Maybe + burn_on_end?: Maybe + buyer_address?: Maybe + /** An object relationship */ + buyer_profile?: Maybe + collection_id?: Maybe + contract_address?: Maybe + creator_name?: Maybe + currency?: Maybe + current_price?: Maybe + custom_data?: Maybe + editions?: Maybe + end_price?: Maybe + end_time?: Maybe + extension_time?: Maybe + fa2_address?: Maybe + from_address?: Maybe + /** An object relationship */ + from_profile?: Maybe + highest_bidder_address?: Maybe + holder_address?: Maybe + id: Scalars['String'] + implements?: Maybe + is_mint?: Maybe + is_verified_artist?: Maybe + issuer_id?: Maybe + iteration?: Maybe + kalamint_on_sale?: Maybe + ledger_type?: Maybe + level: Scalars['bigint'] + metadata?: Maybe + metadata_uri?: Maybe + offer_id?: Maybe + ophash?: Maybe + opid: Scalars['bigint'] + owner_address?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + quotes?: Maybe + reserve?: Maybe + royalties?: Maybe + royalty_shares?: Maybe + seller_address?: Maybe + /** An object relationship */ + seller_profile?: Maybe + start_price?: Maybe + start_time?: Maybe + swap_id?: Maybe + timestamp: Scalars['timestamptz'] + to_address?: Maybe + /** An object relationship */ + to_profile?: Maybe + /** An object relationship */ + token?: Maybe + token_description?: Maybe + token_id?: Maybe + token_name?: Maybe + total_price?: Maybe + type?: Maybe +} + +/** columns and relationships of "events" */ +export type EventsCustom_DataArgs = { + path?: InputMaybe +} + +/** columns and relationships of "events" */ +export type EventsMetadataArgs = { + path?: InputMaybe +} + +/** columns and relationships of "events" */ +export type EventsQuotesArgs = { + path?: InputMaybe +} + +/** columns and relationships of "events" */ +export type EventsRoyalty_SharesArgs = { + path?: InputMaybe +} + +/** aggregated selection of "events" */ +export type Events_Aggregate = { + __typename?: 'events_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "events" */ +export type Events_Aggregate_Fields = { + __typename?: 'events_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "events" */ +export type Events_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** order by aggregate values of table "events" */ +export type Events_Aggregate_Order_By = { + avg?: InputMaybe + count?: InputMaybe + max?: InputMaybe + min?: InputMaybe + stddev?: InputMaybe + stddev_pop?: InputMaybe + stddev_samp?: InputMaybe + sum?: InputMaybe + var_pop?: InputMaybe + var_samp?: InputMaybe + variance?: InputMaybe +} + +/** aggregate avg on columns */ +export type Events_Avg_Fields = { + __typename?: 'events_avg_fields' + amount?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + collection_id?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + extension_time?: Maybe + issuer_id?: Maybe + iteration?: Maybe + level?: Maybe + offer_id?: Maybe + opid?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + start_price?: Maybe + swap_id?: Maybe + total_price?: Maybe +} + +/** order by avg() on columns of table "events" */ +export type Events_Avg_Order_By = { + amount?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + collection_id?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + extension_time?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + level?: InputMaybe + offer_id?: InputMaybe + opid?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe + total_price?: InputMaybe +} + +/** Boolean expression to filter rows from the table "events". All fields are combined with a logical 'AND'. */ +export type Events_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + amount?: InputMaybe + artist_address?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + bidder_address?: InputMaybe + burn_on_end?: InputMaybe + buyer_address?: InputMaybe + buyer_profile?: InputMaybe + collection_id?: InputMaybe + contract_address?: InputMaybe + creator_name?: InputMaybe + currency?: InputMaybe + current_price?: InputMaybe + custom_data?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + end_time?: InputMaybe + extension_time?: InputMaybe + fa2_address?: InputMaybe + from_address?: InputMaybe + from_profile?: InputMaybe + highest_bidder_address?: InputMaybe + holder_address?: InputMaybe + id?: InputMaybe + implements?: InputMaybe + is_mint?: InputMaybe + is_verified_artist?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + kalamint_on_sale?: InputMaybe + ledger_type?: InputMaybe + level?: InputMaybe + metadata?: InputMaybe + metadata_uri?: InputMaybe + offer_id?: InputMaybe + ophash?: InputMaybe + opid?: InputMaybe + owner_address?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + quotes?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + royalty_shares?: InputMaybe + seller_address?: InputMaybe + seller_profile?: InputMaybe + start_price?: InputMaybe + start_time?: InputMaybe + swap_id?: InputMaybe + timestamp?: InputMaybe + to_address?: InputMaybe + to_profile?: InputMaybe + token?: InputMaybe + token_description?: InputMaybe + token_id?: InputMaybe + token_name?: InputMaybe + total_price?: InputMaybe + type?: InputMaybe +} + +/** aggregate max on columns */ +export type Events_Max_Fields = { + __typename?: 'events_max_fields' + amount?: Maybe + artist_address?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + bidder_address?: Maybe + buyer_address?: Maybe + collection_id?: Maybe + contract_address?: Maybe + creator_name?: Maybe + currency?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + end_time?: Maybe + extension_time?: Maybe + fa2_address?: Maybe + from_address?: Maybe + highest_bidder_address?: Maybe + holder_address?: Maybe + id?: Maybe + implements?: Maybe + issuer_id?: Maybe + iteration?: Maybe + ledger_type?: Maybe + level?: Maybe + metadata_uri?: Maybe + offer_id?: Maybe + ophash?: Maybe + opid?: Maybe + owner_address?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + seller_address?: Maybe + start_price?: Maybe + start_time?: Maybe + swap_id?: Maybe + timestamp?: Maybe + to_address?: Maybe + token_description?: Maybe + token_id?: Maybe + token_name?: Maybe + total_price?: Maybe + type?: Maybe +} + +/** order by max() on columns of table "events" */ +export type Events_Max_Order_By = { + amount?: InputMaybe + artist_address?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + bidder_address?: InputMaybe + buyer_address?: InputMaybe + collection_id?: InputMaybe + contract_address?: InputMaybe + creator_name?: InputMaybe + currency?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + end_time?: InputMaybe + extension_time?: InputMaybe + fa2_address?: InputMaybe + from_address?: InputMaybe + highest_bidder_address?: InputMaybe + holder_address?: InputMaybe + id?: InputMaybe + implements?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + ledger_type?: InputMaybe + level?: InputMaybe + metadata_uri?: InputMaybe + offer_id?: InputMaybe + ophash?: InputMaybe + opid?: InputMaybe + owner_address?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + seller_address?: InputMaybe + start_price?: InputMaybe + start_time?: InputMaybe + swap_id?: InputMaybe + timestamp?: InputMaybe + to_address?: InputMaybe + token_description?: InputMaybe + token_id?: InputMaybe + token_name?: InputMaybe + total_price?: InputMaybe + type?: InputMaybe +} + +/** aggregate min on columns */ +export type Events_Min_Fields = { + __typename?: 'events_min_fields' + amount?: Maybe + artist_address?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + bidder_address?: Maybe + buyer_address?: Maybe + collection_id?: Maybe + contract_address?: Maybe + creator_name?: Maybe + currency?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + end_time?: Maybe + extension_time?: Maybe + fa2_address?: Maybe + from_address?: Maybe + highest_bidder_address?: Maybe + holder_address?: Maybe + id?: Maybe + implements?: Maybe + issuer_id?: Maybe + iteration?: Maybe + ledger_type?: Maybe + level?: Maybe + metadata_uri?: Maybe + offer_id?: Maybe + ophash?: Maybe + opid?: Maybe + owner_address?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + seller_address?: Maybe + start_price?: Maybe + start_time?: Maybe + swap_id?: Maybe + timestamp?: Maybe + to_address?: Maybe + token_description?: Maybe + token_id?: Maybe + token_name?: Maybe + total_price?: Maybe + type?: Maybe +} + +/** order by min() on columns of table "events" */ +export type Events_Min_Order_By = { + amount?: InputMaybe + artist_address?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + bidder_address?: InputMaybe + buyer_address?: InputMaybe + collection_id?: InputMaybe + contract_address?: InputMaybe + creator_name?: InputMaybe + currency?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + end_time?: InputMaybe + extension_time?: InputMaybe + fa2_address?: InputMaybe + from_address?: InputMaybe + highest_bidder_address?: InputMaybe + holder_address?: InputMaybe + id?: InputMaybe + implements?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + ledger_type?: InputMaybe + level?: InputMaybe + metadata_uri?: InputMaybe + offer_id?: InputMaybe + ophash?: InputMaybe + opid?: InputMaybe + owner_address?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + seller_address?: InputMaybe + start_price?: InputMaybe + start_time?: InputMaybe + swap_id?: InputMaybe + timestamp?: InputMaybe + to_address?: InputMaybe + token_description?: InputMaybe + token_id?: InputMaybe + token_name?: InputMaybe + total_price?: InputMaybe + type?: InputMaybe +} + +/** Ordering options when selecting data from "events". */ +export type Events_Order_By = { + amount?: InputMaybe + artist_address?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + bidder_address?: InputMaybe + burn_on_end?: InputMaybe + buyer_address?: InputMaybe + buyer_profile?: InputMaybe + collection_id?: InputMaybe + contract_address?: InputMaybe + creator_name?: InputMaybe + currency?: InputMaybe + current_price?: InputMaybe + custom_data?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + end_time?: InputMaybe + extension_time?: InputMaybe + fa2_address?: InputMaybe + from_address?: InputMaybe + from_profile?: InputMaybe + highest_bidder_address?: InputMaybe + holder_address?: InputMaybe + id?: InputMaybe + implements?: InputMaybe + is_mint?: InputMaybe + is_verified_artist?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + kalamint_on_sale?: InputMaybe + ledger_type?: InputMaybe + level?: InputMaybe + metadata?: InputMaybe + metadata_uri?: InputMaybe + offer_id?: InputMaybe + ophash?: InputMaybe + opid?: InputMaybe + owner_address?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + quotes?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + royalty_shares?: InputMaybe + seller_address?: InputMaybe + seller_profile?: InputMaybe + start_price?: InputMaybe + start_time?: InputMaybe + swap_id?: InputMaybe + timestamp?: InputMaybe + to_address?: InputMaybe + to_profile?: InputMaybe + token?: InputMaybe + token_description?: InputMaybe + token_id?: InputMaybe + token_name?: InputMaybe + total_price?: InputMaybe + type?: InputMaybe +} + +/** select columns of table "events" */ +export enum Events_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + ArtistAddress = 'artist_address', + /** column name */ + AskId = 'ask_id', + /** column name */ + AuctionId = 'auction_id', + /** column name */ + Bid = 'bid', + /** column name */ + BidId = 'bid_id', + /** column name */ + BidderAddress = 'bidder_address', + /** column name */ + BurnOnEnd = 'burn_on_end', + /** column name */ + BuyerAddress = 'buyer_address', + /** column name */ + CollectionId = 'collection_id', + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + CreatorName = 'creator_name', + /** column name */ + Currency = 'currency', + /** column name */ + CurrentPrice = 'current_price', + /** column name */ + CustomData = 'custom_data', + /** column name */ + Editions = 'editions', + /** column name */ + EndPrice = 'end_price', + /** column name */ + EndTime = 'end_time', + /** column name */ + ExtensionTime = 'extension_time', + /** column name */ + Fa2Address = 'fa2_address', + /** column name */ + FromAddress = 'from_address', + /** column name */ + HighestBidderAddress = 'highest_bidder_address', + /** column name */ + HolderAddress = 'holder_address', + /** column name */ + Id = 'id', + /** column name */ + Implements = 'implements', + /** column name */ + IsMint = 'is_mint', + /** column name */ + IsVerifiedArtist = 'is_verified_artist', + /** column name */ + IssuerId = 'issuer_id', + /** column name */ + Iteration = 'iteration', + /** column name */ + KalamintOnSale = 'kalamint_on_sale', + /** column name */ + LedgerType = 'ledger_type', + /** column name */ + Level = 'level', + /** column name */ + Metadata = 'metadata', + /** column name */ + MetadataUri = 'metadata_uri', + /** column name */ + OfferId = 'offer_id', + /** column name */ + Ophash = 'ophash', + /** column name */ + Opid = 'opid', + /** column name */ + OwnerAddress = 'owner_address', + /** column name */ + Price = 'price', + /** column name */ + PriceInCny = 'price_in_cny', + /** column name */ + PriceInEur = 'price_in_eur', + /** column name */ + PriceInGbp = 'price_in_gbp', + /** column name */ + PriceInJpy = 'price_in_jpy', + /** column name */ + PriceInKrw = 'price_in_krw', + /** column name */ + PriceInUsd = 'price_in_usd', + /** column name */ + PriceIncrement = 'price_increment', + /** column name */ + Quotes = 'quotes', + /** column name */ + Reserve = 'reserve', + /** column name */ + Royalties = 'royalties', + /** column name */ + RoyaltyShares = 'royalty_shares', + /** column name */ + SellerAddress = 'seller_address', + /** column name */ + StartPrice = 'start_price', + /** column name */ + StartTime = 'start_time', + /** column name */ + SwapId = 'swap_id', + /** column name */ + Timestamp = 'timestamp', + /** column name */ + ToAddress = 'to_address', + /** column name */ + TokenDescription = 'token_description', + /** column name */ + TokenId = 'token_id', + /** column name */ + TokenName = 'token_name', + /** column name */ + TotalPrice = 'total_price', + /** column name */ + Type = 'type', +} + +/** aggregate stddev on columns */ +export type Events_Stddev_Fields = { + __typename?: 'events_stddev_fields' + amount?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + collection_id?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + extension_time?: Maybe + issuer_id?: Maybe + iteration?: Maybe + level?: Maybe + offer_id?: Maybe + opid?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + start_price?: Maybe + swap_id?: Maybe + total_price?: Maybe +} + +/** order by stddev() on columns of table "events" */ +export type Events_Stddev_Order_By = { + amount?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + collection_id?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + extension_time?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + level?: InputMaybe + offer_id?: InputMaybe + opid?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe + total_price?: InputMaybe +} + +/** aggregate stddev_pop on columns */ +export type Events_Stddev_Pop_Fields = { + __typename?: 'events_stddev_pop_fields' + amount?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + collection_id?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + extension_time?: Maybe + issuer_id?: Maybe + iteration?: Maybe + level?: Maybe + offer_id?: Maybe + opid?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + start_price?: Maybe + swap_id?: Maybe + total_price?: Maybe +} + +/** order by stddev_pop() on columns of table "events" */ +export type Events_Stddev_Pop_Order_By = { + amount?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + collection_id?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + extension_time?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + level?: InputMaybe + offer_id?: InputMaybe + opid?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe + total_price?: InputMaybe +} + +/** aggregate stddev_samp on columns */ +export type Events_Stddev_Samp_Fields = { + __typename?: 'events_stddev_samp_fields' + amount?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + collection_id?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + extension_time?: Maybe + issuer_id?: Maybe + iteration?: Maybe + level?: Maybe + offer_id?: Maybe + opid?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + start_price?: Maybe + swap_id?: Maybe + total_price?: Maybe +} + +/** order by stddev_samp() on columns of table "events" */ +export type Events_Stddev_Samp_Order_By = { + amount?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + collection_id?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + extension_time?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + level?: InputMaybe + offer_id?: InputMaybe + opid?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe + total_price?: InputMaybe +} + +/** aggregate sum on columns */ +export type Events_Sum_Fields = { + __typename?: 'events_sum_fields' + amount?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + collection_id?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + extension_time?: Maybe + issuer_id?: Maybe + iteration?: Maybe + level?: Maybe + offer_id?: Maybe + opid?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + start_price?: Maybe + swap_id?: Maybe + total_price?: Maybe +} + +/** order by sum() on columns of table "events" */ +export type Events_Sum_Order_By = { + amount?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + collection_id?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + extension_time?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + level?: InputMaybe + offer_id?: InputMaybe + opid?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe + total_price?: InputMaybe +} + +/** aggregate var_pop on columns */ +export type Events_Var_Pop_Fields = { + __typename?: 'events_var_pop_fields' + amount?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + collection_id?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + extension_time?: Maybe + issuer_id?: Maybe + iteration?: Maybe + level?: Maybe + offer_id?: Maybe + opid?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + start_price?: Maybe + swap_id?: Maybe + total_price?: Maybe +} + +/** order by var_pop() on columns of table "events" */ +export type Events_Var_Pop_Order_By = { + amount?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + collection_id?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + extension_time?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + level?: InputMaybe + offer_id?: InputMaybe + opid?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe + total_price?: InputMaybe +} + +/** aggregate var_samp on columns */ +export type Events_Var_Samp_Fields = { + __typename?: 'events_var_samp_fields' + amount?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + collection_id?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + extension_time?: Maybe + issuer_id?: Maybe + iteration?: Maybe + level?: Maybe + offer_id?: Maybe + opid?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + start_price?: Maybe + swap_id?: Maybe + total_price?: Maybe +} + +/** order by var_samp() on columns of table "events" */ +export type Events_Var_Samp_Order_By = { + amount?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + collection_id?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + extension_time?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + level?: InputMaybe + offer_id?: InputMaybe + opid?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe + total_price?: InputMaybe +} + +/** aggregate variance on columns */ +export type Events_Variance_Fields = { + __typename?: 'events_variance_fields' + amount?: Maybe + ask_id?: Maybe + auction_id?: Maybe + bid?: Maybe + bid_id?: Maybe + collection_id?: Maybe + current_price?: Maybe + editions?: Maybe + end_price?: Maybe + extension_time?: Maybe + issuer_id?: Maybe + iteration?: Maybe + level?: Maybe + offer_id?: Maybe + opid?: Maybe + price?: Maybe + price_in_cny?: Maybe + price_in_eur?: Maybe + price_in_gbp?: Maybe + price_in_jpy?: Maybe + price_in_krw?: Maybe + price_in_usd?: Maybe + price_increment?: Maybe + reserve?: Maybe + royalties?: Maybe + start_price?: Maybe + swap_id?: Maybe + total_price?: Maybe +} + +/** order by variance() on columns of table "events" */ +export type Events_Variance_Order_By = { + amount?: InputMaybe + ask_id?: InputMaybe + auction_id?: InputMaybe + bid?: InputMaybe + bid_id?: InputMaybe + collection_id?: InputMaybe + current_price?: InputMaybe + editions?: InputMaybe + end_price?: InputMaybe + extension_time?: InputMaybe + issuer_id?: InputMaybe + iteration?: InputMaybe + level?: InputMaybe + offer_id?: InputMaybe + opid?: InputMaybe + price?: InputMaybe + price_in_cny?: InputMaybe + price_in_eur?: InputMaybe + price_in_gbp?: InputMaybe + price_in_jpy?: InputMaybe + price_in_krw?: InputMaybe + price_in_usd?: InputMaybe + price_increment?: InputMaybe + reserve?: InputMaybe + royalties?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe + total_price?: InputMaybe +} + +/** columns and relationships of "holdings" */ +export type Holdings = { + __typename?: 'holdings' + amount: Scalars['bigint'] + fa2_address: Scalars['String'] + first_received_at?: Maybe + holder_address: Scalars['String'] + /** An object relationship */ + holder_profile?: Maybe + last_received_at?: Maybe + /** An object relationship */ + token?: Maybe + token_id: Scalars['String'] +} + +/** aggregated selection of "holdings" */ +export type Holdings_Aggregate = { + __typename?: 'holdings_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "holdings" */ +export type Holdings_Aggregate_Fields = { + __typename?: 'holdings_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "holdings" */ +export type Holdings_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** order by aggregate values of table "holdings" */ +export type Holdings_Aggregate_Order_By = { + avg?: InputMaybe + count?: InputMaybe + max?: InputMaybe + min?: InputMaybe + stddev?: InputMaybe + stddev_pop?: InputMaybe + stddev_samp?: InputMaybe + sum?: InputMaybe + var_pop?: InputMaybe + var_samp?: InputMaybe + variance?: InputMaybe +} + +/** aggregate avg on columns */ +export type Holdings_Avg_Fields = { + __typename?: 'holdings_avg_fields' + amount?: Maybe +} + +/** order by avg() on columns of table "holdings" */ +export type Holdings_Avg_Order_By = { + amount?: InputMaybe +} + +/** Boolean expression to filter rows from the table "holdings". All fields are combined with a logical 'AND'. */ +export type Holdings_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + amount?: InputMaybe + fa2_address?: InputMaybe + first_received_at?: InputMaybe + holder_address?: InputMaybe + holder_profile?: InputMaybe + last_received_at?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe +} + +/** aggregate max on columns */ +export type Holdings_Max_Fields = { + __typename?: 'holdings_max_fields' + amount?: Maybe + fa2_address?: Maybe + first_received_at?: Maybe + holder_address?: Maybe + last_received_at?: Maybe + token_id?: Maybe +} + +/** order by max() on columns of table "holdings" */ +export type Holdings_Max_Order_By = { + amount?: InputMaybe + fa2_address?: InputMaybe + first_received_at?: InputMaybe + holder_address?: InputMaybe + last_received_at?: InputMaybe + token_id?: InputMaybe +} + +/** aggregate min on columns */ +export type Holdings_Min_Fields = { + __typename?: 'holdings_min_fields' + amount?: Maybe + fa2_address?: Maybe + first_received_at?: Maybe + holder_address?: Maybe + last_received_at?: Maybe + token_id?: Maybe +} + +/** order by min() on columns of table "holdings" */ +export type Holdings_Min_Order_By = { + amount?: InputMaybe + fa2_address?: InputMaybe + first_received_at?: InputMaybe + holder_address?: InputMaybe + last_received_at?: InputMaybe + token_id?: InputMaybe +} + +/** Ordering options when selecting data from "holdings". */ +export type Holdings_Order_By = { + amount?: InputMaybe + fa2_address?: InputMaybe + first_received_at?: InputMaybe + holder_address?: InputMaybe + holder_profile?: InputMaybe + last_received_at?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe +} + +/** select columns of table "holdings" */ +export enum Holdings_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + Fa2Address = 'fa2_address', + /** column name */ + FirstReceivedAt = 'first_received_at', + /** column name */ + HolderAddress = 'holder_address', + /** column name */ + LastReceivedAt = 'last_received_at', + /** column name */ + TokenId = 'token_id', +} + +/** aggregate stddev on columns */ +export type Holdings_Stddev_Fields = { + __typename?: 'holdings_stddev_fields' + amount?: Maybe +} + +/** order by stddev() on columns of table "holdings" */ +export type Holdings_Stddev_Order_By = { + amount?: InputMaybe +} + +/** aggregate stddev_pop on columns */ +export type Holdings_Stddev_Pop_Fields = { + __typename?: 'holdings_stddev_pop_fields' + amount?: Maybe +} + +/** order by stddev_pop() on columns of table "holdings" */ +export type Holdings_Stddev_Pop_Order_By = { + amount?: InputMaybe +} + +/** aggregate stddev_samp on columns */ +export type Holdings_Stddev_Samp_Fields = { + __typename?: 'holdings_stddev_samp_fields' + amount?: Maybe +} + +/** order by stddev_samp() on columns of table "holdings" */ +export type Holdings_Stddev_Samp_Order_By = { + amount?: InputMaybe +} + +/** aggregate sum on columns */ +export type Holdings_Sum_Fields = { + __typename?: 'holdings_sum_fields' + amount?: Maybe +} + +/** order by sum() on columns of table "holdings" */ +export type Holdings_Sum_Order_By = { + amount?: InputMaybe +} + +/** aggregate var_pop on columns */ +export type Holdings_Var_Pop_Fields = { + __typename?: 'holdings_var_pop_fields' + amount?: Maybe +} + +/** order by var_pop() on columns of table "holdings" */ +export type Holdings_Var_Pop_Order_By = { + amount?: InputMaybe +} + +/** aggregate var_samp on columns */ +export type Holdings_Var_Samp_Fields = { + __typename?: 'holdings_var_samp_fields' + amount?: Maybe +} + +/** order by var_samp() on columns of table "holdings" */ +export type Holdings_Var_Samp_Order_By = { + amount?: InputMaybe +} + +/** aggregate variance on columns */ +export type Holdings_Variance_Fields = { + __typename?: 'holdings_variance_fields' + amount?: Maybe +} + +/** order by variance() on columns of table "holdings" */ +export type Holdings_Variance_Order_By = { + amount?: InputMaybe +} + +export type Jsonb_Cast_Exp = { + String?: InputMaybe +} + +/** Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. */ +export type Jsonb_Comparison_Exp = { + _cast?: InputMaybe + /** is the column contained in the given json value */ + _contained_in?: InputMaybe + /** does the column contain the given json value at the top level */ + _contains?: InputMaybe + _eq?: InputMaybe + _gt?: InputMaybe + _gte?: InputMaybe + /** does the string exist as a top-level key in the column */ + _has_key?: InputMaybe + /** do all of these strings exist as top-level keys in the column */ + _has_keys_all?: InputMaybe> + /** do any of these strings exist as top-level keys in the column */ + _has_keys_any?: InputMaybe> + _in?: InputMaybe> + _is_null?: InputMaybe + _lt?: InputMaybe + _lte?: InputMaybe + _neq?: InputMaybe + _nin?: InputMaybe> +} + +/** columns and relationships of "listings" */ +export type Listings = { + __typename?: 'listings' + amount: Scalars['bigint'] + amount_left: Scalars['bigint'] + ask_id?: Maybe + burn_on_end?: Maybe + contract_address: Scalars['String'] + created_at: Scalars['timestamptz'] + currency?: Maybe + end_price?: Maybe + end_time?: Maybe + fa2_address: Scalars['String'] + offer_id?: Maybe + price: Scalars['bigint'] + seller_address: Scalars['String'] + /** An object relationship */ + seller_profile?: Maybe + start_price?: Maybe + status: Scalars['String'] + swap_id?: Maybe + /** An object relationship */ + token?: Maybe + token_id: Scalars['String'] + type: Scalars['String'] +} + +/** aggregated selection of "listings" */ +export type Listings_Aggregate = { + __typename?: 'listings_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "listings" */ +export type Listings_Aggregate_Fields = { + __typename?: 'listings_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "listings" */ +export type Listings_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** order by aggregate values of table "listings" */ +export type Listings_Aggregate_Order_By = { + avg?: InputMaybe + count?: InputMaybe + max?: InputMaybe + min?: InputMaybe + stddev?: InputMaybe + stddev_pop?: InputMaybe + stddev_samp?: InputMaybe + sum?: InputMaybe + var_pop?: InputMaybe + var_samp?: InputMaybe + variance?: InputMaybe +} + +/** aggregate avg on columns */ +export type Listings_Avg_Fields = { + __typename?: 'listings_avg_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + end_price?: Maybe + offer_id?: Maybe + price?: Maybe + start_price?: Maybe + swap_id?: Maybe +} + +/** order by avg() on columns of table "listings" */ +export type Listings_Avg_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + end_price?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe +} + +/** Boolean expression to filter rows from the table "listings". All fields are combined with a logical 'AND'. */ +export type Listings_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + burn_on_end?: InputMaybe + contract_address?: InputMaybe + created_at?: InputMaybe + currency?: InputMaybe + end_price?: InputMaybe + end_time?: InputMaybe + fa2_address?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + seller_address?: InputMaybe + seller_profile?: InputMaybe + start_price?: InputMaybe + status?: InputMaybe + swap_id?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe + type?: InputMaybe +} + +/** aggregate max on columns */ +export type Listings_Max_Fields = { + __typename?: 'listings_max_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + contract_address?: Maybe + created_at?: Maybe + currency?: Maybe + end_price?: Maybe + end_time?: Maybe + fa2_address?: Maybe + offer_id?: Maybe + price?: Maybe + seller_address?: Maybe + start_price?: Maybe + status?: Maybe + swap_id?: Maybe + token_id?: Maybe + type?: Maybe +} + +/** order by max() on columns of table "listings" */ +export type Listings_Max_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + contract_address?: InputMaybe + created_at?: InputMaybe + currency?: InputMaybe + end_price?: InputMaybe + end_time?: InputMaybe + fa2_address?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + seller_address?: InputMaybe + start_price?: InputMaybe + status?: InputMaybe + swap_id?: InputMaybe + token_id?: InputMaybe + type?: InputMaybe +} + +/** aggregate min on columns */ +export type Listings_Min_Fields = { + __typename?: 'listings_min_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + contract_address?: Maybe + created_at?: Maybe + currency?: Maybe + end_price?: Maybe + end_time?: Maybe + fa2_address?: Maybe + offer_id?: Maybe + price?: Maybe + seller_address?: Maybe + start_price?: Maybe + status?: Maybe + swap_id?: Maybe + token_id?: Maybe + type?: Maybe +} + +/** order by min() on columns of table "listings" */ +export type Listings_Min_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + contract_address?: InputMaybe + created_at?: InputMaybe + currency?: InputMaybe + end_price?: InputMaybe + end_time?: InputMaybe + fa2_address?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + seller_address?: InputMaybe + start_price?: InputMaybe + status?: InputMaybe + swap_id?: InputMaybe + token_id?: InputMaybe + type?: InputMaybe +} + +/** Ordering options when selecting data from "listings". */ +export type Listings_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + burn_on_end?: InputMaybe + contract_address?: InputMaybe + created_at?: InputMaybe + currency?: InputMaybe + end_price?: InputMaybe + end_time?: InputMaybe + fa2_address?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + seller_address?: InputMaybe + seller_profile?: InputMaybe + start_price?: InputMaybe + status?: InputMaybe + swap_id?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe + type?: InputMaybe +} + +/** select columns of table "listings" */ +export enum Listings_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + AmountLeft = 'amount_left', + /** column name */ + AskId = 'ask_id', + /** column name */ + BurnOnEnd = 'burn_on_end', + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + CreatedAt = 'created_at', + /** column name */ + Currency = 'currency', + /** column name */ + EndPrice = 'end_price', + /** column name */ + EndTime = 'end_time', + /** column name */ + Fa2Address = 'fa2_address', + /** column name */ + OfferId = 'offer_id', + /** column name */ + Price = 'price', + /** column name */ + SellerAddress = 'seller_address', + /** column name */ + StartPrice = 'start_price', + /** column name */ + Status = 'status', + /** column name */ + SwapId = 'swap_id', + /** column name */ + TokenId = 'token_id', + /** column name */ + Type = 'type', +} + +/** aggregate stddev on columns */ +export type Listings_Stddev_Fields = { + __typename?: 'listings_stddev_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + end_price?: Maybe + offer_id?: Maybe + price?: Maybe + start_price?: Maybe + swap_id?: Maybe +} + +/** order by stddev() on columns of table "listings" */ +export type Listings_Stddev_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + end_price?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe +} + +/** aggregate stddev_pop on columns */ +export type Listings_Stddev_Pop_Fields = { + __typename?: 'listings_stddev_pop_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + end_price?: Maybe + offer_id?: Maybe + price?: Maybe + start_price?: Maybe + swap_id?: Maybe +} + +/** order by stddev_pop() on columns of table "listings" */ +export type Listings_Stddev_Pop_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + end_price?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe +} + +/** aggregate stddev_samp on columns */ +export type Listings_Stddev_Samp_Fields = { + __typename?: 'listings_stddev_samp_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + end_price?: Maybe + offer_id?: Maybe + price?: Maybe + start_price?: Maybe + swap_id?: Maybe +} + +/** order by stddev_samp() on columns of table "listings" */ +export type Listings_Stddev_Samp_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + end_price?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe +} + +/** aggregate sum on columns */ +export type Listings_Sum_Fields = { + __typename?: 'listings_sum_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + end_price?: Maybe + offer_id?: Maybe + price?: Maybe + start_price?: Maybe + swap_id?: Maybe +} + +/** order by sum() on columns of table "listings" */ +export type Listings_Sum_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + end_price?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe +} + +/** aggregate var_pop on columns */ +export type Listings_Var_Pop_Fields = { + __typename?: 'listings_var_pop_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + end_price?: Maybe + offer_id?: Maybe + price?: Maybe + start_price?: Maybe + swap_id?: Maybe +} + +/** order by var_pop() on columns of table "listings" */ +export type Listings_Var_Pop_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + end_price?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe +} + +/** aggregate var_samp on columns */ +export type Listings_Var_Samp_Fields = { + __typename?: 'listings_var_samp_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + end_price?: Maybe + offer_id?: Maybe + price?: Maybe + start_price?: Maybe + swap_id?: Maybe +} + +/** order by var_samp() on columns of table "listings" */ +export type Listings_Var_Samp_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + end_price?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe +} + +/** aggregate variance on columns */ +export type Listings_Variance_Fields = { + __typename?: 'listings_variance_fields' + amount?: Maybe + amount_left?: Maybe + ask_id?: Maybe + end_price?: Maybe + offer_id?: Maybe + price?: Maybe + start_price?: Maybe + swap_id?: Maybe +} + +/** order by variance() on columns of table "listings" */ +export type Listings_Variance_Order_By = { + amount?: InputMaybe + amount_left?: InputMaybe + ask_id?: InputMaybe + end_price?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + start_price?: InputMaybe + swap_id?: InputMaybe +} + +/** columns and relationships of "offers" */ +export type Offers = { + __typename?: 'offers' + amount?: Maybe + bid_id?: Maybe + buyer_address: Scalars['String'] + contract_address: Scalars['String'] + created_at: Scalars['timestamptz'] + currency?: Maybe + fa2_address: Scalars['String'] + offer_id?: Maybe + price: Scalars['bigint'] + status: Scalars['String'] + /** An object relationship */ + token?: Maybe + token_id: Scalars['String'] + type: Scalars['String'] +} + +/** aggregated selection of "offers" */ +export type Offers_Aggregate = { + __typename?: 'offers_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "offers" */ +export type Offers_Aggregate_Fields = { + __typename?: 'offers_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "offers" */ +export type Offers_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** order by aggregate values of table "offers" */ +export type Offers_Aggregate_Order_By = { + avg?: InputMaybe + count?: InputMaybe + max?: InputMaybe + min?: InputMaybe + stddev?: InputMaybe + stddev_pop?: InputMaybe + stddev_samp?: InputMaybe + sum?: InputMaybe + var_pop?: InputMaybe + var_samp?: InputMaybe + variance?: InputMaybe +} + +/** aggregate avg on columns */ +export type Offers_Avg_Fields = { + __typename?: 'offers_avg_fields' + amount?: Maybe + bid_id?: Maybe + offer_id?: Maybe + price?: Maybe +} + +/** order by avg() on columns of table "offers" */ +export type Offers_Avg_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe +} + +/** Boolean expression to filter rows from the table "offers". All fields are combined with a logical 'AND'. */ +export type Offers_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + amount?: InputMaybe + bid_id?: InputMaybe + buyer_address?: InputMaybe + contract_address?: InputMaybe + created_at?: InputMaybe + currency?: InputMaybe + fa2_address?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + status?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe + type?: InputMaybe +} + +/** aggregate max on columns */ +export type Offers_Max_Fields = { + __typename?: 'offers_max_fields' + amount?: Maybe + bid_id?: Maybe + buyer_address?: Maybe + contract_address?: Maybe + created_at?: Maybe + currency?: Maybe + fa2_address?: Maybe + offer_id?: Maybe + price?: Maybe + status?: Maybe + token_id?: Maybe + type?: Maybe +} + +/** order by max() on columns of table "offers" */ +export type Offers_Max_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + buyer_address?: InputMaybe + contract_address?: InputMaybe + created_at?: InputMaybe + currency?: InputMaybe + fa2_address?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + status?: InputMaybe + token_id?: InputMaybe + type?: InputMaybe +} + +/** aggregate min on columns */ +export type Offers_Min_Fields = { + __typename?: 'offers_min_fields' + amount?: Maybe + bid_id?: Maybe + buyer_address?: Maybe + contract_address?: Maybe + created_at?: Maybe + currency?: Maybe + fa2_address?: Maybe + offer_id?: Maybe + price?: Maybe + status?: Maybe + token_id?: Maybe + type?: Maybe +} + +/** order by min() on columns of table "offers" */ +export type Offers_Min_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + buyer_address?: InputMaybe + contract_address?: InputMaybe + created_at?: InputMaybe + currency?: InputMaybe + fa2_address?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + status?: InputMaybe + token_id?: InputMaybe + type?: InputMaybe +} + +/** Ordering options when selecting data from "offers". */ +export type Offers_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + buyer_address?: InputMaybe + contract_address?: InputMaybe + created_at?: InputMaybe + currency?: InputMaybe + fa2_address?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe + status?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe + type?: InputMaybe +} + +/** select columns of table "offers" */ +export enum Offers_Select_Column { + /** column name */ + Amount = 'amount', + /** column name */ + BidId = 'bid_id', + /** column name */ + BuyerAddress = 'buyer_address', + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + CreatedAt = 'created_at', + /** column name */ + Currency = 'currency', + /** column name */ + Fa2Address = 'fa2_address', + /** column name */ + OfferId = 'offer_id', + /** column name */ + Price = 'price', + /** column name */ + Status = 'status', + /** column name */ + TokenId = 'token_id', + /** column name */ + Type = 'type', +} + +/** aggregate stddev on columns */ +export type Offers_Stddev_Fields = { + __typename?: 'offers_stddev_fields' + amount?: Maybe + bid_id?: Maybe + offer_id?: Maybe + price?: Maybe +} + +/** order by stddev() on columns of table "offers" */ +export type Offers_Stddev_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe +} + +/** aggregate stddev_pop on columns */ +export type Offers_Stddev_Pop_Fields = { + __typename?: 'offers_stddev_pop_fields' + amount?: Maybe + bid_id?: Maybe + offer_id?: Maybe + price?: Maybe +} + +/** order by stddev_pop() on columns of table "offers" */ +export type Offers_Stddev_Pop_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe +} + +/** aggregate stddev_samp on columns */ +export type Offers_Stddev_Samp_Fields = { + __typename?: 'offers_stddev_samp_fields' + amount?: Maybe + bid_id?: Maybe + offer_id?: Maybe + price?: Maybe +} + +/** order by stddev_samp() on columns of table "offers" */ +export type Offers_Stddev_Samp_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe +} + +/** aggregate sum on columns */ +export type Offers_Sum_Fields = { + __typename?: 'offers_sum_fields' + amount?: Maybe + bid_id?: Maybe + offer_id?: Maybe + price?: Maybe +} + +/** order by sum() on columns of table "offers" */ +export type Offers_Sum_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe +} + +/** aggregate var_pop on columns */ +export type Offers_Var_Pop_Fields = { + __typename?: 'offers_var_pop_fields' + amount?: Maybe + bid_id?: Maybe + offer_id?: Maybe + price?: Maybe +} + +/** order by var_pop() on columns of table "offers" */ +export type Offers_Var_Pop_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe +} + +/** aggregate var_samp on columns */ +export type Offers_Var_Samp_Fields = { + __typename?: 'offers_var_samp_fields' + amount?: Maybe + bid_id?: Maybe + offer_id?: Maybe + price?: Maybe +} + +/** order by var_samp() on columns of table "offers" */ +export type Offers_Var_Samp_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe +} + +/** aggregate variance on columns */ +export type Offers_Variance_Fields = { + __typename?: 'offers_variance_fields' + amount?: Maybe + bid_id?: Maybe + offer_id?: Maybe + price?: Maybe +} + +/** order by variance() on columns of table "offers" */ +export type Offers_Variance_Order_By = { + amount?: InputMaybe + bid_id?: InputMaybe + offer_id?: InputMaybe + price?: InputMaybe +} + +/** column ordering options */ +export enum Order_By { + /** in ascending order, nulls last */ + Asc = 'asc', + /** in ascending order, nulls first */ + AscNullsFirst = 'asc_nulls_first', + /** in ascending order, nulls last */ + AscNullsLast = 'asc_nulls_last', + /** in descending order, nulls first */ + Desc = 'desc', + /** in descending order, nulls first */ + DescNullsFirst = 'desc_nulls_first', + /** in descending order, nulls last */ + DescNullsLast = 'desc_nulls_last', +} + +export type Query_Root = { + __typename?: 'query_root' + /** fetch data from the table: "dipdup_contract" */ + dipdup_contract: Array + /** fetch aggregated fields from the table: "dipdup_contract" */ + dipdup_contract_aggregate: Dipdup_Contract_Aggregate + /** fetch data from the table: "dipdup_contract" using primary key columns */ + dipdup_contract_by_pk?: Maybe + /** fetch data from the table: "dipdup_contract_metadata" */ + dipdup_contract_metadata: Array + /** fetch aggregated fields from the table: "dipdup_contract_metadata" */ + dipdup_contract_metadata_aggregate: Dipdup_Contract_Metadata_Aggregate + /** fetch data from the table: "dipdup_contract_metadata" using primary key columns */ + dipdup_contract_metadata_by_pk?: Maybe + /** fetch data from the table: "dipdup_head" */ + dipdup_head: Array + /** fetch aggregated fields from the table: "dipdup_head" */ + dipdup_head_aggregate: Dipdup_Head_Aggregate + /** fetch data from the table: "dipdup_head" using primary key columns */ + dipdup_head_by_pk?: Maybe + /** fetch data from the table: "dipdup_head_status" */ + dipdup_head_status: Array + /** fetch aggregated fields from the table: "dipdup_head_status" */ + dipdup_head_status_aggregate: Dipdup_Head_Status_Aggregate + /** fetch data from the table: "dipdup_index" */ + dipdup_index: Array + /** fetch aggregated fields from the table: "dipdup_index" */ + dipdup_index_aggregate: Dipdup_Index_Aggregate + /** fetch data from the table: "dipdup_index" using primary key columns */ + dipdup_index_by_pk?: Maybe + /** fetch data from the table: "dipdup_model_update" */ + dipdup_model_update: Array + /** fetch aggregated fields from the table: "dipdup_model_update" */ + dipdup_model_update_aggregate: Dipdup_Model_Update_Aggregate + /** fetch data from the table: "dipdup_model_update" using primary key columns */ + dipdup_model_update_by_pk?: Maybe + /** fetch data from the table: "dipdup_schema" */ + dipdup_schema: Array + /** fetch aggregated fields from the table: "dipdup_schema" */ + dipdup_schema_aggregate: Dipdup_Schema_Aggregate + /** fetch data from the table: "dipdup_schema" using primary key columns */ + dipdup_schema_by_pk?: Maybe + /** fetch data from the table: "dipdup_token_metadata" */ + dipdup_token_metadata: Array + /** fetch aggregated fields from the table: "dipdup_token_metadata" */ + dipdup_token_metadata_aggregate: Dipdup_Token_Metadata_Aggregate + /** fetch data from the table: "dipdup_token_metadata" using primary key columns */ + dipdup_token_metadata_by_pk?: Maybe + /** An array relationship */ + events: Array + /** An aggregate relationship */ + events_aggregate: Events_Aggregate + /** fetch data from the table: "events" using primary key columns */ + events_by_pk?: Maybe + /** An array relationship */ + holdings: Array + /** An aggregate relationship */ + holdings_aggregate: Holdings_Aggregate + /** fetch data from the table: "holdings" using primary key columns */ + holdings_by_pk?: Maybe + /** An array relationship */ + listings: Array + /** An aggregate relationship */ + listings_aggregate: Listings_Aggregate + /** An array relationship */ + offers: Array + /** An aggregate relationship */ + offers_aggregate: Offers_Aggregate + /** An array relationship */ + royalty_receivers: Array + /** fetch data from the table: "royalty_receivers" using primary key columns */ + royalty_receivers_by_pk?: Maybe + /** An array relationship */ + tags: Array + /** fetch data from the table: "tags" using primary key columns */ + tags_by_pk?: Maybe + /** fetch data from the table: "teia_shareholders" */ + teia_shareholders: Array + /** fetch data from the table: "teia_shareholders" using primary key columns */ + teia_shareholders_by_pk?: Maybe + /** fetch data from the table: "teia_signatures" */ + teia_signatures: Array + /** fetch data from the table: "teia_signatures" using primary key columns */ + teia_signatures_by_pk?: Maybe + /** fetch data from the table: "teia_split_contracts" */ + teia_split_contracts: Array + /** fetch data from the table: "teia_split_contracts" using primary key columns */ + teia_split_contracts_by_pk?: Maybe + /** fetch data from the table: "teia_tokens_meta" */ + teia_tokens_meta: Array + /** fetch data from the table: "teia_tokens_meta" using primary key columns */ + teia_tokens_meta_by_pk?: Maybe + /** fetch data from the table: "teia_users" */ + teia_users: Array + /** fetch data from the table: "teia_users" using primary key columns */ + teia_users_by_pk?: Maybe + /** fetch data from the table: "token_metadata" */ + token_metadata: Array + /** fetch data from the table: "tokens" */ + tokens: Array + /** fetch aggregated fields from the table: "tokens" */ + tokens_aggregate: Tokens_Aggregate + /** fetch data from the table: "tokens" using primary key columns */ + tokens_by_pk?: Maybe + /** fetch data from the table: "tzprofiles" */ + tzprofiles: Array + /** fetch aggregated fields from the table: "tzprofiles" */ + tzprofiles_aggregate: Tzprofiles_Aggregate + /** fetch data from the table: "tzprofiles" using primary key columns */ + tzprofiles_by_pk?: Maybe +} + +export type Query_RootDipdup_ContractArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Contract_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Contract_By_PkArgs = { + name: Scalars['String'] +} + +export type Query_RootDipdup_Contract_MetadataArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Contract_Metadata_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Contract_Metadata_By_PkArgs = { + id: Scalars['Int'] +} + +export type Query_RootDipdup_HeadArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Head_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Head_By_PkArgs = { + name: Scalars['String'] +} + +export type Query_RootDipdup_Head_StatusArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Head_Status_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_IndexArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Index_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Index_By_PkArgs = { + name: Scalars['String'] +} + +export type Query_RootDipdup_Model_UpdateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Model_Update_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Model_Update_By_PkArgs = { + id: Scalars['Int'] +} + +export type Query_RootDipdup_SchemaArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Schema_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Schema_By_PkArgs = { + name: Scalars['String'] +} + +export type Query_RootDipdup_Token_MetadataArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Token_Metadata_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootDipdup_Token_Metadata_By_PkArgs = { + id: Scalars['Int'] +} + +export type Query_RootEventsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootEvents_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootEvents_By_PkArgs = { + id: Scalars['String'] +} + +export type Query_RootHoldingsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootHoldings_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootHoldings_By_PkArgs = { + fa2_address: Scalars['String'] + holder_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Query_RootListingsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootListings_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootOffersArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootOffers_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootRoyalty_ReceiversArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootRoyalty_Receivers_By_PkArgs = { + fa2_address: Scalars['String'] + receiver_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Query_RootTagsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTags_By_PkArgs = { + fa2_address: Scalars['String'] + tag: Scalars['String'] + token_id: Scalars['String'] +} + +export type Query_RootTeia_ShareholdersArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTeia_Shareholders_By_PkArgs = { + contract_address: Scalars['String'] + holder_type: Scalars['String'] + shareholder_address: Scalars['String'] +} + +export type Query_RootTeia_SignaturesArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTeia_Signatures_By_PkArgs = { + fa2_address: Scalars['String'] + shareholder_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Query_RootTeia_Split_ContractsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTeia_Split_Contracts_By_PkArgs = { + contract_address: Scalars['String'] +} + +export type Query_RootTeia_Tokens_MetaArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTeia_Tokens_Meta_By_PkArgs = { + fa2_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Query_RootTeia_UsersArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTeia_Users_By_PkArgs = { + user_address: Scalars['String'] +} + +export type Query_RootToken_MetadataArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTokensArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTokens_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTokens_By_PkArgs = { + fa2_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Query_RootTzprofilesArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTzprofiles_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Query_RootTzprofiles_By_PkArgs = { + account: Scalars['String'] +} + +/** columns and relationships of "royalty_receivers" */ +export type Royalty_Receivers = { + __typename?: 'royalty_receivers' + fa2_address: Scalars['String'] + receiver_address: Scalars['String'] + royalties: Scalars['bigint'] + /** An object relationship */ + token?: Maybe + token_id: Scalars['String'] +} + +/** order by aggregate values of table "royalty_receivers" */ +export type Royalty_Receivers_Aggregate_Order_By = { + avg?: InputMaybe + count?: InputMaybe + max?: InputMaybe + min?: InputMaybe + stddev?: InputMaybe + stddev_pop?: InputMaybe + stddev_samp?: InputMaybe + sum?: InputMaybe + var_pop?: InputMaybe + var_samp?: InputMaybe + variance?: InputMaybe +} + +/** order by avg() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Avg_Order_By = { + royalties?: InputMaybe +} + +/** Boolean expression to filter rows from the table "royalty_receivers". All fields are combined with a logical 'AND'. */ +export type Royalty_Receivers_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + fa2_address?: InputMaybe + receiver_address?: InputMaybe + royalties?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe +} + +/** order by max() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Max_Order_By = { + fa2_address?: InputMaybe + receiver_address?: InputMaybe + royalties?: InputMaybe + token_id?: InputMaybe +} + +/** order by min() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Min_Order_By = { + fa2_address?: InputMaybe + receiver_address?: InputMaybe + royalties?: InputMaybe + token_id?: InputMaybe +} + +/** Ordering options when selecting data from "royalty_receivers". */ +export type Royalty_Receivers_Order_By = { + fa2_address?: InputMaybe + receiver_address?: InputMaybe + royalties?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe +} + +/** select columns of table "royalty_receivers" */ +export enum Royalty_Receivers_Select_Column { + /** column name */ + Fa2Address = 'fa2_address', + /** column name */ + ReceiverAddress = 'receiver_address', + /** column name */ + Royalties = 'royalties', + /** column name */ + TokenId = 'token_id', +} + +/** order by stddev() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Stddev_Order_By = { + royalties?: InputMaybe +} + +/** order by stddev_pop() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Stddev_Pop_Order_By = { + royalties?: InputMaybe +} + +/** order by stddev_samp() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Stddev_Samp_Order_By = { + royalties?: InputMaybe +} + +/** order by sum() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Sum_Order_By = { + royalties?: InputMaybe +} + +/** order by var_pop() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Var_Pop_Order_By = { + royalties?: InputMaybe +} + +/** order by var_samp() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Var_Samp_Order_By = { + royalties?: InputMaybe +} + +/** order by variance() on columns of table "royalty_receivers" */ +export type Royalty_Receivers_Variance_Order_By = { + royalties?: InputMaybe +} + +export type Subscription_Root = { + __typename?: 'subscription_root' + /** fetch data from the table: "dipdup_contract" */ + dipdup_contract: Array + /** fetch aggregated fields from the table: "dipdup_contract" */ + dipdup_contract_aggregate: Dipdup_Contract_Aggregate + /** fetch data from the table: "dipdup_contract" using primary key columns */ + dipdup_contract_by_pk?: Maybe + /** fetch data from the table: "dipdup_contract_metadata" */ + dipdup_contract_metadata: Array + /** fetch aggregated fields from the table: "dipdup_contract_metadata" */ + dipdup_contract_metadata_aggregate: Dipdup_Contract_Metadata_Aggregate + /** fetch data from the table: "dipdup_contract_metadata" using primary key columns */ + dipdup_contract_metadata_by_pk?: Maybe + /** fetch data from the table in a streaming manner: "dipdup_contract_metadata" */ + dipdup_contract_metadata_stream: Array + /** fetch data from the table in a streaming manner: "dipdup_contract" */ + dipdup_contract_stream: Array + /** fetch data from the table: "dipdup_head" */ + dipdup_head: Array + /** fetch aggregated fields from the table: "dipdup_head" */ + dipdup_head_aggregate: Dipdup_Head_Aggregate + /** fetch data from the table: "dipdup_head" using primary key columns */ + dipdup_head_by_pk?: Maybe + /** fetch data from the table: "dipdup_head_status" */ + dipdup_head_status: Array + /** fetch aggregated fields from the table: "dipdup_head_status" */ + dipdup_head_status_aggregate: Dipdup_Head_Status_Aggregate + /** fetch data from the table in a streaming manner: "dipdup_head_status" */ + dipdup_head_status_stream: Array + /** fetch data from the table in a streaming manner: "dipdup_head" */ + dipdup_head_stream: Array + /** fetch data from the table: "dipdup_index" */ + dipdup_index: Array + /** fetch aggregated fields from the table: "dipdup_index" */ + dipdup_index_aggregate: Dipdup_Index_Aggregate + /** fetch data from the table: "dipdup_index" using primary key columns */ + dipdup_index_by_pk?: Maybe + /** fetch data from the table in a streaming manner: "dipdup_index" */ + dipdup_index_stream: Array + /** fetch data from the table: "dipdup_model_update" */ + dipdup_model_update: Array + /** fetch aggregated fields from the table: "dipdup_model_update" */ + dipdup_model_update_aggregate: Dipdup_Model_Update_Aggregate + /** fetch data from the table: "dipdup_model_update" using primary key columns */ + dipdup_model_update_by_pk?: Maybe + /** fetch data from the table in a streaming manner: "dipdup_model_update" */ + dipdup_model_update_stream: Array + /** fetch data from the table: "dipdup_schema" */ + dipdup_schema: Array + /** fetch aggregated fields from the table: "dipdup_schema" */ + dipdup_schema_aggregate: Dipdup_Schema_Aggregate + /** fetch data from the table: "dipdup_schema" using primary key columns */ + dipdup_schema_by_pk?: Maybe + /** fetch data from the table in a streaming manner: "dipdup_schema" */ + dipdup_schema_stream: Array + /** fetch data from the table: "dipdup_token_metadata" */ + dipdup_token_metadata: Array + /** fetch aggregated fields from the table: "dipdup_token_metadata" */ + dipdup_token_metadata_aggregate: Dipdup_Token_Metadata_Aggregate + /** fetch data from the table: "dipdup_token_metadata" using primary key columns */ + dipdup_token_metadata_by_pk?: Maybe + /** fetch data from the table in a streaming manner: "dipdup_token_metadata" */ + dipdup_token_metadata_stream: Array + /** An array relationship */ + events: Array + /** An aggregate relationship */ + events_aggregate: Events_Aggregate + /** fetch data from the table: "events" using primary key columns */ + events_by_pk?: Maybe + /** An array relationship */ + holdings: Array + /** An aggregate relationship */ + holdings_aggregate: Holdings_Aggregate + /** fetch data from the table: "holdings" using primary key columns */ + holdings_by_pk?: Maybe + /** An array relationship */ + listings: Array + /** An aggregate relationship */ + listings_aggregate: Listings_Aggregate + /** An array relationship */ + offers: Array + /** An aggregate relationship */ + offers_aggregate: Offers_Aggregate + /** An array relationship */ + royalty_receivers: Array + /** fetch data from the table: "royalty_receivers" using primary key columns */ + royalty_receivers_by_pk?: Maybe + /** An array relationship */ + tags: Array + /** fetch data from the table: "tags" using primary key columns */ + tags_by_pk?: Maybe + /** fetch data from the table: "teia_shareholders" */ + teia_shareholders: Array + /** fetch data from the table: "teia_shareholders" using primary key columns */ + teia_shareholders_by_pk?: Maybe + /** fetch data from the table: "teia_signatures" */ + teia_signatures: Array + /** fetch data from the table: "teia_signatures" using primary key columns */ + teia_signatures_by_pk?: Maybe + /** fetch data from the table: "teia_split_contracts" */ + teia_split_contracts: Array + /** fetch data from the table: "teia_split_contracts" using primary key columns */ + teia_split_contracts_by_pk?: Maybe + /** fetch data from the table: "teia_tokens_meta" */ + teia_tokens_meta: Array + /** fetch data from the table: "teia_tokens_meta" using primary key columns */ + teia_tokens_meta_by_pk?: Maybe + /** fetch data from the table: "teia_users" */ + teia_users: Array + /** fetch data from the table: "teia_users" using primary key columns */ + teia_users_by_pk?: Maybe + /** fetch data from the table: "token_metadata" */ + token_metadata: Array + /** fetch data from the table: "tokens" */ + tokens: Array + /** fetch aggregated fields from the table: "tokens" */ + tokens_aggregate: Tokens_Aggregate + /** fetch data from the table: "tokens" using primary key columns */ + tokens_by_pk?: Maybe + /** fetch data from the table: "tzprofiles" */ + tzprofiles: Array + /** fetch aggregated fields from the table: "tzprofiles" */ + tzprofiles_aggregate: Tzprofiles_Aggregate + /** fetch data from the table: "tzprofiles" using primary key columns */ + tzprofiles_by_pk?: Maybe + /** fetch data from the table in a streaming manner: "tzprofiles" */ + tzprofiles_stream: Array +} + +export type Subscription_RootDipdup_ContractArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Contract_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Contract_By_PkArgs = { + name: Scalars['String'] +} + +export type Subscription_RootDipdup_Contract_MetadataArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Contract_Metadata_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Contract_Metadata_By_PkArgs = { + id: Scalars['Int'] +} + +export type Subscription_RootDipdup_Contract_Metadata_StreamArgs = { + batch_size: Scalars['Int'] + cursor: Array> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Contract_StreamArgs = { + batch_size: Scalars['Int'] + cursor: Array> + where?: InputMaybe +} + +export type Subscription_RootDipdup_HeadArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Head_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Head_By_PkArgs = { + name: Scalars['String'] +} + +export type Subscription_RootDipdup_Head_StatusArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Head_Status_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Head_Status_StreamArgs = { + batch_size: Scalars['Int'] + cursor: Array> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Head_StreamArgs = { + batch_size: Scalars['Int'] + cursor: Array> + where?: InputMaybe +} + +export type Subscription_RootDipdup_IndexArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Index_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Index_By_PkArgs = { + name: Scalars['String'] +} + +export type Subscription_RootDipdup_Index_StreamArgs = { + batch_size: Scalars['Int'] + cursor: Array> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Model_UpdateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Model_Update_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Model_Update_By_PkArgs = { + id: Scalars['Int'] +} + +export type Subscription_RootDipdup_Model_Update_StreamArgs = { + batch_size: Scalars['Int'] + cursor: Array> + where?: InputMaybe +} + +export type Subscription_RootDipdup_SchemaArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Schema_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Schema_By_PkArgs = { + name: Scalars['String'] +} + +export type Subscription_RootDipdup_Schema_StreamArgs = { + batch_size: Scalars['Int'] + cursor: Array> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Token_MetadataArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Token_Metadata_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootDipdup_Token_Metadata_By_PkArgs = { + id: Scalars['Int'] +} + +export type Subscription_RootDipdup_Token_Metadata_StreamArgs = { + batch_size: Scalars['Int'] + cursor: Array> + where?: InputMaybe +} + +export type Subscription_RootEventsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootEvents_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootEvents_By_PkArgs = { + id: Scalars['String'] +} + +export type Subscription_RootHoldingsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootHoldings_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootHoldings_By_PkArgs = { + fa2_address: Scalars['String'] + holder_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Subscription_RootListingsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootListings_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootOffersArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootOffers_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootRoyalty_ReceiversArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootRoyalty_Receivers_By_PkArgs = { + fa2_address: Scalars['String'] + receiver_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Subscription_RootTagsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTags_By_PkArgs = { + fa2_address: Scalars['String'] + tag: Scalars['String'] + token_id: Scalars['String'] +} + +export type Subscription_RootTeia_ShareholdersArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTeia_Shareholders_By_PkArgs = { + contract_address: Scalars['String'] + holder_type: Scalars['String'] + shareholder_address: Scalars['String'] +} + +export type Subscription_RootTeia_SignaturesArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTeia_Signatures_By_PkArgs = { + fa2_address: Scalars['String'] + shareholder_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Subscription_RootTeia_Split_ContractsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTeia_Split_Contracts_By_PkArgs = { + contract_address: Scalars['String'] +} + +export type Subscription_RootTeia_Tokens_MetaArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTeia_Tokens_Meta_By_PkArgs = { + fa2_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Subscription_RootTeia_UsersArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTeia_Users_By_PkArgs = { + user_address: Scalars['String'] +} + +export type Subscription_RootToken_MetadataArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTokensArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTokens_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTokens_By_PkArgs = { + fa2_address: Scalars['String'] + token_id: Scalars['String'] +} + +export type Subscription_RootTzprofilesArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTzprofiles_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +export type Subscription_RootTzprofiles_By_PkArgs = { + account: Scalars['String'] +} + +export type Subscription_RootTzprofiles_StreamArgs = { + batch_size: Scalars['Int'] + cursor: Array> + where?: InputMaybe +} + +/** columns and relationships of "tags" */ +export type Tags = { + __typename?: 'tags' + fa2_address: Scalars['String'] + tag: Scalars['String'] + /** An object relationship */ + token?: Maybe + token_id: Scalars['String'] +} + +/** order by aggregate values of table "tags" */ +export type Tags_Aggregate_Order_By = { + count?: InputMaybe + max?: InputMaybe + min?: InputMaybe +} + +/** Boolean expression to filter rows from the table "tags". All fields are combined with a logical 'AND'. */ +export type Tags_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + fa2_address?: InputMaybe + tag?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe +} + +/** order by max() on columns of table "tags" */ +export type Tags_Max_Order_By = { + fa2_address?: InputMaybe + tag?: InputMaybe + token_id?: InputMaybe +} + +/** order by min() on columns of table "tags" */ +export type Tags_Min_Order_By = { + fa2_address?: InputMaybe + tag?: InputMaybe + token_id?: InputMaybe +} + +/** Ordering options when selecting data from "tags". */ +export type Tags_Order_By = { + fa2_address?: InputMaybe + tag?: InputMaybe + token?: InputMaybe + token_id?: InputMaybe +} + +/** select columns of table "tags" */ +export enum Tags_Select_Column { + /** column name */ + Fa2Address = 'fa2_address', + /** column name */ + Tag = 'tag', + /** column name */ + TokenId = 'token_id', +} + +/** columns and relationships of "teia_shareholders" */ +export type Teia_Shareholders = { + __typename?: 'teia_shareholders' + contract_address: Scalars['String'] + holder_type: Scalars['String'] + shareholder_address: Scalars['String'] + /** An object relationship */ + shareholder_profile?: Maybe + shares?: Maybe + /** An array relationship */ + signatures: Array + /** An object relationship */ + split_contract?: Maybe +} + +/** columns and relationships of "teia_shareholders" */ +export type Teia_ShareholdersSignaturesArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** order by aggregate values of table "teia_shareholders" */ +export type Teia_Shareholders_Aggregate_Order_By = { + avg?: InputMaybe + count?: InputMaybe + max?: InputMaybe + min?: InputMaybe + stddev?: InputMaybe + stddev_pop?: InputMaybe + stddev_samp?: InputMaybe + sum?: InputMaybe + var_pop?: InputMaybe + var_samp?: InputMaybe + variance?: InputMaybe +} + +/** order by avg() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Avg_Order_By = { + shares?: InputMaybe +} + +/** Boolean expression to filter rows from the table "teia_shareholders". All fields are combined with a logical 'AND'. */ +export type Teia_Shareholders_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + contract_address?: InputMaybe + holder_type?: InputMaybe + shareholder_address?: InputMaybe + shareholder_profile?: InputMaybe + shares?: InputMaybe + signatures?: InputMaybe + split_contract?: InputMaybe +} + +/** order by max() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Max_Order_By = { + contract_address?: InputMaybe + holder_type?: InputMaybe + shareholder_address?: InputMaybe + shares?: InputMaybe +} + +/** order by min() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Min_Order_By = { + contract_address?: InputMaybe + holder_type?: InputMaybe + shareholder_address?: InputMaybe + shares?: InputMaybe +} + +/** Ordering options when selecting data from "teia_shareholders". */ +export type Teia_Shareholders_Order_By = { + contract_address?: InputMaybe + holder_type?: InputMaybe + shareholder_address?: InputMaybe + shareholder_profile?: InputMaybe + shares?: InputMaybe + signatures_aggregate?: InputMaybe + split_contract?: InputMaybe +} + +/** select columns of table "teia_shareholders" */ +export enum Teia_Shareholders_Select_Column { + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + HolderType = 'holder_type', + /** column name */ + ShareholderAddress = 'shareholder_address', + /** column name */ + Shares = 'shares', +} + +/** order by stddev() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Stddev_Order_By = { + shares?: InputMaybe +} + +/** order by stddev_pop() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Stddev_Pop_Order_By = { + shares?: InputMaybe +} + +/** order by stddev_samp() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Stddev_Samp_Order_By = { + shares?: InputMaybe +} + +/** order by sum() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Sum_Order_By = { + shares?: InputMaybe +} + +/** order by var_pop() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Var_Pop_Order_By = { + shares?: InputMaybe +} + +/** order by var_samp() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Var_Samp_Order_By = { + shares?: InputMaybe +} + +/** order by variance() on columns of table "teia_shareholders" */ +export type Teia_Shareholders_Variance_Order_By = { + shares?: InputMaybe +} + +/** columns and relationships of "teia_signatures" */ +export type Teia_Signatures = { + __typename?: 'teia_signatures' + fa2_address: Scalars['String'] + shareholder_address: Scalars['String'] + token_id: Scalars['String'] +} + +/** order by aggregate values of table "teia_signatures" */ +export type Teia_Signatures_Aggregate_Order_By = { + count?: InputMaybe + max?: InputMaybe + min?: InputMaybe +} + +/** Boolean expression to filter rows from the table "teia_signatures". All fields are combined with a logical 'AND'. */ +export type Teia_Signatures_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + fa2_address?: InputMaybe + shareholder_address?: InputMaybe + token_id?: InputMaybe +} + +/** order by max() on columns of table "teia_signatures" */ +export type Teia_Signatures_Max_Order_By = { + fa2_address?: InputMaybe + shareholder_address?: InputMaybe + token_id?: InputMaybe +} + +/** order by min() on columns of table "teia_signatures" */ +export type Teia_Signatures_Min_Order_By = { + fa2_address?: InputMaybe + shareholder_address?: InputMaybe + token_id?: InputMaybe +} + +/** Ordering options when selecting data from "teia_signatures". */ +export type Teia_Signatures_Order_By = { + fa2_address?: InputMaybe + shareholder_address?: InputMaybe + token_id?: InputMaybe +} + +/** select columns of table "teia_signatures" */ +export enum Teia_Signatures_Select_Column { + /** column name */ + Fa2Address = 'fa2_address', + /** column name */ + ShareholderAddress = 'shareholder_address', + /** column name */ + TokenId = 'token_id', +} + +/** columns and relationships of "teia_split_contracts" */ +export type Teia_Split_Contracts = { + __typename?: 'teia_split_contracts' + administrator_address: Scalars['String'] + contract_address: Scalars['String'] + /** An object relationship */ + contract_profile?: Maybe + /** An array relationship */ + created_tokens: Array + /** An aggregate relationship */ + created_tokens_aggregate: Tokens_Aggregate + /** An array relationship */ + shareholders: Array + total_shares?: Maybe +} + +/** columns and relationships of "teia_split_contracts" */ +export type Teia_Split_ContractsCreated_TokensArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "teia_split_contracts" */ +export type Teia_Split_ContractsCreated_Tokens_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "teia_split_contracts" */ +export type Teia_Split_ContractsShareholdersArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** Boolean expression to filter rows from the table "teia_split_contracts". All fields are combined with a logical 'AND'. */ +export type Teia_Split_Contracts_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + administrator_address?: InputMaybe + contract_address?: InputMaybe + contract_profile?: InputMaybe + created_tokens?: InputMaybe + shareholders?: InputMaybe + total_shares?: InputMaybe +} + +/** Ordering options when selecting data from "teia_split_contracts". */ +export type Teia_Split_Contracts_Order_By = { + administrator_address?: InputMaybe + contract_address?: InputMaybe + contract_profile?: InputMaybe + created_tokens_aggregate?: InputMaybe + shareholders_aggregate?: InputMaybe + total_shares?: InputMaybe +} + +/** select columns of table "teia_split_contracts" */ +export enum Teia_Split_Contracts_Select_Column { + /** column name */ + AdministratorAddress = 'administrator_address', + /** column name */ + ContractAddress = 'contract_address', + /** column name */ + TotalShares = 'total_shares', +} + +/** columns and relationships of "teia_tokens_meta" */ +export type Teia_Tokens_Meta = { + __typename?: 'teia_tokens_meta' + accessibility?: Maybe + content_rating?: Maybe + fa2_address: Scalars['String'] + is_signed: Scalars['Boolean'] + preview_uri?: Maybe + token_id: Scalars['String'] +} + +/** columns and relationships of "teia_tokens_meta" */ +export type Teia_Tokens_MetaAccessibilityArgs = { + path?: InputMaybe +} + +/** Boolean expression to filter rows from the table "teia_tokens_meta". All fields are combined with a logical 'AND'. */ +export type Teia_Tokens_Meta_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + accessibility?: InputMaybe + content_rating?: InputMaybe + fa2_address?: InputMaybe + is_signed?: InputMaybe + preview_uri?: InputMaybe + token_id?: InputMaybe +} + +/** Ordering options when selecting data from "teia_tokens_meta". */ +export type Teia_Tokens_Meta_Order_By = { + accessibility?: InputMaybe + content_rating?: InputMaybe + fa2_address?: InputMaybe + is_signed?: InputMaybe + preview_uri?: InputMaybe + token_id?: InputMaybe +} + +/** select columns of table "teia_tokens_meta" */ +export enum Teia_Tokens_Meta_Select_Column { + /** column name */ + Accessibility = 'accessibility', + /** column name */ + ContentRating = 'content_rating', + /** column name */ + Fa2Address = 'fa2_address', + /** column name */ + IsSigned = 'is_signed', + /** column name */ + PreviewUri = 'preview_uri', + /** column name */ + TokenId = 'token_id', +} + +/** columns and relationships of "teia_users" */ +export type Teia_Users = { + __typename?: 'teia_users' + is_split?: Maybe + /** An object relationship */ + metadata?: Maybe + metadata_uri?: Maybe + name?: Maybe + /** An object relationship */ + split_contract?: Maybe + user_address: Scalars['String'] +} + +/** Boolean expression to filter rows from the table "teia_users". All fields are combined with a logical 'AND'. */ +export type Teia_Users_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + is_split?: InputMaybe + metadata?: InputMaybe + metadata_uri?: InputMaybe + name?: InputMaybe + split_contract?: InputMaybe + user_address?: InputMaybe +} + +/** Ordering options when selecting data from "teia_users". */ +export type Teia_Users_Order_By = { + is_split?: InputMaybe + metadata?: InputMaybe + metadata_uri?: InputMaybe + name?: InputMaybe + split_contract?: InputMaybe + user_address?: InputMaybe +} + +/** select columns of table "teia_users" */ +export enum Teia_Users_Select_Column { + /** column name */ + IsSplit = 'is_split', + /** column name */ + MetadataUri = 'metadata_uri', + /** column name */ + Name = 'name', + /** column name */ + UserAddress = 'user_address', +} + +/** Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. */ +export type Timestamptz_Comparison_Exp = { + _eq?: InputMaybe + _gt?: InputMaybe + _gte?: InputMaybe + _in?: InputMaybe> + _is_null?: InputMaybe + _lt?: InputMaybe + _lte?: InputMaybe + _neq?: InputMaybe + _nin?: InputMaybe> +} + +/** columns and relationships of "token_metadata" */ +export type Token_Metadata = { + __typename?: 'token_metadata' + data?: Maybe + status: Scalars['String'] + uri: Scalars['String'] +} + +/** columns and relationships of "token_metadata" */ +export type Token_MetadataDataArgs = { + path?: InputMaybe +} + +/** Boolean expression to filter rows from the table "token_metadata". All fields are combined with a logical 'AND'. */ +export type Token_Metadata_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + data?: InputMaybe + status?: InputMaybe + uri?: InputMaybe +} + +/** Ordering options when selecting data from "token_metadata". */ +export type Token_Metadata_Order_By = { + data?: InputMaybe + status?: InputMaybe + uri?: InputMaybe +} + +/** select columns of table "token_metadata" */ +export enum Token_Metadata_Select_Column { + /** column name */ + Data = 'data', + /** column name */ + Status = 'status', + /** column name */ + Uri = 'uri', +} + +/** columns and relationships of "tokens" */ +export type Tokens = { + __typename?: 'tokens' + artifact_metadata?: Maybe + artifact_uri?: Maybe + artist_address?: Maybe + /** An object relationship */ + artist_profile?: Maybe + assets?: Maybe + attributes?: Maybe + burned_editions?: Maybe + contributors?: Maybe + creators?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + description?: Maybe + display_uri?: Maybe + editions?: Maybe + /** An array relationship */ + events: Array + /** An aggregate relationship */ + events_aggregate: Events_Aggregate + external_uri?: Maybe + fa2_address: Scalars['String'] + first_sales_price?: Maybe + formats?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + /** An array relationship */ + holdings: Array + /** An aggregate relationship */ + holdings_aggregate: Holdings_Aggregate + is_verified_artist?: Maybe + last_processed_event_id?: Maybe + last_processed_event_level?: Maybe + last_processed_event_timestamp?: Maybe + last_sale_at?: Maybe + last_sales_price?: Maybe + /** An array relationship */ + listings: Array + /** An aggregate relationship */ + listings_aggregate: Listings_Aggregate + lowest_price_listing?: Maybe + lowest_sales_price?: Maybe + metadata_status: Scalars['String'] + metadata_uri?: Maybe + mime_type?: Maybe + mint_price?: Maybe + minted_at?: Maybe + name?: Maybe + /** An array relationship */ + offers: Array + /** An aggregate relationship */ + offers_aggregate: Offers_Aggregate + platform?: Maybe + price?: Maybe + right_uri?: Maybe + rights?: Maybe + royalties?: Maybe + royalties_total?: Maybe + /** An array relationship */ + royalty_receivers: Array + sales_count?: Maybe + sales_volume?: Maybe + /** An array relationship */ + signatures: Array + symbol?: Maybe + /** An array relationship */ + tags: Array + /** An object relationship */ + teia_meta?: Maybe + thumbnail_uri?: Maybe + token_id: Scalars['String'] + updated_at?: Maybe +} + +/** columns and relationships of "tokens" */ +export type TokensArtifact_MetadataArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensAssetsArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensAttributesArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensContributorsArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensCreatorsArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensEventsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensEvents_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensFormatsArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensHoldingsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensHoldings_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensListingsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensListings_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensLowest_Price_ListingArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensOffersArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensOffers_AggregateArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensRoyaltiesArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensRoyalty_ReceiversArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensSignaturesArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** columns and relationships of "tokens" */ +export type TokensTagsArgs = { + distinct_on?: InputMaybe> + limit?: InputMaybe + offset?: InputMaybe + order_by?: InputMaybe> + where?: InputMaybe +} + +/** aggregated selection of "tokens" */ +export type Tokens_Aggregate = { + __typename?: 'tokens_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "tokens" */ +export type Tokens_Aggregate_Fields = { + __typename?: 'tokens_aggregate_fields' + avg?: Maybe + count: Scalars['Int'] + max?: Maybe + min?: Maybe + stddev?: Maybe + stddev_pop?: Maybe + stddev_samp?: Maybe + sum?: Maybe + var_pop?: Maybe + var_samp?: Maybe + variance?: Maybe +} + +/** aggregate fields of "tokens" */ +export type Tokens_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** order by aggregate values of table "tokens" */ +export type Tokens_Aggregate_Order_By = { + avg?: InputMaybe + count?: InputMaybe + max?: InputMaybe + min?: InputMaybe + stddev?: InputMaybe + stddev_pop?: InputMaybe + stddev_samp?: InputMaybe + sum?: InputMaybe + var_pop?: InputMaybe + var_samp?: InputMaybe + variance?: InputMaybe +} + +/** aggregate avg on columns */ +export type Tokens_Avg_Fields = { + __typename?: 'tokens_avg_fields' + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + editions?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_level?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + mint_price?: Maybe + price?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe +} + +/** order by avg() on columns of table "tokens" */ +export type Tokens_Avg_Order_By = { + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + editions?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_level?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + mint_price?: InputMaybe + price?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe +} + +/** Boolean expression to filter rows from the table "tokens". All fields are combined with a logical 'AND'. */ +export type Tokens_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + artifact_metadata?: InputMaybe + artifact_uri?: InputMaybe + artist_address?: InputMaybe + artist_profile?: InputMaybe + assets?: InputMaybe + attributes?: InputMaybe + burned_editions?: InputMaybe + contributors?: InputMaybe + creators?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + description?: InputMaybe + display_uri?: InputMaybe + editions?: InputMaybe + events?: InputMaybe + external_uri?: InputMaybe + fa2_address?: InputMaybe + first_sales_price?: InputMaybe + formats?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + holdings?: InputMaybe + is_verified_artist?: InputMaybe + last_processed_event_id?: InputMaybe + last_processed_event_level?: InputMaybe + last_processed_event_timestamp?: InputMaybe + last_sale_at?: InputMaybe + last_sales_price?: InputMaybe + listings?: InputMaybe + lowest_price_listing?: InputMaybe + lowest_sales_price?: InputMaybe + metadata_status?: InputMaybe + metadata_uri?: InputMaybe + mime_type?: InputMaybe + mint_price?: InputMaybe + minted_at?: InputMaybe + name?: InputMaybe + offers?: InputMaybe + platform?: InputMaybe + price?: InputMaybe + right_uri?: InputMaybe + rights?: InputMaybe + royalties?: InputMaybe + royalties_total?: InputMaybe + royalty_receivers?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe + signatures?: InputMaybe + symbol?: InputMaybe + tags?: InputMaybe + teia_meta?: InputMaybe + thumbnail_uri?: InputMaybe + token_id?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate max on columns */ +export type Tokens_Max_Fields = { + __typename?: 'tokens_max_fields' + artifact_uri?: Maybe + artist_address?: Maybe + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + description?: Maybe + display_uri?: Maybe + editions?: Maybe + external_uri?: Maybe + fa2_address?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_id?: Maybe + last_processed_event_level?: Maybe + last_processed_event_timestamp?: Maybe + last_sale_at?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + metadata_status?: Maybe + metadata_uri?: Maybe + mime_type?: Maybe + mint_price?: Maybe + minted_at?: Maybe + name?: Maybe + platform?: Maybe + price?: Maybe + right_uri?: Maybe + rights?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe + symbol?: Maybe + thumbnail_uri?: Maybe + token_id?: Maybe + updated_at?: Maybe +} + +/** order by max() on columns of table "tokens" */ +export type Tokens_Max_Order_By = { + artifact_uri?: InputMaybe + artist_address?: InputMaybe + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + description?: InputMaybe + display_uri?: InputMaybe + editions?: InputMaybe + external_uri?: InputMaybe + fa2_address?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_id?: InputMaybe + last_processed_event_level?: InputMaybe + last_processed_event_timestamp?: InputMaybe + last_sale_at?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + metadata_status?: InputMaybe + metadata_uri?: InputMaybe + mime_type?: InputMaybe + mint_price?: InputMaybe + minted_at?: InputMaybe + name?: InputMaybe + platform?: InputMaybe + price?: InputMaybe + right_uri?: InputMaybe + rights?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe + symbol?: InputMaybe + thumbnail_uri?: InputMaybe + token_id?: InputMaybe + updated_at?: InputMaybe +} + +/** aggregate min on columns */ +export type Tokens_Min_Fields = { + __typename?: 'tokens_min_fields' + artifact_uri?: Maybe + artist_address?: Maybe + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + description?: Maybe + display_uri?: Maybe + editions?: Maybe + external_uri?: Maybe + fa2_address?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_id?: Maybe + last_processed_event_level?: Maybe + last_processed_event_timestamp?: Maybe + last_sale_at?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + metadata_status?: Maybe + metadata_uri?: Maybe + mime_type?: Maybe + mint_price?: Maybe + minted_at?: Maybe + name?: Maybe + platform?: Maybe + price?: Maybe + right_uri?: Maybe + rights?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe + symbol?: Maybe + thumbnail_uri?: Maybe + token_id?: Maybe + updated_at?: Maybe +} + +/** order by min() on columns of table "tokens" */ +export type Tokens_Min_Order_By = { + artifact_uri?: InputMaybe + artist_address?: InputMaybe + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + description?: InputMaybe + display_uri?: InputMaybe + editions?: InputMaybe + external_uri?: InputMaybe + fa2_address?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_id?: InputMaybe + last_processed_event_level?: InputMaybe + last_processed_event_timestamp?: InputMaybe + last_sale_at?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + metadata_status?: InputMaybe + metadata_uri?: InputMaybe + mime_type?: InputMaybe + mint_price?: InputMaybe + minted_at?: InputMaybe + name?: InputMaybe + platform?: InputMaybe + price?: InputMaybe + right_uri?: InputMaybe + rights?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe + symbol?: InputMaybe + thumbnail_uri?: InputMaybe + token_id?: InputMaybe + updated_at?: InputMaybe +} + +/** Ordering options when selecting data from "tokens". */ +export type Tokens_Order_By = { + artifact_metadata?: InputMaybe + artifact_uri?: InputMaybe + artist_address?: InputMaybe + artist_profile?: InputMaybe + assets?: InputMaybe + attributes?: InputMaybe + burned_editions?: InputMaybe + contributors?: InputMaybe + creators?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + description?: InputMaybe + display_uri?: InputMaybe + editions?: InputMaybe + events_aggregate?: InputMaybe + external_uri?: InputMaybe + fa2_address?: InputMaybe + first_sales_price?: InputMaybe + formats?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + holdings_aggregate?: InputMaybe + is_verified_artist?: InputMaybe + last_processed_event_id?: InputMaybe + last_processed_event_level?: InputMaybe + last_processed_event_timestamp?: InputMaybe + last_sale_at?: InputMaybe + last_sales_price?: InputMaybe + listings_aggregate?: InputMaybe + lowest_price_listing?: InputMaybe + lowest_sales_price?: InputMaybe + metadata_status?: InputMaybe + metadata_uri?: InputMaybe + mime_type?: InputMaybe + mint_price?: InputMaybe + minted_at?: InputMaybe + name?: InputMaybe + offers_aggregate?: InputMaybe + platform?: InputMaybe + price?: InputMaybe + right_uri?: InputMaybe + rights?: InputMaybe + royalties?: InputMaybe + royalties_total?: InputMaybe + royalty_receivers_aggregate?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe + signatures_aggregate?: InputMaybe + symbol?: InputMaybe + tags_aggregate?: InputMaybe + teia_meta?: InputMaybe + thumbnail_uri?: InputMaybe + token_id?: InputMaybe + updated_at?: InputMaybe +} + +/** select columns of table "tokens" */ +export enum Tokens_Select_Column { + /** column name */ + ArtifactMetadata = 'artifact_metadata', + /** column name */ + ArtifactUri = 'artifact_uri', + /** column name */ + ArtistAddress = 'artist_address', + /** column name */ + Assets = 'assets', + /** column name */ + Attributes = 'attributes', + /** column name */ + BurnedEditions = 'burned_editions', + /** column name */ + Contributors = 'contributors', + /** column name */ + Creators = 'creators', + /** column name */ + CurrentPriceToFirstSalesPriceDiff = 'current_price_to_first_sales_price_diff', + /** column name */ + CurrentPriceToFirstSalesPricePct = 'current_price_to_first_sales_price_pct', + /** column name */ + CurrentPriceToHighestSalesPriceDiff = 'current_price_to_highest_sales_price_diff', + /** column name */ + CurrentPriceToHighestSalesPricePct = 'current_price_to_highest_sales_price_pct', + /** column name */ + CurrentPriceToLastSalesPriceDiff = 'current_price_to_last_sales_price_diff', + /** column name */ + CurrentPriceToLastSalesPricePct = 'current_price_to_last_sales_price_pct', + /** column name */ + CurrentPriceToLowestSalesPriceDiff = 'current_price_to_lowest_sales_price_diff', + /** column name */ + CurrentPriceToLowestSalesPricePct = 'current_price_to_lowest_sales_price_pct', + /** column name */ + Description = 'description', + /** column name */ + DisplayUri = 'display_uri', + /** column name */ + Editions = 'editions', + /** column name */ + ExternalUri = 'external_uri', + /** column name */ + Fa2Address = 'fa2_address', + /** column name */ + FirstSalesPrice = 'first_sales_price', + /** column name */ + Formats = 'formats', + /** column name */ + HighestOfferPrice = 'highest_offer_price', + /** column name */ + HighestSalesPrice = 'highest_sales_price', + /** column name */ + IsVerifiedArtist = 'is_verified_artist', + /** column name */ + LastProcessedEventId = 'last_processed_event_id', + /** column name */ + LastProcessedEventLevel = 'last_processed_event_level', + /** column name */ + LastProcessedEventTimestamp = 'last_processed_event_timestamp', + /** column name */ + LastSaleAt = 'last_sale_at', + /** column name */ + LastSalesPrice = 'last_sales_price', + /** column name */ + LowestPriceListing = 'lowest_price_listing', + /** column name */ + LowestSalesPrice = 'lowest_sales_price', + /** column name */ + MetadataStatus = 'metadata_status', + /** column name */ + MetadataUri = 'metadata_uri', + /** column name */ + MimeType = 'mime_type', + /** column name */ + MintPrice = 'mint_price', + /** column name */ + MintedAt = 'minted_at', + /** column name */ + Name = 'name', + /** column name */ + Platform = 'platform', + /** column name */ + Price = 'price', + /** column name */ + RightUri = 'right_uri', + /** column name */ + Rights = 'rights', + /** column name */ + Royalties = 'royalties', + /** column name */ + RoyaltiesTotal = 'royalties_total', + /** column name */ + SalesCount = 'sales_count', + /** column name */ + SalesVolume = 'sales_volume', + /** column name */ + Symbol = 'symbol', + /** column name */ + ThumbnailUri = 'thumbnail_uri', + /** column name */ + TokenId = 'token_id', + /** column name */ + UpdatedAt = 'updated_at', +} + +/** aggregate stddev on columns */ +export type Tokens_Stddev_Fields = { + __typename?: 'tokens_stddev_fields' + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + editions?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_level?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + mint_price?: Maybe + price?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe +} + +/** order by stddev() on columns of table "tokens" */ +export type Tokens_Stddev_Order_By = { + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + editions?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_level?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + mint_price?: InputMaybe + price?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe +} + +/** aggregate stddev_pop on columns */ +export type Tokens_Stddev_Pop_Fields = { + __typename?: 'tokens_stddev_pop_fields' + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + editions?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_level?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + mint_price?: Maybe + price?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe +} + +/** order by stddev_pop() on columns of table "tokens" */ +export type Tokens_Stddev_Pop_Order_By = { + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + editions?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_level?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + mint_price?: InputMaybe + price?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe +} + +/** aggregate stddev_samp on columns */ +export type Tokens_Stddev_Samp_Fields = { + __typename?: 'tokens_stddev_samp_fields' + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + editions?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_level?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + mint_price?: Maybe + price?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe +} + +/** order by stddev_samp() on columns of table "tokens" */ +export type Tokens_Stddev_Samp_Order_By = { + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + editions?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_level?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + mint_price?: InputMaybe + price?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe +} + +/** aggregate sum on columns */ +export type Tokens_Sum_Fields = { + __typename?: 'tokens_sum_fields' + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + editions?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_level?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + mint_price?: Maybe + price?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe +} + +/** order by sum() on columns of table "tokens" */ +export type Tokens_Sum_Order_By = { + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + editions?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_level?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + mint_price?: InputMaybe + price?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe +} + +/** aggregate var_pop on columns */ +export type Tokens_Var_Pop_Fields = { + __typename?: 'tokens_var_pop_fields' + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + editions?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_level?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + mint_price?: Maybe + price?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe +} + +/** order by var_pop() on columns of table "tokens" */ +export type Tokens_Var_Pop_Order_By = { + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + editions?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_level?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + mint_price?: InputMaybe + price?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe +} + +/** aggregate var_samp on columns */ +export type Tokens_Var_Samp_Fields = { + __typename?: 'tokens_var_samp_fields' + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + editions?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_level?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + mint_price?: Maybe + price?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe +} + +/** order by var_samp() on columns of table "tokens" */ +export type Tokens_Var_Samp_Order_By = { + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + editions?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_level?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + mint_price?: InputMaybe + price?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe +} + +/** aggregate variance on columns */ +export type Tokens_Variance_Fields = { + __typename?: 'tokens_variance_fields' + burned_editions?: Maybe + current_price_to_first_sales_price_diff?: Maybe + current_price_to_first_sales_price_pct?: Maybe + current_price_to_highest_sales_price_diff?: Maybe + current_price_to_highest_sales_price_pct?: Maybe + current_price_to_last_sales_price_diff?: Maybe + current_price_to_last_sales_price_pct?: Maybe + current_price_to_lowest_sales_price_diff?: Maybe + current_price_to_lowest_sales_price_pct?: Maybe + editions?: Maybe + first_sales_price?: Maybe + highest_offer_price?: Maybe + highest_sales_price?: Maybe + last_processed_event_level?: Maybe + last_sales_price?: Maybe + lowest_sales_price?: Maybe + mint_price?: Maybe + price?: Maybe + royalties_total?: Maybe + sales_count?: Maybe + sales_volume?: Maybe +} + +/** order by variance() on columns of table "tokens" */ +export type Tokens_Variance_Order_By = { + burned_editions?: InputMaybe + current_price_to_first_sales_price_diff?: InputMaybe + current_price_to_first_sales_price_pct?: InputMaybe + current_price_to_highest_sales_price_diff?: InputMaybe + current_price_to_highest_sales_price_pct?: InputMaybe + current_price_to_last_sales_price_diff?: InputMaybe + current_price_to_last_sales_price_pct?: InputMaybe + current_price_to_lowest_sales_price_diff?: InputMaybe + current_price_to_lowest_sales_price_pct?: InputMaybe + editions?: InputMaybe + first_sales_price?: InputMaybe + highest_offer_price?: InputMaybe + highest_sales_price?: InputMaybe + last_processed_event_level?: InputMaybe + last_sales_price?: InputMaybe + lowest_sales_price?: InputMaybe + mint_price?: InputMaybe + price?: InputMaybe + royalties_total?: InputMaybe + sales_count?: InputMaybe + sales_volume?: InputMaybe +} + +/** columns and relationships of "tzprofiles" */ +export type Tzprofiles = { + __typename?: 'tzprofiles' + account: Scalars['String'] + alias?: Maybe + contract: Scalars['String'] + description?: Maybe + discord?: Maybe + domain_name?: Maybe + ethereum?: Maybe + failed: Scalars['Boolean'] + github?: Maybe + invalid_claims: Scalars['jsonb'] + logo?: Maybe + resolved: Scalars['Boolean'] + twitter?: Maybe + unprocessed_claims: Scalars['jsonb'] + valid_claims: Scalars['jsonb'] + website?: Maybe +} + +/** columns and relationships of "tzprofiles" */ +export type TzprofilesInvalid_ClaimsArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tzprofiles" */ +export type TzprofilesUnprocessed_ClaimsArgs = { + path?: InputMaybe +} + +/** columns and relationships of "tzprofiles" */ +export type TzprofilesValid_ClaimsArgs = { + path?: InputMaybe +} + +/** aggregated selection of "tzprofiles" */ +export type Tzprofiles_Aggregate = { + __typename?: 'tzprofiles_aggregate' + aggregate?: Maybe + nodes: Array +} + +/** aggregate fields of "tzprofiles" */ +export type Tzprofiles_Aggregate_Fields = { + __typename?: 'tzprofiles_aggregate_fields' + count: Scalars['Int'] + max?: Maybe + min?: Maybe +} + +/** aggregate fields of "tzprofiles" */ +export type Tzprofiles_Aggregate_FieldsCountArgs = { + columns?: InputMaybe> + distinct?: InputMaybe +} + +/** Boolean expression to filter rows from the table "tzprofiles". All fields are combined with a logical 'AND'. */ +export type Tzprofiles_Bool_Exp = { + _and?: InputMaybe> + _not?: InputMaybe + _or?: InputMaybe> + account?: InputMaybe + alias?: InputMaybe + contract?: InputMaybe + description?: InputMaybe + discord?: InputMaybe + domain_name?: InputMaybe + ethereum?: InputMaybe + failed?: InputMaybe + github?: InputMaybe + invalid_claims?: InputMaybe + logo?: InputMaybe + resolved?: InputMaybe + twitter?: InputMaybe + unprocessed_claims?: InputMaybe + valid_claims?: InputMaybe + website?: InputMaybe +} + +/** aggregate max on columns */ +export type Tzprofiles_Max_Fields = { + __typename?: 'tzprofiles_max_fields' + account?: Maybe + alias?: Maybe + contract?: Maybe + description?: Maybe + discord?: Maybe + domain_name?: Maybe + ethereum?: Maybe + github?: Maybe + logo?: Maybe + twitter?: Maybe + website?: Maybe +} + +/** aggregate min on columns */ +export type Tzprofiles_Min_Fields = { + __typename?: 'tzprofiles_min_fields' + account?: Maybe + alias?: Maybe + contract?: Maybe + description?: Maybe + discord?: Maybe + domain_name?: Maybe + ethereum?: Maybe + github?: Maybe + logo?: Maybe + twitter?: Maybe + website?: Maybe +} + +/** Ordering options when selecting data from "tzprofiles". */ +export type Tzprofiles_Order_By = { + account?: InputMaybe + alias?: InputMaybe + contract?: InputMaybe + description?: InputMaybe + discord?: InputMaybe + domain_name?: InputMaybe + ethereum?: InputMaybe + failed?: InputMaybe + github?: InputMaybe + invalid_claims?: InputMaybe + logo?: InputMaybe + resolved?: InputMaybe + twitter?: InputMaybe + unprocessed_claims?: InputMaybe + valid_claims?: InputMaybe + website?: InputMaybe +} + +/** select columns of table "tzprofiles" */ +export enum Tzprofiles_Select_Column { + /** column name */ + Account = 'account', + /** column name */ + Alias = 'alias', + /** column name */ + Contract = 'contract', + /** column name */ + Description = 'description', + /** column name */ + Discord = 'discord', + /** column name */ + DomainName = 'domain_name', + /** column name */ + Ethereum = 'ethereum', + /** column name */ + Failed = 'failed', + /** column name */ + Github = 'github', + /** column name */ + InvalidClaims = 'invalid_claims', + /** column name */ + Logo = 'logo', + /** column name */ + Resolved = 'resolved', + /** column name */ + Twitter = 'twitter', + /** column name */ + UnprocessedClaims = 'unprocessed_claims', + /** column name */ + ValidClaims = 'valid_claims', + /** column name */ + Website = 'website', +} + +/** Streaming cursor of the table "tzprofiles" */ +export type Tzprofiles_Stream_Cursor_Input = { + /** Stream column input with initial value */ + initial_value: Tzprofiles_Stream_Cursor_Value_Input + /** cursor ordering */ + ordering?: InputMaybe +} + +/** Initial value of the column from where the streaming should start */ +export type Tzprofiles_Stream_Cursor_Value_Input = { + account?: InputMaybe + alias?: InputMaybe + contract?: InputMaybe + description?: InputMaybe + discord?: InputMaybe + domain_name?: InputMaybe + ethereum?: InputMaybe + failed?: InputMaybe + github?: InputMaybe + invalid_claims?: InputMaybe + logo?: InputMaybe + resolved?: InputMaybe + twitter?: InputMaybe + unprocessed_claims?: InputMaybe + valid_claims?: InputMaybe + website?: InputMaybe +} + +export type BaseTokenFieldsFragment = { + __typename?: 'tokens' + artifact_uri?: string | null + display_uri?: string | null + thumbnail_uri?: string | null + metadata_uri?: string | null + artist_address?: string | null + description?: string | null + editions?: any | null + fa2_address: string + mime_type?: string | null + minted_at?: any | null + metadata_status: string + name?: string | null + price?: any | null + royalties?: any | null + royalties_total?: any | null + token_id: string + artist_profile?: { + __typename?: 'teia_users' + name?: string | null + is_split?: boolean | null + } | null + listings: Array<{ + __typename?: 'listings' + amount: any + amount_left: any + contract_address: string + price: any + status: string + type: string + }> + royalty_receivers: Array<{ + __typename?: 'royalty_receivers' + receiver_address: string + royalties: any + }> + teia_meta?: { + __typename?: 'teia_tokens_meta' + accessibility?: any | null + content_rating?: string | null + is_signed: boolean + preview_uri?: string | null + } | null +} + +export type BaseTokenFieldsFragmentVariables = Exact<{ [key: string]: never }> + +export type ObjktQueryVariables = Exact<{ + id: Scalars['String'] +}> + +export type ObjktQuery = { + __typename?: 'query_root' + tokens_by_pk?: { + __typename?: 'tokens' + rights?: string | null + right_uri?: string | null + artifact_uri?: string | null + display_uri?: string | null + thumbnail_uri?: string | null + metadata_uri?: string | null + artist_address?: string | null + description?: string | null + editions?: any | null + fa2_address: string + mime_type?: string | null + minted_at?: any | null + metadata_status: string + name?: string | null + price?: any | null + royalties?: any | null + royalties_total?: any | null + token_id: string + artist_profile?: { + __typename?: 'teia_users' + name?: string | null + is_split?: boolean | null + split_contract?: { + __typename?: 'teia_split_contracts' + administrator_address: string + shareholders: Array<{ + __typename?: 'teia_shareholders' + shareholder_address: string + holder_type: string + shares?: any | null + shareholder_profile?: { + __typename?: 'teia_users' + user_address: string + name?: string | null + } | null + }> + } | null + } | null + signatures: Array<{ + __typename?: 'teia_signatures' + shareholder_address: string + }> + listings: Array<{ + __typename?: 'listings' + type: string + contract_address: string + amount: any + amount_left: any + swap_id?: any | null + ask_id?: any | null + offer_id?: any | null + price: any + start_price?: any | null + end_price?: any | null + seller_address: string + status: string + seller_profile?: { + __typename?: 'teia_users' + name?: string | null + } | null + }> + holdings: Array<{ + __typename?: 'holdings' + holder_address: string + amount: any + holder_profile?: { + __typename?: 'teia_users' + name?: string | null + } | null + }> + tags: Array<{ __typename?: 'tags'; tag: string }> + events: Array<{ + __typename?: 'events' + timestamp: any + implements?: string | null + ophash?: string | null + id: string + type?: string | null + price?: any | null + amount?: any | null + editions?: any | null + seller_address?: string | null + buyer_address?: string | null + from_address?: string | null + to_address?: string | null + seller_profile?: { + __typename?: 'teia_users' + name?: string | null + } | null + buyer_profile?: { __typename?: 'teia_users'; name?: string | null } | null + from_profile?: { __typename?: 'teia_users'; name?: string | null } | null + to_profile?: { __typename?: 'teia_users'; name?: string | null } | null + }> + royalty_receivers: Array<{ + __typename?: 'royalty_receivers' + receiver_address: string + royalties: any + }> + teia_meta?: { + __typename?: 'teia_tokens_meta' + accessibility?: any | null + content_rating?: string | null + is_signed: boolean + preview_uri?: string | null + } | null + } | null +} + +export type UriMintedByAddressQueryVariables = Exact<{ + address: Scalars['String'] + uris?: InputMaybe | Scalars['String']> +}> + +export type UriMintedByAddressQuery = { + __typename?: 'query_root' + tokens: Array<{ + __typename?: 'tokens' + token_id: string + editions?: any | null + }> +} + +export type GetCollabsForAddressQueryVariables = Exact<{ + address: Scalars['String'] +}> + +export type GetCollabsForAddressQuery = { + __typename?: 'query_root' + split_contracts: Array<{ + __typename?: 'teia_split_contracts' + contract_address: string + administrator_address: string + contract_profile?: { + __typename?: 'teia_users' + name?: string | null + metadata?: { __typename?: 'token_metadata'; data?: any | null } | null + } | null + shareholders: Array<{ + __typename?: 'teia_shareholders' + shareholder_address: string + shares?: any | null + holder_type: string + shareholder_profile?: { + __typename?: 'teia_users' + name?: string | null + } | null + }> + }> +} + +export type CollabCreationsTokensFragment = { + __typename?: 'tokens' + artifact_uri?: string | null + display_uri?: string | null + thumbnail_uri?: string | null + metadata_uri?: string | null + artist_address?: string | null + description?: string | null + editions?: any | null + fa2_address: string + mime_type?: string | null + minted_at?: any | null + metadata_status: string + name?: string | null + price?: any | null + royalties?: any | null + royalties_total?: any | null + token_id: string + tags: Array<{ __typename?: 'tags'; tag: string }> + artist_profile?: { + __typename?: 'teia_users' + name?: string | null + is_split?: boolean | null + } | null + listings: Array<{ + __typename?: 'listings' + amount: any + amount_left: any + contract_address: string + price: any + status: string + type: string + }> + royalty_receivers: Array<{ + __typename?: 'royalty_receivers' + receiver_address: string + royalties: any + }> + teia_meta?: { + __typename?: 'teia_tokens_meta' + accessibility?: any | null + content_rating?: string | null + is_signed: boolean + preview_uri?: string | null + } | null +} + +export type CollabCreationsTokensFragmentVariables = Exact<{ + [key: string]: never +}> + +export type CollabCreationsSplitFragment = { + __typename?: 'teia_split_contracts' + administrator_address: string + contract_address: string + shareholders: Array<{ + __typename?: 'teia_shareholders' + shareholder_address: string + holder_type: string + shareholder_profile?: { + __typename?: 'teia_users' + name?: string | null + } | null + }> + contract_profile?: { + __typename?: 'teia_users' + name?: string | null + metadata?: { __typename?: 'token_metadata'; data?: any | null } | null + } | null +} + +export type CollabCreationsSplitFragmentVariables = Exact<{ + [key: string]: never +}> + +export type CollabCreationsFromAddressQueryVariables = Exact<{ + addressOrSubjkt: Scalars['String'] +}> + +export type CollabCreationsFromAddressQuery = { + __typename?: 'query_root' + tokens: Array<{ + __typename?: 'tokens' + artifact_uri?: string | null + display_uri?: string | null + thumbnail_uri?: string | null + metadata_uri?: string | null + artist_address?: string | null + description?: string | null + editions?: any | null + fa2_address: string + mime_type?: string | null + minted_at?: any | null + metadata_status: string + name?: string | null + price?: any | null + royalties?: any | null + royalties_total?: any | null + token_id: string + tags: Array<{ __typename?: 'tags'; tag: string }> + artist_profile?: { + __typename?: 'teia_users' + name?: string | null + is_split?: boolean | null + } | null + listings: Array<{ + __typename?: 'listings' + amount: any + amount_left: any + contract_address: string + price: any + status: string + type: string + }> + royalty_receivers: Array<{ + __typename?: 'royalty_receivers' + receiver_address: string + royalties: any + }> + teia_meta?: { + __typename?: 'teia_tokens_meta' + accessibility?: any | null + content_rating?: string | null + is_signed: boolean + preview_uri?: string | null + } | null + }> + split_contracts: Array<{ + __typename?: 'teia_split_contracts' + administrator_address: string + contract_address: string + shareholders: Array<{ + __typename?: 'teia_shareholders' + shareholder_address: string + holder_type: string + shareholder_profile?: { + __typename?: 'teia_users' + name?: string | null + } | null + }> + contract_profile?: { + __typename?: 'teia_users' + name?: string | null + metadata?: { __typename?: 'token_metadata'; data?: any | null } | null + } | null + }> +} + +export type CollabCreationsFromNameQueryVariables = Exact<{ + addressOrSubjkt: Scalars['String'] +}> + +export type CollabCreationsFromNameQuery = { + __typename?: 'query_root' + tokens: Array<{ + __typename?: 'tokens' + artifact_uri?: string | null + display_uri?: string | null + thumbnail_uri?: string | null + metadata_uri?: string | null + artist_address?: string | null + description?: string | null + editions?: any | null + fa2_address: string + mime_type?: string | null + minted_at?: any | null + metadata_status: string + name?: string | null + price?: any | null + royalties?: any | null + royalties_total?: any | null + token_id: string + tags: Array<{ __typename?: 'tags'; tag: string }> + artist_profile?: { + __typename?: 'teia_users' + name?: string | null + is_split?: boolean | null + } | null + listings: Array<{ + __typename?: 'listings' + amount: any + amount_left: any + contract_address: string + price: any + status: string + type: string + }> + royalty_receivers: Array<{ + __typename?: 'royalty_receivers' + receiver_address: string + royalties: any + }> + teia_meta?: { + __typename?: 'teia_tokens_meta' + accessibility?: any | null + content_rating?: string | null + is_signed: boolean + preview_uri?: string | null + } | null + }> + split_contracts: Array<{ + __typename?: 'teia_split_contracts' + administrator_address: string + contract_address: string + shareholders: Array<{ + __typename?: 'teia_shareholders' + shareholder_address: string + holder_type: string + shareholder_profile?: { + __typename?: 'teia_users' + name?: string | null + } | null + }> + contract_profile?: { + __typename?: 'teia_users' + name?: string | null + metadata?: { __typename?: 'token_metadata'; data?: any | null } | null + } | null + }> +} + +export type UserFragmentFragment = { + __typename?: 'teia_users' + user_address: string + name?: string | null + metadata?: { __typename?: 'token_metadata'; data?: any | null } | null +} + +export type UserFragmentFragmentVariables = Exact<{ [key: string]: never }> + +export type UserByNameQueryVariables = Exact<{ + addressOrSubjkt: Scalars['String'] +}> + +export type UserByNameQuery = { + __typename?: 'query_root' + teia_users: Array<{ + __typename?: 'teia_users' + user_address: string + name?: string | null + metadata?: { __typename?: 'token_metadata'; data?: any | null } | null + }> +} + +export type UserByAddressQueryVariables = Exact<{ + addressOrSubjkt: Scalars['String'] +}> + +export type UserByAddressQuery = { + __typename?: 'query_root' + teia_users: Array<{ + __typename?: 'teia_users' + user_address: string + name?: string | null + metadata?: { __typename?: 'token_metadata'; data?: any | null } | null + }> +} + +export const BaseTokenFieldsFragmentDoc = gql` + fragment baseTokenFields on tokens { + artifact_uri + display_uri + thumbnail_uri + metadata_uri + artist_address + artist_profile { + name + is_split + } + description + editions + fa2_address + listings(where: { status: { _eq: "active" } }, order_by: { price: asc }) { + amount + amount_left + contract_address + price + status + type + } + mime_type + minted_at + metadata_status + name + price + royalties + royalties_total + royalty_receivers { + receiver_address + royalties + } + teia_meta { + accessibility + content_rating + is_signed + preview_uri + } + token_id + } +` +export const CollabCreationsTokensFragmentDoc = gql` + fragment collabCreationsTokens on tokens { + ...baseTokenFields + tags { + tag + } + } + ${BaseTokenFieldsFragmentDoc} +` +export const CollabCreationsSplitFragmentDoc = gql` + fragment collabCreationsSplit on teia_split_contracts { + administrator_address + shareholders { + shareholder_address + shareholder_profile { + name + } + holder_type + } + contract_address + contract_profile { + name + metadata { + data + } + } + } +` +export const UserFragmentFragmentDoc = gql` + fragment userFragment on teia_users { + user_address + name + metadata { + data + } + } +` +export const ObjktDocument = gql` + query objkt($id: String!) { + tokens_by_pk( + fa2_address: "KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton" + token_id: $id + ) { + ...baseTokenFields + artist_profile { + name + is_split + split_contract { + administrator_address + shareholders { + shareholder_address + shareholder_profile { + user_address + name + } + holder_type + shares + } + } + } + signatures { + shareholder_address + } + rights + right_uri + listings(where: { status: { _eq: "active" } }, order_by: { price: asc }) { + type + contract_address + amount + amount_left + swap_id + ask_id + offer_id + price + start_price + end_price + seller_address + seller_profile { + name + } + status + } + holdings(where: { amount: { _gt: "0" } }) { + holder_address + amount + holder_profile { + name + } + } + tags { + tag + } + events( + where: { + _or: [ + { implements: { _eq: "SALE" } } + { + type: { + _in: [ + "HEN_MINT" + "TEIA_SWAP" + "HEN_SWAP" + "HEN_SWAP_V2" + "VERSUM_SWAP" + "FA2_TRANSFER" + ] + } + } + ] + } + order_by: [{ level: desc }, { opid: desc }] + ) { + timestamp + implements + ophash + id + type + price + amount + editions + seller_address + seller_profile { + name + } + buyer_address + buyer_profile { + name + } + from_address + from_profile { + name + } + to_address + to_profile { + name + } + } + } + } + ${BaseTokenFieldsFragmentDoc} +` +export const UriMintedByAddressDocument = gql` + query uriMintedByAddress($address: String!, $uris: [String!] = "") { + tokens( + order_by: { minted_at: desc } + where: { + metadata_status: { _eq: "processed" } + artifact_uri: { _in: $uris } + artist_address: { _eq: $address } + } + ) { + token_id + editions + } + } +` +export const GetCollabsForAddressDocument = gql` + query getCollabsForAddress($address: String!) { + split_contracts: teia_split_contracts( + where: { + _or: [ + { administrator_address: { _eq: $address } } + { shareholders: { shareholder_address: { _eq: $address } } } + ] + } + ) { + contract_address + contract_profile { + name + metadata { + data + } + } + administrator_address + shareholders { + shareholder_address + shareholder_profile { + name + } + shares + holder_type + } + } + } +` +export const CollabCreationsFromAddressDocument = gql` + query collabCreationsFromAddress($addressOrSubjkt: String!) { + tokens( + where: { + artist_address: { _eq: $addressOrSubjkt } + editions: { _gt: "0" } + } + order_by: { token_id: desc } + ) { + ...collabCreationsTokens + } + split_contracts: teia_split_contracts( + where: { contract_address: { _eq: $addressOrSubjkt } } + ) { + ...collabCreationsSplit + } + } + ${CollabCreationsTokensFragmentDoc} + ${CollabCreationsSplitFragmentDoc} +` +export const CollabCreationsFromNameDocument = gql` + query collabCreationsFromName($addressOrSubjkt: String!) { + tokens( + where: { + artist_profile: { name: { _eq: $addressOrSubjkt } } + editions: { _gt: "0" } + } + order_by: { token_id: desc } + ) { + ...collabCreationsTokens + } + split_contracts: teia_split_contracts( + where: { contract_profile: { name: { _eq: $addressOrSubjkt } } } + ) { + ...collabCreationsSplit + } + } + ${CollabCreationsTokensFragmentDoc} + ${CollabCreationsSplitFragmentDoc} +` +export const UserByNameDocument = gql` + query userByName($addressOrSubjkt: String!) { + teia_users(where: { name: { _eq: $addressOrSubjkt } }) { + ...userFragment + } + } + ${UserFragmentFragmentDoc} +` +export const UserByAddressDocument = gql` + query userByAddress($addressOrSubjkt: String!) { + teia_users(where: { user_address: { _eq: $addressOrSubjkt } }) { + ...userFragment + } + } + ${UserFragmentFragmentDoc} +` + +export type SdkFunctionWrapper = ( + action: (requestHeaders?: Record) => Promise, + operationName: string, + operationType?: string +) => Promise + +const defaultWrapper: SdkFunctionWrapper = ( + action, + _operationName, + _operationType +) => action() + +export function getSdk( + client: GraphQLClient, + withWrapper: SdkFunctionWrapper = defaultWrapper +) { + return { + objkt( + variables: ObjktQueryVariables, + requestHeaders?: Dom.RequestInit['headers'] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(ObjktDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders, + }), + 'objkt', + 'query' + ) + }, + uriMintedByAddress( + variables: UriMintedByAddressQueryVariables, + requestHeaders?: Dom.RequestInit['headers'] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request( + UriMintedByAddressDocument, + variables, + { ...requestHeaders, ...wrappedRequestHeaders } + ), + 'uriMintedByAddress', + 'query' + ) + }, + getCollabsForAddress( + variables: GetCollabsForAddressQueryVariables, + requestHeaders?: Dom.RequestInit['headers'] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request( + GetCollabsForAddressDocument, + variables, + { ...requestHeaders, ...wrappedRequestHeaders } + ), + 'getCollabsForAddress', + 'query' + ) + }, + collabCreationsFromAddress( + variables: CollabCreationsFromAddressQueryVariables, + requestHeaders?: Dom.RequestInit['headers'] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request( + CollabCreationsFromAddressDocument, + variables, + { ...requestHeaders, ...wrappedRequestHeaders } + ), + 'collabCreationsFromAddress', + 'query' + ) + }, + collabCreationsFromName( + variables: CollabCreationsFromNameQueryVariables, + requestHeaders?: Dom.RequestInit['headers'] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request( + CollabCreationsFromNameDocument, + variables, + { ...requestHeaders, ...wrappedRequestHeaders } + ), + 'collabCreationsFromName', + 'query' + ) + }, + userByName( + variables: UserByNameQueryVariables, + requestHeaders?: Dom.RequestInit['headers'] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(UserByNameDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders, + }), + 'userByName', + 'query' + ) + }, + userByAddress( + variables: UserByAddressQueryVariables, + requestHeaders?: Dom.RequestInit['headers'] + ): Promise { + return withWrapper( + (wrappedRequestHeaders) => + client.request(UserByAddressDocument, variables, { + ...requestHeaders, + ...wrappedRequestHeaders, + }), + 'userByAddress', + 'query' + ) + }, + } +} +export type Sdk = ReturnType +export function getSdkWithHooks( + client: GraphQLClient, + withWrapper: SdkFunctionWrapper = defaultWrapper +) { + const sdk = getSdk(client, withWrapper) + return { + ...sdk, + useObjkt( + key: SWRKeyInterface, + variables: ObjktQueryVariables, + config?: SWRConfigInterface + ) { + return useSWR( + key, + () => sdk.objkt(variables), + config + ) + }, + useUriMintedByAddress( + key: SWRKeyInterface, + variables: UriMintedByAddressQueryVariables, + config?: SWRConfigInterface + ) { + return useSWR( + key, + () => sdk.uriMintedByAddress(variables), + config + ) + }, + useGetCollabsForAddress( + key: SWRKeyInterface, + variables: GetCollabsForAddressQueryVariables, + config?: SWRConfigInterface + ) { + return useSWR( + key, + () => sdk.getCollabsForAddress(variables), + config + ) + }, + useCollabCreationsFromAddress( + key: SWRKeyInterface, + variables: CollabCreationsFromAddressQueryVariables, + config?: SWRConfigInterface + ) { + return useSWR( + key, + () => sdk.collabCreationsFromAddress(variables), + config + ) + }, + useCollabCreationsFromName( + key: SWRKeyInterface, + variables: CollabCreationsFromNameQueryVariables, + config?: SWRConfigInterface + ) { + return useSWR( + key, + () => sdk.collabCreationsFromName(variables), + config + ) + }, + useUserByName( + key: SWRKeyInterface, + variables: UserByNameQueryVariables, + config?: SWRConfigInterface + ) { + return useSWR( + key, + () => sdk.userByName(variables), + config + ) + }, + useUserByAddress( + key: SWRKeyInterface, + variables: UserByAddressQueryVariables, + config?: SWRConfigInterface + ) { + return useSWR( + key, + () => sdk.userByAddress(variables), + config + ) + }, + } +} +export type SdkWithHooks = ReturnType diff --git a/src/pages/collaborate/manage.jsx b/src/pages/collaborate/manage.jsx index 3116d397d..76a292300 100644 --- a/src/pages/collaborate/manage.jsx +++ b/src/pages/collaborate/manage.jsx @@ -1,95 +1,99 @@ -import { useState, useEffect } from 'react' +import { useMemo } from 'react' import { Container } from '@atoms/layout' -import styles from '@components/collab/index.module.scss' -import { fetchGraphQL, getCollabsForAddress } from '@data/api' +import { apiSWR } from '@data/api' // import { Input } from '@atoms/input' -import { CountdownTimer } from '@components/collab/manage/CountdownTimer' +// import { CountdownTimer } from '@components/collab/manage/CountdownTimer' import { CollabList } from '@components/collab/manage/CollabList' import { useUserStore } from '@context/userStore' import { useCollabStore } from '@context/collabStore' import { shallow } from 'zustand/shallow' +import { Loading } from '@atoms/loading' export const CollabContractsOverview = ({ showAdminOnly = false }) => { const address = useUserStore((st) => st.address) const [ originatedContract, - originationOpHash, - findOriginatedContractFromOpHash, + // originationOpHash, + // findOriginatedContractFromOpHash, ] = useCollabStore( (st) => [ st.originatedContract, - st.originationOpHash, - st.findOriginatedContractFromOpHash, + // st.originationOpHash, + // st.findOriginatedContractFromOpHash, ], shallow ) - const [collabs, setCollabs] = useState([]) + // const [collabs, setCollabs] = useState([]) // const [managedCollabs, setManagedCollabs] = useState([]) - const [loadingCollabs, setLoadingCollabs] = useState(true) + // const [loadingCollabs, setLoadingCollabs] = useState(true) - const [checkInterval, setCheckInterval] = useState(30) - const [timerEndDate, setTimerEndDate] = useState() + // const [checkInterval, setCheckInterval] = useState(30) + // const [timerEndDate, setTimerEndDate] = useState() // TODO - maybe allow manual input of a KT address // const [addAddressManually, setAddAddressManually] = useState(false) // const [manualAddress, setManualAddress] = useState('') - useEffect(() => { - // const isChecking = originationOpHash && !checkingForOrigination - // setCheckingForOrigination(isChecking) - - if (!(originationOpHash && !timerEndDate)) { - return - } - const timerDate = new Date() - timerDate.setTime(timerDate.getTime() + checkInterval * 1000) - setTimerEndDate(timerDate) - }, [originationOpHash, timerEndDate, checkInterval]) - - useEffect(() => { + // useEffect(() => { + // // const isChecking = originationOpHash && !checkingForOrigination + // // setCheckingForOrigination(isChecking) + + // if (!(originationOpHash && !timerEndDate)) { + // return + // } + // const timerDate = new Date() + // timerDate.setTime(timerDate.getTime() + checkInterval * 1000) + // setTimerEndDate(timerDate) + // }, [originationOpHash, timerEndDate, checkInterval]) + + const { error, data } = apiSWR.useGetCollabsForAddress('/collabs-manage', { + address, + }) + const collabs = useMemo(() => { if (!address) { return } - - setLoadingCollabs(true) console.debug('Now checking for available collabs') // On boot, see what addresses the synced address can manage - fetchGraphQL(getCollabsForAddress, 'GetCollabs', { - address, - }).then(({ data }) => { - setLoadingCollabs(false) - - if (!data) { - return - } - const allCollabs = data.split_contracts || [] - const adminCollabs = allCollabs.filter( - (c) => c.administrator_address === address - ) - const participantCollabs = allCollabs.filter( - (c) => c.administrator_address !== address - ) - - // Show admin followed by participant - const availableCollabs = showAdminOnly - ? allCollabs.filter((c) => c.administrator_address === address) - : [...adminCollabs, ...participantCollabs] - - setCollabs(availableCollabs) - }) - }, [address, originatedContract, showAdminOnly]) - - const _onTimerComplete = () => { - findOriginatedContractFromOpHash(originationOpHash) - setCheckInterval(10) + if (!data) { + return + } + const allCollabs = data.split_contracts || [] + const adminCollabs = allCollabs.filter( + (c) => c.administrator_address === address + ) + const participantCollabs = allCollabs.filter( + (c) => c.administrator_address !== address + ) + + // Show admin followed by participant + const availableCollabs = showAdminOnly + ? allCollabs.filter((c) => c.administrator_address === address) + : [...adminCollabs, ...participantCollabs] + + return availableCollabs + }, [data, address, originatedContract, showAdminOnly]) + if (!address) { + return + } + if (!data) { + return + } + + if (error) { + throw error } + // const _onTimerComplete = () => { + // findOriginatedContractFromOpHash(originationOpHash) + // // setCheckInterval(10) + // } return ( - {originationOpHash && timerEndDate && ( + {/* {originationOpHash && timerEndDate && (

Collab contract creation in progress...{' '} {

Address: {originatedContract.address}

- )} + )} */} - {collabs.length > 0 && ( + {collabs && collabs.length > 0 && ( { /> )} */} - {collabs.length === 0 && !originationOpHash && ( + {/* {collabs.length === 0 && !originationOpHash && (

{loadingCollabs ? 'Looking for collabs...' : 'You aren’t part of any collaborations at the moment'}

- )} + )} */} ) } diff --git a/src/pages/home/feeds/friends-feed.jsx b/src/pages/home/feeds/friends-feed.jsx index 4bcdd3dd8..86c372172 100644 --- a/src/pages/home/feeds/friends-feed.jsx +++ b/src/pages/home/feeds/friends-feed.jsx @@ -2,7 +2,7 @@ import useSWR from 'swr' import uniq from 'lodash/uniq' import TokenCollection from '@atoms/token-collection' import { fetchGraphQL } from '@data/api' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import { gql } from 'graphql-request' import { useParams } from 'react-router' import styles from '@style' diff --git a/src/pages/home/feeds/fund-feed.jsx b/src/pages/home/feeds/fund-feed.jsx index 6cc9a64db..2b2b70269 100644 --- a/src/pages/home/feeds/fund-feed.jsx +++ b/src/pages/home/feeds/fund-feed.jsx @@ -3,7 +3,7 @@ import orderBy from 'lodash/orderBy' import uniqBy from 'lodash/uniqBy' import flatten from 'lodash/flatten' import TokenCollection from '@atoms/token-collection' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import styles from '@style' function FundFeed({ diff --git a/src/pages/home/feeds/lists-feed.jsx b/src/pages/home/feeds/lists-feed.jsx index ec5fc403d..9a8bd2638 100644 --- a/src/pages/home/feeds/lists-feed.jsx +++ b/src/pages/home/feeds/lists-feed.jsx @@ -1,6 +1,6 @@ import useSWR from 'swr' import TokenCollection from '@atoms/token-collection' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import { gql } from 'graphql-request' import { Input } from '@atoms/input' import { useState } from 'react' diff --git a/src/pages/home/feeds/mime-type-feed.jsx b/src/pages/home/feeds/mime-type-feed.jsx index 29c370896..3fe51748f 100644 --- a/src/pages/home/feeds/mime-type-feed.jsx +++ b/src/pages/home/feeds/mime-type-feed.jsx @@ -1,6 +1,6 @@ import { gql } from 'graphql-request' import uniqBy from 'lodash/uniqBy' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import { HEN_CONTRACT_FA2 } from '@constants' import TokenCollection from '@atoms/token-collection' diff --git a/src/pages/home/feeds/new-objkts-feed.jsx b/src/pages/home/feeds/new-objkts-feed.jsx index 503f88651..5f9a2f7f2 100644 --- a/src/pages/home/feeds/new-objkts-feed.jsx +++ b/src/pages/home/feeds/new-objkts-feed.jsx @@ -1,6 +1,6 @@ import { gql } from 'graphql-request' import uniqBy from 'lodash/uniqBy' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import { HEN_CONTRACT_FA2 } from '@constants' import TokenCollection from '@atoms/token-collection' diff --git a/src/pages/home/feeds/random-feed.jsx b/src/pages/home/feeds/random-feed.jsx index 555290c6d..8b3b4f3f2 100644 --- a/src/pages/home/feeds/random-feed.jsx +++ b/src/pages/home/feeds/random-feed.jsx @@ -1,7 +1,7 @@ import { useMemo } from 'react' import { gql } from 'graphql-request' import random from 'lodash/random' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import { HEN_CONTRACT_FA2 } from '@constants' import TokenCollection from '@atoms/token-collection' diff --git a/src/pages/home/feeds/recent-sales-feed.jsx b/src/pages/home/feeds/recent-sales-feed.jsx index 2731b650c..7331f8b97 100644 --- a/src/pages/home/feeds/recent-sales-feed.jsx +++ b/src/pages/home/feeds/recent-sales-feed.jsx @@ -1,7 +1,7 @@ import { gql } from 'graphql-request' import uniqBy from 'lodash/uniqBy' import TokenCollection from '@atoms/token-collection' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import { HEN_CONTRACT_FA2 } from '@constants' export function RecentSalesFeed() { diff --git a/src/pages/home/feeds/tag-feed.jsx b/src/pages/home/feeds/tag-feed.jsx index dd767573d..609b85488 100644 --- a/src/pages/home/feeds/tag-feed.jsx +++ b/src/pages/home/feeds/tag-feed.jsx @@ -1,6 +1,6 @@ import { gql } from 'graphql-request' import TokenCollection from '@atoms/token-collection' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import { HEN_CONTRACT_FA2 } from '@constants' export function TagFeed({ tag, ...otherProps }) { diff --git a/src/pages/objkt-display/index.tsx b/src/pages/objkt-display/index.tsx index a36a9b5b6..1324d85ef 100644 --- a/src/pages/objkt-display/index.tsx +++ b/src/pages/objkt-display/index.tsx @@ -1,12 +1,11 @@ /* eslint-disable react-hooks/exhaustive-deps */ import { Outlet, useOutletContext, useParams } from 'react-router-dom' -import useSWR from 'swr' import { METADATA_ACCESSIBILITY_HAZARDS_PHOTOSENS, METADATA_CONTENT_RATING_MATURE, } from '@constants' -import { fetchObjktDetails } from '@data/api' +import { apiSWR } from '@data/api' import { Loading } from '@atoms/loading' import { Page } from '@atoms/layout' import { RenderMediaType } from '@components/media-types' @@ -17,6 +16,8 @@ import useSettings from '@hooks/use-settings' import { TabOptions, Tabs } from '@atoms/tab/Tabs' import { useUserStore } from '@context/userStore' import { NFT } from '@types' +import laggy from '@utils/swr-laggy-middleware' +import { useMemo } from 'react' type ObjktDisplayContext = { nft: NFT @@ -67,78 +68,75 @@ export const ObjktDisplay = () => { const { walletBlockMap, nsfwMap, photosensitiveMap, underReviewMap } = useSettings() - const { data: nft, error }: { data?: NFT; error?: Error } = useSWR( + const { data, error } = apiSWR.useObjkt( ['/token', id], - async () => { - if (id) { - const objkt = (await fetchObjktDetails(id)) as NFT - - if (!objkt) { - let isNum = /^\d+$/.test(id) - if (isNum) { - throw new Error(`Cannot find an OBJKT with id: ${id}`, { - cause: 'Unknown OBJKT', - }) - } - - throw new Error( - `Received a non numeric token_id: ${id}. - This can happen if the requested SUBJKT is conflicting with a protected route. - You can still access it by its address (tz/)`, - { cause: 'Conflicting route' } - ) - } - - if ( - nsfwMap.get(objkt.token_id) === 1 || - objkt.teia_meta?.content_rating === METADATA_CONTENT_RATING_MATURE - ) { - objkt.isNSFW = true - } - if ( - photosensitiveMap.get(objkt.token_id) === 1 || - objkt.teia_meta?.accessibility?.hazards.includes( - METADATA_ACCESSIBILITY_HAZARDS_PHOTOSENS - ) - ) { - objkt.isPhotosensitive = true - } - - objkt.restricted = walletBlockMap.get(objkt.artist_address) === 1 - objkt.underReview = underReviewMap.get(objkt.artist_address) === 1 - objkt.listings = objkt.listings.filter( - ({ seller_address }: { seller_address: string }) => - walletBlockMap.get(seller_address) !== 1 - ) - - return objkt - } - }, + { id: id ? id : '-1' }, { revalidateIfStale: false, revalidateOnFocus: false, + use: [laggy], } ) + const nft = useMemo(() => { + if (data) { + const objkt = data.tokens_by_pk as NFT + if (!objkt && id) { + let isNum = /^\d+$/.test(id) + if (isNum) { + throw new Error(`Cannot find an OBJKT with id: ${id}`, { + cause: 'Unknown OBJKT', + }) + } - const loading = !nft && !error + throw new Error( + `Received a non numeric token_id: ${id}. + This can happen if the requested SUBJKT is conflicting with a protected route. + You can still access it by its address (tz/)`, + { cause: 'Conflicting route' } + ) + } - if (loading) { - return ( - - {loading && } - - ) - } + if ( + nsfwMap.get(objkt.token_id) === 1 || + objkt.teia_meta?.content_rating === METADATA_CONTENT_RATING_MATURE + ) { + objkt.isNSFW = true + } + if ( + photosensitiveMap.get(objkt.token_id) === 1 || + objkt.teia_meta?.accessibility?.hazards.includes( + METADATA_ACCESSIBILITY_HAZARDS_PHOTOSENS + ) + ) { + objkt.isPhotosensitive = true + } + + objkt.restricted = walletBlockMap.get(objkt.artist_address) === 1 + objkt.underReview = underReviewMap.get(objkt.artist_address) === 1 + objkt.listings = objkt.listings.filter( + ({ seller_address }: { seller_address: string }) => + walletBlockMap.get(seller_address) !== 1 + ) + + return objkt + } + }, [data?.tokens_by_pk]) + if (!id) return if (error) { throw error //new Error('Error Fetching OBJKTs for {}') } if (!nft) { - return + return ( + + + + ) } + return ( - + <> {nft.restricted ? (
diff --git a/src/pages/profile/collabs.jsx b/src/pages/profile/collabs.jsx index 39c8cde4a..0de3b851a 100644 --- a/src/pages/profile/collabs.jsx +++ b/src/pages/profile/collabs.jsx @@ -2,7 +2,7 @@ import { useState } from 'react' import get from 'lodash/get' import { gql } from 'graphql-request' import orderBy from 'lodash/orderBy' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import TokenCollection from '@atoms/token-collection' import { useOutletContext } from 'react-router' import Checkbox from '@atoms/input/Checkbox' diff --git a/src/pages/profile/collections.jsx b/src/pages/profile/collections.jsx index 06e1e18c4..232f8da23 100644 --- a/src/pages/profile/collections.jsx +++ b/src/pages/profile/collections.jsx @@ -3,7 +3,7 @@ import uniqBy from 'lodash/uniqBy' import { gql } from 'graphql-request' import TokenCollection from '@atoms/token-collection' import Filters from './filters' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import { useOutletContext } from 'react-router' diff --git a/src/pages/profile/creations.jsx b/src/pages/profile/creations.jsx index 533bd6cbb..caa58e07e 100644 --- a/src/pages/profile/creations.jsx +++ b/src/pages/profile/creations.jsx @@ -1,7 +1,7 @@ import { useState } from 'react' import { gql } from 'graphql-request' import get from 'lodash/get' -import { BaseTokenFieldsFragment } from '@data/api' +import { BaseTokenFieldsFragment } from '@data/queries' import { HEN_CONTRACT_FA2 } from '@constants' import TokenCollection from '@atoms/token-collection' import Filters from './filters' From 219b1df3d4c4eedbe634da6d7105d0b90b0ccd78 Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Tue, 21 Feb 2023 20:58:01 +0100 Subject: [PATCH 02/17] =?UTF-8?q?test:=20=F0=9F=97=83=EF=B8=8F=20dump=20st?= =?UTF-8?q?age?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .graphqlconfig | 15 ++ package.json | 1 + .../header/feed_toolbar/FeedToolbar.jsx | 167 +++++++++++------- 3 files changed, 116 insertions(+), 67 deletions(-) create mode 100644 .graphqlconfig diff --git a/.graphqlconfig b/.graphqlconfig new file mode 100644 index 000000000..b8552f1ef --- /dev/null +++ b/.graphqlconfig @@ -0,0 +1,15 @@ +{ + "name": "Teztok GraphQL Schema", + "schemaPath": "schema.graphql", + "extensions": { + "endpoints": { + "dev": { + "url": "https://teztok.teia.rocks/v1/graphql", + "headers": { + "user-agent": "JS GraphQL" + }, + "introspect": true + } + } + } +} diff --git a/package.json b/package.json index 59e6680df..17aa638d7 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ }, "scripts": { "analyze": "source-map-explorer 'build/assets/*.js'", + "gen-api": "graphql-codegen", "start": "vite", "serve": "vite preview", "build": "vite build", diff --git a/src/components/header/feed_toolbar/FeedToolbar.jsx b/src/components/header/feed_toolbar/FeedToolbar.jsx index 9a70ec13c..37f5e6cc6 100644 --- a/src/components/header/feed_toolbar/FeedToolbar.jsx +++ b/src/components/header/feed_toolbar/FeedToolbar.jsx @@ -2,10 +2,10 @@ import { motion } from 'framer-motion' import styles from '@style' import { DropDown, DropdownButton } from '@atoms/dropdown' -import { IconToggle } from '@atoms/toggles' -import { SingleViewIcon, MasonryIcon, ChevronIcon } from '@icons' +import { IconToggle, Toggle } from '@atoms/toggles' +import { SingleViewIcon, MasonryIcon, ChevronIcon, FiltersIcon } from '@icons' -import { useState } from 'react' +import { useCallback, useState } from 'react' import { Button } from '@atoms/button' import { useLocalSettings } from '@context/localSettingsStore' @@ -13,15 +13,17 @@ import { useLocation, useNavigate } from 'react-router' import { useEffect } from 'react' import { Line } from '@atoms/line' import { shallow } from 'zustand/shallow' +import { Input } from '@atoms/input' +import { useSearchParams } from 'react-router-dom' -// const MediaFilter = ({ label, tagline }) => { -// return ( -//
-// -//

{tagline}

-//
-// ) -// } +const MediaFilter = ({ label, tagline }) => { + return ( +
+ +

{tagline}

+
+ ) +} const locationMap = new Map([ ['/', 'Recent Sales'], @@ -51,7 +53,7 @@ const locationNeedSync = ['/feed/friends'] const locationPaths = [...locationMap.keys()] export const FeedToolbar = ({ feeds_menu = false }) => { - // const [price, setPrice] = useState({ from: 0, to: 0 }) + const [price, setPrice] = useState({ from: 0, to: 0 }) const [viewMode, setViewMode] = useLocalSettings( (st) => [st.viewMode, st.setViewMode], @@ -62,6 +64,8 @@ export const FeedToolbar = ({ feeds_menu = false }) => { const navigate = useNavigate() + const [searchParams, setSearchParams] = useSearchParams() + useEffect(() => { for (const pth of locationPaths.slice(1)) { if (location.pathname.includes(pth)) { @@ -72,8 +76,18 @@ export const FeedToolbar = ({ feeds_menu = false }) => { // return locationMap[location] }, [location]) + const updateParams = useCallback( + (key, value) => { + setSearchParams({ + ...Object.fromEntries(searchParams), + [key]: value, + }) + }, + [searchParams, setSearchParams] + ) + // TODO: finish the filtering logic - // const filters = false + const filters = true return ( {feeds_menu && ( @@ -130,8 +144,37 @@ export const FeedToolbar = ({ feeds_menu = false }) => { icon={} />
+ {true && ( + } + label="Sort" + className={styles.sort_area} + > + + + + + + + + + + + )} {/* KEEP */} - {/* {filters && ( + {filters && ( {

Price

-
- { - console.log(e.target.value) - setPrice({ ...price, from: e.target.value }) - console.log(price) - }} - placeholder={`0`} - label="From" - value={price.from} - > - - - { - console.log(e.target.value) - setPrice({ ...price, to: e.target.value }) - console.log(price) - }} - placeholder={`0`} - label="To" - value={price.to} - > - - +
+
+ { + console.log(e.target.value) + setPrice({ ...price, from: e.target.value }) + console.log(price) + }} + placeholder={`0`} + label="From" + value={price.from} + > + + + { + console.log(e.target.value) + setPrice({ ...price, to: e.target.value }) + console.log(price) + }} + placeholder={`0`} + label="To" + value={price.to} + > + + +
+
+ + +

Featured tags

Events

- +

Popular

- - + +
- - + + {/* */}
- )} */} + )} ) } From 8946826c39251a7dc39f848506e61723261faee3 Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Thu, 23 Feb 2023 00:27:48 +0100 Subject: [PATCH 03/17] =?UTF-8?q?build:=20=E2=9C=A8=20eslint=20on=20pre-pu?= =?UTF-8?q?sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc | 9 +- .husky/pre-commit | 2 +- .husky/pre-push | 4 + package.json | 4 +- src/components/collab/CollabSwitch.tsx | 4 +- src/data/ipfs.ts | 110 ++++++++++++------------- src/pages/collaborate/manage.jsx | 30 +++---- 7 files changed, 83 insertions(+), 80 deletions(-) create mode 100644 .husky/pre-push diff --git a/.eslintrc b/.eslintrc index 2f22d681a..5f79b0e12 100644 --- a/.eslintrc +++ b/.eslintrc @@ -13,5 +13,12 @@ "rules": { "jsx-a11y/media-has-caption": "off" }, - "ignorePatterns": ["**/*.html", "node_polyfill.js"] + + "ignorePatterns": [ + "**/*.html", + "node_polyfill.js", + "src/stories/*", + ".storybook/*", + "src/gql/index.ts" + ] } diff --git a/.husky/pre-commit b/.husky/pre-commit index 274d4d8ef..46af14b21 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname -- "$0")/_/husky.sh" -npx pretty-quick --staged +npx pretty-quick --staged \ No newline at end of file diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100644 index 000000000..815deeeae --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname -- "$0")/_/husky.sh" + +npm run lint diff --git a/package.json b/package.json index 17aa638d7..1784cf2e9 100644 --- a/package.json +++ b/package.json @@ -44,9 +44,9 @@ "test": "vite test", "screenshots": "playwright test", "eject": "react-scripts eject", - "format": "prettier --write \"./src/**/*.{js,jsx,scss}\"", + "format": "prettier --write \"./src/**/*.{js,jsx,scss,ts,tsx}\"", "prepare": "husky install", - "lint": "eslint src --ext .js,.jsx", + "lint": "eslint src --ext .js,.jsx,.ts,.tsx", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build" }, diff --git a/src/components/collab/CollabSwitch.tsx b/src/components/collab/CollabSwitch.tsx index 7ff5271c6..a6d7cdea2 100644 --- a/src/components/collab/CollabSwitch.tsx +++ b/src/components/collab/CollabSwitch.tsx @@ -1,7 +1,7 @@ import { Button } from '@atoms/button' -import { apiSWR, fetchGraphQL } from '@data/api' +import { apiSWR } from '@data/api' import { CollabContractsOverview } from '@pages/collaborate/manage' -import { useEffect, useState } from 'react' +import { useState } from 'react' import collabStyles from '@components/collab/index.module.scss' import classNames from 'classnames' diff --git a/src/data/ipfs.ts b/src/data/ipfs.ts index 9d5480a39..9ca5d54a5 100644 --- a/src/data/ipfs.ts +++ b/src/data/ipfs.ts @@ -8,10 +8,6 @@ import { useUserStore } from '@context/userStore' import { useModalStore } from '@context/modalStore' import { FileForm, FileMint, MintFormat } from '@types' -/** - * @typedef { {path: string?, blob: Blob} } FileHolder - */ - /** * Upload a single file through the IPFS proxy. */ @@ -102,17 +98,8 @@ const isDoubleMint = async (uri: string) => { address: proxyAddress || address || '', uris: [uri], }) - // await fetchGraphQL(uriQuery, 'uriQuery', { - // address: proxyAddress || address, - // ids: [uri], - // }) - console.debug(res) - // if (errors) { - // show(`GraphQL Error: ${JSON.stringify(errors)}`) - // return true - // } else if (data) { if (!res.tokens) return false const areAllTokensBurned = res.tokens.every((token) => token.editions === 0) @@ -129,21 +116,6 @@ const isDoubleMint = async (uri: string) => { // return false } -interface PrepareProps { - name: string - description: string - tags: string - address: string - file: FileForm - cover: FileForm - thumbnail: FileForm - rights: string - rightUri?: string - language?: string - accessibility: string - contentRating: string - formats: any -} export const prepareFile = async ({ name, description, @@ -270,22 +242,7 @@ export const prepareDirectory = async ({ accessibility, contentRating, formats, -}: { - name: string - description: string - tags: string - address: string - files: FileForm[] - cover: FileForm - thumbnail: FileForm - generateDisplayUri: string - rights: string - rightUri: string - language: string - accessibility: string - contentRating: string - formats: MintFormat[] -}) => { +}: PrepareDirectoryOptions) => { const step = useModalStore.getState().step const hashes = await uploadFilesToDirectory(files) @@ -435,21 +392,7 @@ async function buildMetadataFile({ accessibility, contentRating, formats, -}: { - name: string - description: string - tags: string - uri: string - address: string - displayUri: string - thumbnailUri: string - rights: string - rightUri?: string - language: string - accessibility: string - contentRating: string - formats: MintFormat[] -}) { +}: BuildMetadataOptions) { const metadata: TeiaMetadata = { name, description, @@ -475,6 +418,55 @@ async function buildMetadataFile({ return JSON.stringify(metadata) } +// TODO: Move types to each roots? + +interface PrepareProps { + name: string + description: string + tags: string + address: string + file: FileForm + cover: FileForm + thumbnail: FileForm + rights: string + rightUri?: string + language?: string + accessibility: string + contentRating: string + formats: any +} + +interface PrepareDirectoryOptions { + name: string + description: string + tags: string + address: string + files: FileMint[] + cover: FileForm + thumbnail: FileForm + generateDisplayUri: string + rights: string + rightUri: string + language: string + accessibility: string + contentRating: string + formats: MintFormat[] +} +interface BuildMetadataOptions { + name: string + description: string + tags: string + uri: string + address: string + displayUri: string + thumbnailUri: string + rights: string + rightUri?: string + language?: string + accessibility: string + contentRating: string + formats: MintFormat[] +} interface TeiaMetadata { name: string description: string diff --git a/src/pages/collaborate/manage.jsx b/src/pages/collaborate/manage.jsx index 76a292300..0574c16b1 100644 --- a/src/pages/collaborate/manage.jsx +++ b/src/pages/collaborate/manage.jsx @@ -5,25 +5,25 @@ import { apiSWR } from '@data/api' // import { CountdownTimer } from '@components/collab/manage/CountdownTimer' import { CollabList } from '@components/collab/manage/CollabList' import { useUserStore } from '@context/userStore' -import { useCollabStore } from '@context/collabStore' -import { shallow } from 'zustand/shallow' +// import { useCollabStore } from '@context/collabStore' +// import { shallow } from 'zustand/shallow' import { Loading } from '@atoms/loading' export const CollabContractsOverview = ({ showAdminOnly = false }) => { const address = useUserStore((st) => st.address) - const [ - originatedContract, - // originationOpHash, - // findOriginatedContractFromOpHash, - ] = useCollabStore( - (st) => [ - st.originatedContract, - // st.originationOpHash, - // st.findOriginatedContractFromOpHash, - ], - shallow - ) + // const [ + // originatedContract, + // originationOpHash, + // findOriginatedContractFromOpHash, + // ] = useCollabStore( + // (st) => [ + // st.originatedContract, + // st.originationOpHash, + // st.findOriginatedContractFromOpHash, + // ], + // shallow + // ) // const [collabs, setCollabs] = useState([]) // const [managedCollabs, setManagedCollabs] = useState([]) @@ -75,7 +75,7 @@ export const CollabContractsOverview = ({ showAdminOnly = false }) => { : [...adminCollabs, ...participantCollabs] return availableCollabs - }, [data, address, originatedContract, showAdminOnly]) + }, [data, address /*, originatedContract*/, showAdminOnly]) if (!address) { return } From e9db329b8ec9347d00edfa5db8ea35ed53a80c91 Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Thu, 23 Feb 2023 00:28:52 +0100 Subject: [PATCH 04/17] =?UTF-8?q?fix:=20=E2=9A=A1=EF=B8=8F=20test=20prepus?= =?UTF-8?q?h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/collab/{index.js => index.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/components/collab/{index.js => index.ts} (100%) diff --git a/src/components/collab/index.js b/src/components/collab/index.ts similarity index 100% rename from src/components/collab/index.js rename to src/components/collab/index.ts From 842b81d130a7cb2f60b2cd97600d21134965ea73 Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Thu, 23 Feb 2023 00:33:29 +0100 Subject: [PATCH 05/17] =?UTF-8?q?fix:=20=F0=9F=8E=A8=20pre-push?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .husky/pre-push | 2 +- src/components/collab/CollabSwitch.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 .husky/pre-push diff --git a/.husky/pre-push b/.husky/pre-push old mode 100644 new mode 100755 index 815deeeae..20d0d06e5 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,4 +1,4 @@ #!/bin/sh -. "$(dirname -- "$0")/_/husky.sh" +. "$(dirname "$0")/_/husky.sh" npm run lint diff --git a/src/components/collab/CollabSwitch.tsx b/src/components/collab/CollabSwitch.tsx index a6d7cdea2..b60f100cf 100644 --- a/src/components/collab/CollabSwitch.tsx +++ b/src/components/collab/CollabSwitch.tsx @@ -5,7 +5,7 @@ import { useState } from 'react' import collabStyles from '@components/collab/index.module.scss' import classNames from 'classnames' -import { Teia_Split_Contracts } from 'gql' +// import { Teia_Split_Contracts } from 'gql' import { Loading } from '@atoms/loading' export const CollabSwitch = ({ From c7d22303c1b2368c6790daa3d6317c6d2568b46c Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Thu, 23 Feb 2023 14:50:52 +0100 Subject: [PATCH 06/17] =?UTF-8?q?feat:=20=F0=9F=8E=A8=20generate=20types?= =?UTF-8?q?=20on=20HRM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 19 ++++++ package.json | 1 + .../token-collection/{index.jsx => index.tsx} | 59 ++++++++++--------- vite.config.js | 3 + 4 files changed, 54 insertions(+), 28 deletions(-) rename src/atoms/token-collection/{index.jsx => index.tsx} (83%) diff --git a/package-lock.json b/package-lock.json index 70994d956..e803348b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -97,6 +97,7 @@ "vite-plugin-ejs": "^1.6.4", "vite-plugin-eslint": "^1.8.1", "vite-plugin-filter-replace": "^0.1.10", + "vite-plugin-graphql-codegen": "^3.1.0", "vite-plugin-markdown": "^2.1.0", "vite-plugin-node-polyfills": "^0.7.0", "vite-plugin-node-stdlib-browser": "^0.1.1", @@ -22299,6 +22300,17 @@ "integrity": "sha512-4S1Jr5a7jJmyz2JFQaMMRNGmk/hT3zsQ2gFVdiSoSTsM/kZHGxbn0YlJsjMmJyTZCemebAJN6BvSKtW4oTbk1Q==", "dev": true }, + "node_modules/vite-plugin-graphql-codegen": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-graphql-codegen/-/vite-plugin-graphql-codegen-3.1.0.tgz", + "integrity": "sha512-X3rUGe8SLD0Kg1NOspmxg/1/eEa7vc+mVhUGAsqti9gNWNRXE8VJYJgSTAkvruTsIsrAplyXPN4lb5SilFn/lg==", + "dev": true, + "peerDependencies": { + "@graphql-codegen/cli": "^1.0.0 || ^2.0.0 || ^3.0.0", + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0", + "vite": "^2.7.0 || ^3.0.0 || ^4.0.0" + } + }, "node_modules/vite-plugin-markdown": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/vite-plugin-markdown/-/vite-plugin-markdown-2.1.0.tgz", @@ -39283,6 +39295,13 @@ "integrity": "sha512-4S1Jr5a7jJmyz2JFQaMMRNGmk/hT3zsQ2gFVdiSoSTsM/kZHGxbn0YlJsjMmJyTZCemebAJN6BvSKtW4oTbk1Q==", "dev": true }, + "vite-plugin-graphql-codegen": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-graphql-codegen/-/vite-plugin-graphql-codegen-3.1.0.tgz", + "integrity": "sha512-X3rUGe8SLD0Kg1NOspmxg/1/eEa7vc+mVhUGAsqti9gNWNRXE8VJYJgSTAkvruTsIsrAplyXPN4lb5SilFn/lg==", + "dev": true, + "requires": {} + }, "vite-plugin-markdown": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/vite-plugin-markdown/-/vite-plugin-markdown-2.1.0.tgz", diff --git a/package.json b/package.json index 1784cf2e9..e73ffa4cd 100644 --- a/package.json +++ b/package.json @@ -123,6 +123,7 @@ "vite-plugin-ejs": "^1.6.4", "vite-plugin-eslint": "^1.8.1", "vite-plugin-filter-replace": "^0.1.10", + "vite-plugin-graphql-codegen": "^3.1.0", "vite-plugin-markdown": "^2.1.0", "vite-plugin-node-polyfills": "^0.7.0", "vite-plugin-node-stdlib-browser": "^0.1.1", diff --git a/src/atoms/token-collection/index.jsx b/src/atoms/token-collection/index.tsx similarity index 83% rename from src/atoms/token-collection/index.jsx rename to src/atoms/token-collection/index.tsx index 885756ad6..b2d67b690 100644 --- a/src/atoms/token-collection/index.jsx +++ b/src/atoms/token-collection/index.tsx @@ -20,13 +20,11 @@ import { import { IconCache } from '@utils/with-icon' import { shallow } from 'zustand/shallow' -/** - * Single view, vertical feed - * @param {Object} feedProps - The options for the feed item - * @param {[import("@types").NFT]} feedProps.tokens - The nfts to render - * @returns {React.ReactElement} The feed - */ -function SingleView({ tokens }) { +import type { RequestDocument } from 'graphql-request' +import { NFT } from '@types' + +/** Single view, vertical feed */ +function SingleView({ tokens }: { tokens: NFT[] }) { return (
{tokens.map((token) => ( @@ -36,13 +34,8 @@ function SingleView({ tokens }) { ) } -/** - * Massorny view feed - * @param {Object} feedProps - The options for the feed item - * @param {[import("@types").NFT]} feedProps.tokens - The nfts to render - * @returns {React.ReactElement} The feed - */ -function MasonryView({ tokens }) { +/*** Masonry view feed*/ +function MasonryView({ tokens }: { tokens: NFT[] }) { return ( {tokens.map((token) => ( @@ -56,21 +49,31 @@ function MasonryView({ tokens }) { ) } -/** - * @typedef {import("@types").NFT} NFT - */ // TODO (mel): Avoid pop drilling feeds_menu, once the context will be cleaner we could maybe introduce smaller contexts, one could be the "profile" context -/** - * Main feed component that can be either in Single or Masonry mode. - * @param {Object} tkProps - The props - * @param {[import("graphql-request").gql]} tkProps.query - The graphql query - * @param {number} tkProps.itemsPerLoad - Batch size - * @param {number} tkProps.maxItems - Max items to fetch from the indexer - * @param {(data:NFT, extra:import("@types").TokenResponse) => [NFT]} tkProps.extractTokensFromResponse - Function to filter the response - * @param {([NFT]) => [NFT]} tkProps.postProcessTokens - Final filter pass over tokens? - * @returns {React.ReactElement} The feed - */ +// /** + +interface TokenCollectionProps { + query: RequestDocument + label: string + namespace: string + extractTokensFromResponse: ( + data: ResponseData, + opts: PostProcess + ) => TokensReturnType +} + +interface PostProcess { + postProcessTokens: ( + resultsPath: string, + tokenPath: string, + keyPath: string + ) => TokensReturnType + resultsPath: string + tokenPath: string + keyPath: string +} + function TokenCollection({ query, label, @@ -99,7 +102,7 @@ function TokenCollection({ })) ) }, -}) { +}: TokenCollectionProps) { const [searchParams, setSearchParams] = useSearchParams() const { walletBlockMap, nsfwMap, photosensitiveMap, objktBlockMap } = useSettings() diff --git a/vite.config.js b/vite.config.js index 048152a9d..e357691ec 100644 --- a/vite.config.js +++ b/vite.config.js @@ -11,6 +11,7 @@ import mdPlugin from 'vite-plugin-markdown' import child_process from 'child_process' import { ViteEjsPlugin } from 'vite-plugin-ejs' import filterReplace from 'vite-plugin-filter-replace' +import codegen from 'vite-plugin-graphql-codegen' // Gets the current git commit (used in ) const commitHash = child_process @@ -88,6 +89,8 @@ export default defineConfig(({ mode }) => { appType: 'mpa', plugins: [ ...prod_plugs, + codegen(), + filterReplace([ { filter: 'node_modules/@airgap/beacon-ui/dist/esm/utils/qr.js', From 402de693d2b9519d22b90057d538af981140ed86 Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Fri, 24 Feb 2023 22:54:21 +0100 Subject: [PATCH 07/17] =?UTF-8?q?fix:=20=E2=9C=A8=20further=20types?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 61 ++++++++++++ package.json | 4 + src/atoms/dropdown/DropdownButton.tsx | 4 +- src/atoms/identicons/index.tsx | 2 +- src/atoms/input/Input.tsx | 33 ++++--- src/atoms/logo/index.jsx | 47 --------- src/atoms/logo/index.tsx | 48 ++++++++++ src/atoms/select/types.d.ts | 4 + src/atoms/token-collection/index.tsx | 5 +- src/components/collab/CollabSwitch.tsx | 2 +- .../collab/show/CollabIssuerInfo.tsx | 2 +- .../collab/show/CollabParticipant.tsx | 12 ++- src/components/collab/show/TxRow.tsx | 4 +- src/components/footer/index.tsx | 9 +- src/components/form/{Form.jsx => Form.tsx} | 19 +++- .../form/{FormFields.jsx => FormFields.tsx} | 58 +++++++---- .../form/{MintForm.jsx => MintForm.tsx} | 4 +- src/components/media-types/pdf/index.tsx | 2 +- src/components/upload/index.jsx | 75 --------------- src/components/upload/index.tsx | 96 +++++++++++++++++++ src/context/mintStore.ts | 14 +-- src/data/ipfs.ts | 41 ++++---- src/declaration.d.ts | 8 ++ src/pages/collaborate/manage.jsx | 2 +- .../feeds/{lists-feed.jsx => lists-feed.tsx} | 8 +- src/pages/mint/{fields.js => fields.ts} | 8 +- src/pages/mint/types.d.ts | 10 ++ src/types.d.ts | 18 +++- src/utils/{html.js => html.ts} | 39 ++++---- src/utils/{media.js => media.ts} | 24 +++-- src/utils/mint.ts | 14 +-- src/utils/{motion.js => motion.ts} | 0 src/utils/{os.js => os.ts} | 0 src/utils/sanitise.js | 95 ------------------ src/utils/sanitise.ts | 47 +++++++++ src/utils/storage.js | 19 ---- src/utils/{string.js => string.ts} | 4 +- ...-middleware.js => swr-laggy-middleware.ts} | 14 ++- src/utils/{time.js => time.ts} | 26 ++--- src/utils/{verify.js => verify.ts} | 20 ++-- 40 files changed, 513 insertions(+), 389 deletions(-) delete mode 100644 src/atoms/logo/index.jsx create mode 100644 src/atoms/logo/index.tsx create mode 100644 src/atoms/select/types.d.ts rename src/components/form/{Form.jsx => Form.tsx} (69%) rename src/components/form/{FormFields.jsx => FormFields.tsx} (69%) rename src/components/form/{MintForm.jsx => MintForm.tsx} (93%) delete mode 100644 src/components/upload/index.jsx create mode 100644 src/components/upload/index.tsx rename src/pages/home/feeds/{lists-feed.jsx => lists-feed.tsx} (92%) rename src/pages/mint/{fields.js => fields.ts} (94%) create mode 100644 src/pages/mint/types.d.ts rename src/utils/{html.js => html.ts} (87%) rename src/utils/{media.js => media.ts} (79%) rename src/utils/{motion.js => motion.ts} (100%) rename src/utils/{os.js => os.ts} (100%) delete mode 100644 src/utils/sanitise.js create mode 100644 src/utils/sanitise.ts delete mode 100644 src/utils/storage.js rename src/utils/{string.js => string.ts} (64%) rename src/utils/{swr-laggy-middleware.js => swr-laggy-middleware.ts} (76%) rename src/utils/{time.js => time.ts} (68%) rename src/utils/{verify.js => verify.ts} (62%) diff --git a/package-lock.json b/package-lock.json index e803348b5..defcf4b8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,6 +60,9 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", + "@types/react-infinite-scroller": "^1.2.3", + "@types/react-lazy-load-image-component": "^1.5.2", + "@types/react-pdf": "^6.2.0", "@vitejs/plugin-react": "^3.1.0", "assert": "^2.0.0", "buffer": "^6.0.3", @@ -7774,6 +7777,35 @@ "@types/react": "*" } }, + "node_modules/@types/react-infinite-scroller": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/react-infinite-scroller/-/react-infinite-scroller-1.2.3.tgz", + "integrity": "sha512-l60JckVoO+dxmKW2eEG7jbliEpITsTJvRPTe97GazjF5+ylagAuyYdXl8YY9DQsTP9QjhqGKZROknzgscGJy0A==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-lazy-load-image-component": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.2.tgz", + "integrity": "sha512-4NLJsMJVrMv18FuMIkUUBVj/PH9A+BvLKrZC75EWiEFn1IsMrZHgL1tVKw5QBfoa0Qjz6SkWIzEvwcyZ8PgnIg==", + "dev": true, + "dependencies": { + "@types/react": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-pdf": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@types/react-pdf/-/react-pdf-6.2.0.tgz", + "integrity": "sha512-OSCYmrfaJvpXkM5V4seUMAhUDOAOqbGQf9kwv14INyTf7AjDs2ukfkkQrLWRQ8OjWrDklbXYWh5l7pT7l0N76g==", + "dev": true, + "dependencies": { + "@types/react": "*", + "pdfjs-dist": "^2.16.105" + } + }, "node_modules/@types/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", @@ -28419,6 +28451,35 @@ "@types/react": "*" } }, + "@types/react-infinite-scroller": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/react-infinite-scroller/-/react-infinite-scroller-1.2.3.tgz", + "integrity": "sha512-l60JckVoO+dxmKW2eEG7jbliEpITsTJvRPTe97GazjF5+ylagAuyYdXl8YY9DQsTP9QjhqGKZROknzgscGJy0A==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-lazy-load-image-component": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.2.tgz", + "integrity": "sha512-4NLJsMJVrMv18FuMIkUUBVj/PH9A+BvLKrZC75EWiEFn1IsMrZHgL1tVKw5QBfoa0Qjz6SkWIzEvwcyZ8PgnIg==", + "dev": true, + "requires": { + "@types/react": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-pdf": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@types/react-pdf/-/react-pdf-6.2.0.tgz", + "integrity": "sha512-OSCYmrfaJvpXkM5V4seUMAhUDOAOqbGQf9kwv14INyTf7AjDs2ukfkkQrLWRQ8OjWrDklbXYWh5l7pT7l0N76g==", + "dev": true, + "requires": { + "@types/react": "*", + "pdfjs-dist": "^2.16.105" + } + }, "@types/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", diff --git a/package.json b/package.json index e73ffa4cd..b7054ab90 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ }, "scripts": { "analyze": "source-map-explorer 'build/assets/*.js'", + "check-types": "tsc --noEmit", "gen-api": "graphql-codegen", "start": "vite", "serve": "vite preview", @@ -86,6 +87,9 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", + "@types/react-infinite-scroller": "^1.2.3", + "@types/react-lazy-load-image-component": "^1.5.2", + "@types/react-pdf": "^6.2.0", "@vitejs/plugin-react": "^3.1.0", "assert": "^2.0.0", "buffer": "^6.0.3", diff --git a/src/atoms/dropdown/DropdownButton.tsx b/src/atoms/dropdown/DropdownButton.tsx index 5c20bb83a..52c5a5e70 100644 --- a/src/atoms/dropdown/DropdownButton.tsx +++ b/src/atoms/dropdown/DropdownButton.tsx @@ -4,6 +4,7 @@ import { AnimatePresence, motion } from 'framer-motion' import classnames from 'classnames' import Button from '@atoms/button/Button' import { useTwemoji } from '@hooks/use-twemoji' +import { WithCompChildren } from '@types' interface DropdownButtonProps { menuID: string direction: 'left' | 'right' @@ -11,7 +12,6 @@ interface DropdownButtonProps { alt: string icon?: React.ReactNode toggled: boolean - children: React.ReactNode onClick: () => void className?: string } @@ -30,7 +30,7 @@ function DropdownButton({ children, onClick, className, -}: DropdownButtonProps) { +}: WithCompChildren) { const [open, setOpen] = useState(false) useTwemoji() diff --git a/src/atoms/identicons/index.tsx b/src/atoms/identicons/index.tsx index a52a93d02..bd1ab4d6c 100644 --- a/src/atoms/identicons/index.tsx +++ b/src/atoms/identicons/index.tsx @@ -435,7 +435,7 @@ export const Identicon = ({ src={resolvedLogo} alt="identicon" onLoad={onLoad} - onError={(e: ErrorEvent) => { + onError={(e) => { console.error(e) setIsVideo(true) }} diff --git a/src/atoms/input/Input.tsx b/src/atoms/input/Input.tsx index d51f68944..2ef17a5f7 100644 --- a/src/atoms/input/Input.tsx +++ b/src/atoms/input/Input.tsx @@ -1,7 +1,8 @@ import styles from '@style' -import { memo, useCallback } from 'react' +import { FocusEventHandler, memo, useCallback } from 'react' import { useControlled } from '@hooks/use-controlled' import React, { KeyboardEvent } from 'react' +import { WithChildren } from '@types' type InputType = | 'button' | 'checkbox' @@ -31,29 +32,27 @@ type InputType = * onChange when not using ref will return the parsed value * number for "number" inputs, string for the rest) */ -interface InputProps { - type: InputType +interface InputProps { + type?: InputType placeholder: string name?: string min?: number max?: number maxlength?: number label?: string - onChange?: ( - value: number | string | React.FormEvent - ) => void - onBlur?: () => void + onChange?: (value: T) => void + onBlur?: FocusEventHandler // onWheel?: () => void disabled?: boolean - value?: string - children?: JSX.Element | JSX.Element[] - defaultValue?: string + value?: T + // children?: JSX.Element | JSX.Element[] + defaultValue?: T pattern?: string onKeyDown?: (e: KeyboardEvent) => void className?: string } -function Input( +function Input( { type = 'text', placeholder = 'placeholder', @@ -63,7 +62,7 @@ function Input( maxlength = 500, label, onChange = (value) => null, - onBlur = () => null, + onBlur, // onWheel = () => null, disabled, value: valueProp, @@ -72,7 +71,7 @@ function Input( pattern, onKeyDown, className, - }: InputProps, + }: WithChildren>, ref: React.ForwardedRef ) { const [value, setValue] = useControlled(valueProp, defaultValue) @@ -80,7 +79,7 @@ function Input( const handleInput = useCallback( (e: React.FormEvent) => { if (ref) { - onChange(e) + onChange(e as T) return } const target = e.target as HTMLInputElement @@ -93,7 +92,7 @@ function Input( : target.value setValue(v) - onChange(v) + onChange(v as T) } }, // eslint-disable-next-line react-hooks/exhaustive-deps @@ -112,7 +111,7 @@ function Input( min={min} max={max} maxLength={maxlength} - defaultValue={defaultValue} + defaultValue={defaultValue as string} value={value} onChange={handleInput} onBlur={onBlur} @@ -127,4 +126,4 @@ function Input( ) } -export default memo(React.forwardRef(Input)) +export default memo(React.forwardRef(Input)) as typeof Input diff --git a/src/atoms/logo/index.jsx b/src/atoms/logo/index.jsx deleted file mode 100644 index 1f314ae59..000000000 --- a/src/atoms/logo/index.jsx +++ /dev/null @@ -1,47 +0,0 @@ -import { useLocalSettings } from '@context/localSettingsStore' -import useSettings from '@hooks/use-settings' -import styles from '@style' -import { memo } from 'react' -import { useMemo } from 'react' -import { RotatingLogoSVG } from '@icons' -import { randomSeed } from '@utils' -export const RotatingLogoRemote = ({ className, seed = 1 }) => { - const theme = useLocalSettings((state) => state.theme) - const { logos } = useSettings() - - const logo = useMemo( - () => - logos && seed && logos.length - ? logos[Math.floor(Math.random() * logos.length)] - : null, - [logos, seed] - ) - return ( -
- {true && theme !== 'unset' && logo && ( - teia-logo - )} -
- ) -} - -export const RotatingLogo = ({ className, seed = 1 }) => { - const Logo = useMemo(() => { - return RotatingLogoSVG[ - Math.floor(randomSeed(seed) * RotatingLogoSVG.length) - ] - }, [seed]) - return ( -
- -

BETA

-
- ) -} - -export default memo(RotatingLogo) diff --git a/src/atoms/logo/index.tsx b/src/atoms/logo/index.tsx new file mode 100644 index 000000000..c5d0a829f --- /dev/null +++ b/src/atoms/logo/index.tsx @@ -0,0 +1,48 @@ +// import { useLocalSettings } from '@context/localSettingsStore' +// import useSettings from '@hooks/use-settings' +import styles from '@style' +import { memo } from 'react' +import { useMemo } from 'react' +import { RotatingLogoSVG } from '@icons' +import { randomSeed } from '@utils' + +// export const RotatingLogoRemote = ({ className = '', seed = 1 }) => { +// const theme = useLocalSettings((state) => state.theme) +// const { logos } = useSettings() + +// const logo = useMemo( +// () => +// logos && seed && logos.length +// ? logos[Math.floor(Math.random() * logos.length)] +// : null, +// [logos, seed] +// ) +// return ( +//
+// {true && theme !== 'unset' && logo && ( +// teia-logo +// )} +//
+// ) +// } + +export const RotatingLogo = ({ className = '', seed = 1 }) => { + const Logo = useMemo(() => { + return RotatingLogoSVG[ + Math.floor(randomSeed(seed) * RotatingLogoSVG.length) + ] + }, [seed]) + return ( +
+ +

BETA

+
+ ) +} + +export default memo(RotatingLogo) diff --git a/src/atoms/select/types.d.ts b/src/atoms/select/types.d.ts new file mode 100644 index 000000000..8acb294fc --- /dev/null +++ b/src/atoms/select/types.d.ts @@ -0,0 +1,4 @@ +export interface SelectField { + label?: string + value: string +} diff --git a/src/atoms/token-collection/index.tsx b/src/atoms/token-collection/index.tsx index b2d67b690..0563bce3a 100644 --- a/src/atoms/token-collection/index.tsx +++ b/src/atoms/token-collection/index.tsx @@ -22,6 +22,7 @@ import { shallow } from 'zustand/shallow' import type { RequestDocument } from 'graphql-request' import { NFT } from '@types' +import { getSdkWithHooks } from 'gql' /** Single view, vertical feed */ function SingleView({ tokens }: { tokens: NFT[] }) { @@ -53,8 +54,10 @@ function MasonryView({ tokens }: { tokens: NFT[] }) { // TODO (mel): Avoid pop drilling feeds_menu, once the context will be cleaner we could maybe introduce smaller contexts, one could be the "profile" context // /** +type Query = keyof ReturnType + interface TokenCollectionProps { - query: RequestDocument + query: RequestDocument | Query label: string namespace: string extractTokensFromResponse: ( diff --git a/src/components/collab/CollabSwitch.tsx b/src/components/collab/CollabSwitch.tsx index b60f100cf..f41c8a9af 100644 --- a/src/components/collab/CollabSwitch.tsx +++ b/src/components/collab/CollabSwitch.tsx @@ -34,7 +34,7 @@ export const CollabSwitch = ({ className ) if (!address) { - return 'Not logged in' + return

Not logged in

} if (!data) { return diff --git a/src/components/collab/show/CollabIssuerInfo.tsx b/src/components/collab/show/CollabIssuerInfo.tsx index e076553a0..ebd3dd8e7 100644 --- a/src/components/collab/show/CollabIssuerInfo.tsx +++ b/src/components/collab/show/CollabIssuerInfo.tsx @@ -27,7 +27,7 @@ export const CollabIssuerInfo = ({ creator }: { creator: ArtistProfile }) => { onBlur={() => setShowCollabSummary(false)} > {showCollabSummary && ( diff --git a/src/components/collab/show/CollabParticipant.tsx b/src/components/collab/show/CollabParticipant.tsx index 444f1df01..d5b0de042 100644 --- a/src/components/collab/show/CollabParticipant.tsx +++ b/src/components/collab/show/CollabParticipant.tsx @@ -1,11 +1,15 @@ -import get from 'lodash/get' import { PATH } from '@constants' import { Link } from 'react-router-dom' import styles from '../index.module.scss' +import { Teia_Shareholders } from 'gql' -export const CollabParticipant = ({ participant }) => { - const displayName = get(participant, 'shareholder_profile.name') - ? get(participant, 'shareholder_profile.name') +export const CollabParticipant = ({ + participant, +}: { + participant: Teia_Shareholders +}) => { + const displayName = participant.shareholder_profile?.name + ? participant.shareholder_profile.name : participant.shareholder_address return ( diff --git a/src/components/collab/show/TxRow.tsx b/src/components/collab/show/TxRow.tsx index e891221c7..212c58f68 100644 --- a/src/components/collab/show/TxRow.tsx +++ b/src/components/collab/show/TxRow.tsx @@ -49,7 +49,9 @@ export const TxRow = ({ tx, index, onAdd, onRemove }: TxRowProps) => { min={1} value={amount} onChange={(v) => { - if (typeof v === 'number') setAmount(v.toString()) + // if (typeof v === 'number') setAmount(v.toString()) + // else setAmount(v) + setAmount(v) }} /> diff --git a/src/components/footer/index.tsx b/src/components/footer/index.tsx index aa50f63e7..4c1d702bf 100644 --- a/src/components/footer/index.tsx +++ b/src/components/footer/index.tsx @@ -9,7 +9,6 @@ import classnames from 'classnames' import { Toggle } from '@atoms/toggles' import { useLocalSettings } from '@context/localSettingsStore' import { RotatingLogo } from '@atoms/logo' -import useSettings from '@hooks/use-settings' import { Line } from '@atoms/line' import { shallow } from 'zustand/shallow' import { useUserStore } from '@context/userStore' @@ -29,8 +28,6 @@ export const Footer = ({ menu, pin }: FooterProps) => { shallow ) - const { logos } = useSettings() - const transition = () => { return { initial: { @@ -71,7 +68,7 @@ export const Footer = ({ menu, pin }: FooterProps) => { alt="teia rotating logo" onClick={() => setLogoSeed(Math.random() * 100)} > - + )}
@@ -91,7 +88,9 @@ export const Footer = ({ menu, pin }: FooterProps) => {
-
{walletPreview(address)}
+ {address && ( +
{walletPreview(address)}
+ )} + onReset: () => void + fields: ReturnType +} + +function Form({ fields, defaultValues, onSubmit, onReset }: FormProps) { const { register, control, @@ -25,7 +38,7 @@ function Form({ fields, defaultValues, children, onSubmit, onReset }) { value={value} control={control} field={f} - error={get(errors, f.name)} + error={get(errors, f.name || '') as FieldError} /> ) })} diff --git a/src/components/form/FormFields.jsx b/src/components/form/FormFields.tsx similarity index 69% rename from src/components/form/FormFields.jsx rename to src/components/form/FormFields.tsx index c9254da80..5aa3c0cc0 100644 --- a/src/components/form/FormFields.jsx +++ b/src/components/form/FormFields.tsx @@ -5,22 +5,46 @@ import styles from '@style' import { memo } from 'react' import { Upload } from '@components/upload/index' import { ALLOWED_FILETYPES_LABEL } from '@constants' -import { Controller } from 'react-hook-form' +import { + Control, + Controller, + FieldError, + FieldValues, + UseFormRegister, +} from 'react-hook-form' import classNames from 'classnames' +import getFields from '@pages/mint/fields' +import { Unpacked } from '@types' -const FieldError = memo(({ error, text }) => { - const classes = classNames({ - [styles.error]: true, - [styles.text_field_error]: text, - }) - return

{error}

-}) +const FormFieldError = memo( + ({ error, text }: { error?: string; text?: boolean }) => { + const classes = classNames({ + [styles.error]: true, + [styles.text_field_error]: text, + }) + return

{error}

+ } +) + +interface FormFieldsProps { + value: T + field: Unpacked> + error?: FieldError + register: UseFormRegister + control: Control +} /** * Wrapper of atoms to react form with local storage support */ -export const FormFields = ({ value, field, error, register, control }) => { - const name = field.name +export const FormFields = ({ + value, + field, + error, + register, + control, +}: FormFieldsProps) => { + const name = field.name || 'noname' switch (field.type) { case 'text': @@ -30,11 +54,11 @@ export const FormFields = ({ value, field, error, register, control }) => { className={styles.field} type={field.type} label={field.label} - placeholder={field.placeholder} + placeholder={field.placeholder || ''} {...register(name, field.rules)} > - {error && } + {error ? : null} ) case 'textarea': @@ -46,7 +70,7 @@ export const FormFields = ({ value, field, error, register, control }) => { {...register(name, field.rules)} > - {error && } + {error && } ) case 'select': @@ -54,7 +78,7 @@ export const FormFields = ({ value, field, error, register, control }) => { return ( ( @@ -75,7 +99,7 @@ export const FormFields = ({ value, field, error, register, control }) => { return ( ( @@ -94,7 +118,7 @@ export const FormFields = ({ value, field, error, register, control }) => { return ( ( @@ -108,7 +132,7 @@ export const FormFields = ({ value, field, error, register, control }) => { onChange={onChange} allowedTypesLabel={ALLOWED_FILETYPES_LABEL} > - {error && } + {error && } )} /> diff --git a/src/components/form/MintForm.jsx b/src/components/form/MintForm.tsx similarity index 93% rename from src/components/form/MintForm.jsx rename to src/components/form/MintForm.tsx index b76b44a4f..7db2d32e5 100644 --- a/src/components/form/MintForm.jsx +++ b/src/components/form/MintForm.tsx @@ -9,9 +9,11 @@ import { motion } from 'framer-motion' import { useMintStore } from '@context/mintStore' import { useFormContext, useFormState } from 'react-hook-form' import { useModalStore } from '@context/modalStore' +import { MintOutletContext } from '@pages/mint/types' export default function MintForm() { - const { artifact, license, minterName, address, balance } = useOutletContext() + const { artifact, license, minterName, address, balance } = + useOutletContext() const navigate = useNavigate() const { control } = useFormContext() const { defaultValues } = useFormState({ control }) diff --git a/src/components/media-types/pdf/index.tsx b/src/components/media-types/pdf/index.tsx index 79f503341..32c6a1fe3 100644 --- a/src/components/media-types/pdf/index.tsx +++ b/src/components/media-types/pdf/index.tsx @@ -103,7 +103,7 @@ export const PdfComponent = memo(function ({ loading={cover} onLoadSuccess={onDocumentLoadSuccess} onLoadError={onDocumentLoadError} - title={`PDF object ${nft.token_id}`} + key={`PDF object ${nft.token_id}`} options={options} > {renderedPageNumber && renderedPageNumber !== pageNumber && ( diff --git a/src/components/upload/index.jsx b/src/components/upload/index.jsx deleted file mode 100644 index ca2987a06..000000000 --- a/src/components/upload/index.jsx +++ /dev/null @@ -1,75 +0,0 @@ -import { forwardRef, useState } from 'react' -import useLanguage from '@hooks/use-language' -import styles from '@style' -import { getMimeType } from '@utils/sanitise' -// import { Buffer } from 'buffer' - -/** - * Upload component - * @param {Object} uploadProps - * @param {string} uploadProps.label - The displayed label - * @param {string} uploadProps.allowedTypes - A comma separated list of accepted types - * @param {boolean} uploadProps.allowedTypesLabel - A comma separated list of label of accepted types - * @param {import("@types").UploadCallback} uploadProps.onChange - on file change. - */ -export const Upload = forwardRef( - ( - { - label, - file: stateFile, - placeHolder, - allowedTypes, - allowedTypesLabel, - children, - onChange = () => null, - ...extra - }, - ref - ) => { - const { language } = useLanguage() - const [title, setTitle] = useState(placeHolder) - - const onFileChange = async (e) => { - const { files } = e.target - - const file = files[0] - if (!file) { - setTitle(placeHolder) - return - } - setTitle(file.name) - const mimeType = file.type === '' ? await getMimeType(file) : file.type - const buffer = Buffer.from(await file.arrayBuffer()) - - // set reader for preview - const reader = new FileReader() - reader.addEventListener('load', (e) => { - onChange({ title, mimeType, file, buffer, reader: e.target.result }) - }) - reader.readAsDataURL(file) - } - - const props = { - type: 'file', - name: extra.name || 'file', - } - - if (allowedTypes) { - props.accept = allowedTypes.join(',') - } - - return ( -
- {label} - -
- {language.mint.supports}: {allowedTypesLabel} -
- {children} -
- ) - } -) diff --git a/src/components/upload/index.tsx b/src/components/upload/index.tsx new file mode 100644 index 000000000..64ca5c123 --- /dev/null +++ b/src/components/upload/index.tsx @@ -0,0 +1,96 @@ +import React, { ChangeEvent, memo, useState } from 'react' +import useLanguage from '@hooks/use-language' +import styles from '@style' +import { getMimeType } from '@utils/sanitise' +import { FileForm, WithChildren } from '@types' +// import { Buffer } from 'buffer' + +interface UploadProps { + /**The displayed label */ + label: string + /**A list of accepted types */ + allowedTypes: string[] + /**A comma separated list of label of accepted types*/ + allowedTypesLabel: string + + onChange: (file: FileForm) => void + + file: FileForm + placeHolder?: string + + /** Extra props */ + [x: string]: any +} + +/** + * Upload component + * @param {Object} uploadProps + * @param {string} uploadProps.label - + * @param {string} uploadProps.allowedTypes - + * @param {boolean} uploadProps.allowedTypesLabel - + * @param {import("@types").UploadCallback} uploadProps.onChange - on file change. + */ +export const Upload = ( + { + label, + file: stateFile, + placeHolder, + allowedTypes, + allowedTypesLabel, + children, + onChange, + ...extra + }: WithChildren, + ref: React.ForwardedRef +) => { + const { language } = useLanguage() + const [title, setTitle] = useState(placeHolder) + + const onFileChange = async (e: ChangeEvent) => { + const { files } = e.target + if (!files) { + setTitle(placeHolder) + return + } + + const file = files[0] + + setTitle(file.name) + const mimeType = file.type === '' ? await getMimeType(file) : file.type + const buffer = Buffer.from(await file.arrayBuffer()) + + // set reader for preview + const reader = new FileReader() + reader.addEventListener('load', (e) => { + if (e.target) + onChange({ title, mimeType, file, buffer, reader: e.target.result }) + }) + reader.readAsDataURL(file) + } + + const props: { type: string; name: string; accept?: string } = { + type: 'file', + name: extra.name || 'file', + accept: undefined, + } + + if (allowedTypes) { + props.accept = allowedTypes.join(',') + } + + return ( +
+ {label} + +
+ {language.mint.supports}: {allowedTypesLabel} +
+ {children} +
+ ) +} + +export default memo(React.forwardRef(Upload)) diff --git a/src/context/mintStore.ts b/src/context/mintStore.ts index 7dac37540..f93ff11b1 100644 --- a/src/context/mintStore.ts +++ b/src/context/mintStore.ts @@ -20,14 +20,10 @@ import { getImageDimensions, removeExtension, } from '@utils/mint' -import { FileMint, Format } from '@types' +import { FileForm, Format } from '@types' import { prepareFilesFromZIP } from '@utils/html' import { prepareDirectory, prepareFile } from '@data/ipfs' - -interface SelectField { - label?: string - value: string -} +import { SelectField } from '@atoms/select/types' interface MintState { title?: string @@ -40,9 +36,9 @@ interface MintState { language?: SelectField nsfw: boolean photosensitive: boolean - cover?: FileMint - artifact?: FileMint - thumbnail?: FileMint + cover?: FileForm + artifact?: FileForm + thumbnail?: FileForm isValid: boolean reset: () => void diff --git a/src/data/ipfs.ts b/src/data/ipfs.ts index 9ca5d54a5..3edc8dc88 100644 --- a/src/data/ipfs.ts +++ b/src/data/ipfs.ts @@ -7,6 +7,7 @@ import { api } from './api' import { useUserStore } from '@context/userStore' import { useModalStore } from '@context/modalStore' import { FileForm, FileMint, MintFormat } from '@types' +import { pickBy } from 'lodash' /** * Upload a single file through the IPFS proxy. @@ -415,7 +416,13 @@ async function buildMetadataFile({ if (rights === 'custom') metadata.rightUri = rightUri if (language != null) metadata.language = language - return JSON.stringify(metadata) + // const cleaned = Object.keys(metadata).forEach( + // (key) => get(metadata,key) === undefined && delete metadata[key] + // ) + + const cleaned_metas = pickBy(metadata, (v) => v !== undefined) + + return JSON.stringify(cleaned_metas) } // TODO: Move types to each roots? @@ -437,35 +444,35 @@ interface PrepareProps { } interface PrepareDirectoryOptions { - name: string - description: string - tags: string + name?: string + description?: string + tags?: string address: string files: FileMint[] cover: FileForm thumbnail: FileForm - generateDisplayUri: string - rights: string - rightUri: string - language: string - accessibility: string - contentRating: string formats: MintFormat[] + generateDisplayUri: string + rights?: string + rightUri?: string + language?: string + accessibility?: string + contentRating?: string } interface BuildMetadataOptions { - name: string - description: string - tags: string + name?: string + description?: string + tags?: string uri: string address: string displayUri: string thumbnailUri: string - rights: string + formats: MintFormat[] + rights?: string rightUri?: string language?: string - accessibility: string - contentRating: string - formats: MintFormat[] + accessibility?: string + contentRating?: string } interface TeiaMetadata { name: string diff --git a/src/declaration.d.ts b/src/declaration.d.ts index 9f0c2e259..066566b27 100644 --- a/src/declaration.d.ts +++ b/src/declaration.d.ts @@ -1,2 +1,10 @@ +// import React from 'react' + +// declare module 'react' { +// function forwardRef( +// render: (props: P, ref: React.Ref) => React.ReactElement | null +// ): (props: P & React.RefAttributes) => React.ReactElement | null +// } + declare module '*.scss' declare module '@style' diff --git a/src/pages/collaborate/manage.jsx b/src/pages/collaborate/manage.jsx index 0574c16b1..9b5d27de4 100644 --- a/src/pages/collaborate/manage.jsx +++ b/src/pages/collaborate/manage.jsx @@ -77,7 +77,7 @@ export const CollabContractsOverview = ({ showAdminOnly = false }) => { return availableCollabs }, [data, address /*, originatedContract*/, showAdminOnly]) if (!address) { - return + return null } if (!data) { return diff --git a/src/pages/home/feeds/lists-feed.jsx b/src/pages/home/feeds/lists-feed.tsx similarity index 92% rename from src/pages/home/feeds/lists-feed.jsx rename to src/pages/home/feeds/lists-feed.tsx index 9a8bd2638..c9b0faac3 100644 --- a/src/pages/home/feeds/lists-feed.jsx +++ b/src/pages/home/feeds/lists-feed.tsx @@ -7,12 +7,12 @@ import { useState } from 'react' import { Button } from '@atoms/button' import axios from 'axios' -async function fetchList(url) { - const data = await axios.get(url) - return data.data.map((e) => e.toString()) +async function fetchList(url: string): Promise { + const { data } = await axios.get(url) + return data.map((e) => e.toString()) } -const lists = { +const lists: { [key: string]: string } = { 'NSFW List': 'https://lists.teia.art/nsfw.json', 'Photo Sensitive List': 'https://lists.teia.art/photosensitive.json', 'Restricted OBJKTs (deprecated)': diff --git a/src/pages/mint/fields.js b/src/pages/mint/fields.ts similarity index 94% rename from src/pages/mint/fields.js rename to src/pages/mint/fields.ts index c17830ac3..bb5b5bd2f 100644 --- a/src/pages/mint/fields.js +++ b/src/pages/mint/fields.ts @@ -48,7 +48,7 @@ export const fields = [ type: 'text', placeholder: 'Comma separated. example: illustration, digital (optional)', rules: { - setValueAs: (v) => + setValueAs: (v: string) => join( uniq( v @@ -107,7 +107,7 @@ export const fields = [ type: 'text', rules: { required: true, - valueAs: (f) => f.value, + valueAs: (f: { value: string; label: string }) => f.value, pattern: { value: /((https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})|(ipfs:\/\/.*))/g, @@ -119,7 +119,7 @@ export const fields = [ label: 'Language', placeholder: '(optional)', rules: { - valueAs: (f) => f.value, + valueAs: (f: { value: string; label: string }) => f.value, }, type: 'select-search', alt: 'token language', @@ -157,7 +157,7 @@ export const fields = [ }, ] -const getFields = (deps) => { +const getFields = (deps: T) => { // return () => { const keys = Object.keys(deps) return fields diff --git a/src/pages/mint/types.d.ts b/src/pages/mint/types.d.ts new file mode 100644 index 000000000..6c8abde8d --- /dev/null +++ b/src/pages/mint/types.d.ts @@ -0,0 +1,10 @@ +import type { SelectField } from '@atoms/select/types' +import type { FileForm } from '@types' + +export interface MintOutletContext { + balance?: number + minterName?: string + address: string + artifact?: FileForm + license?: SelectField +} diff --git a/src/types.d.ts b/src/types.d.ts index 88ede8f03..4cafaa9bf 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -1,3 +1,19 @@ +// UTILITIES + +import React from 'react' + +/** Utility type to extract a single type from an Array type */ +export type Unpacked = T extends (infer U)[] ? U : T + +/** Wrapper type for React components with childrens */ +export type WithChildren = T & { children?: React.ReactNode } + +/** Wrapper type for React components with childrens (only React components aka clonable) */ +export type WithCompChildren = T & { + children?: React.ReactElement> +} + +// Global to tidy export interface Format { mimeType: string fileSize: number @@ -33,7 +49,7 @@ export type FileForm = { /** The file object */ file?: File /** The buffer extracted from the file. */ - buffer: ArrayBuffer + buffer: Uint8Array /** The file reader*/ reader: string | ArrayBuffer | null format?: Format diff --git a/src/utils/html.js b/src/utils/html.ts similarity index 87% rename from src/utils/html.js rename to src/utils/html.ts index 7a2f10d28..9cff6828e 100644 --- a/src/utils/html.js +++ b/src/utils/html.ts @@ -1,8 +1,13 @@ import * as fflate from 'fflate' import mime from 'mime-types' + import { MIMETYPE } from '@constants' -export async function prepareFilesFromZIP(buffer) { +interface FileBlobs { + [path: string]: Blob +} + +export async function prepareFilesFromZIP(buffer: Uint8Array) { console.debug('Preparing files from ZIP') // unzip files let files = await unzipBuffer(buffer) @@ -23,7 +28,7 @@ export async function prepareFilesFromZIP(buffer) { } // reformat - files = Object.entries(files).map((file) => { + let files_array = Object.entries(files).map((file) => { console.debug('Entry: ', file) return { path: file[0], @@ -32,15 +37,15 @@ export async function prepareFilesFromZIP(buffer) { }) // remove top level dir - files = files.filter((f) => f.path !== '') + files_array = files_array.filter((f) => f.path !== '') - return files + return files_array } -export async function unzipBuffer(buffer) { +export async function unzipBuffer(buffer: Uint8Array) { console.debug('Unzipping buffer') - let entries = fflate.unzipSync(buffer) - entries = Object.entries(entries).map((entry) => { + let unzipped = fflate.unzipSync(buffer) + let entries = Object.entries(unzipped).map((entry) => { console.debug('Entry: ', entry) return { path: entry[0], @@ -49,7 +54,7 @@ export async function unzipBuffer(buffer) { }) // Find root dir - let rootDir = null + let rootDir: string | null = null for (const entry of entries) { const filename = entry.path.replace(/^.*[\\/]/, '') if (filename === 'index.html') { @@ -69,7 +74,7 @@ export async function unzipBuffer(buffer) { console.debug('Creating file map') // Create files map - const files = {} + const files: FileBlobs = {} entries.forEach((entry, index) => { const relPath = rootDir === '/' ? entry.path : entry.path.replace(`${rootDir}`, '') @@ -85,14 +90,14 @@ export async function unzipBuffer(buffer) { } files[relPath] = new Blob([entry.buffer], { - type, + type: type || undefined, }) }) return files } -export function injectCSPMetaTagIntoDataURI(dataURI) { +export function injectCSPMetaTagIntoDataURI(dataURI: string) { // data URI -> HTML const prefix = 'data:text/html;base64,' const base64 = dataURI.replace(prefix, '') @@ -105,7 +110,7 @@ export function injectCSPMetaTagIntoDataURI(dataURI) { return `${prefix}${btoa(safeHTML)}` } -export function injectCSPMetaTagIntoBuffer(buffer) { +export function injectCSPMetaTagIntoBuffer(buffer: ArrayBuffer) { // buffer -> HTML const html = new TextDecoder().decode(buffer) @@ -116,7 +121,7 @@ export function injectCSPMetaTagIntoBuffer(buffer) { return new TextEncoder().encode(safeHTML) } -export function injectCSPMetaTagIntoHTML(html) { +export function injectCSPMetaTagIntoHTML(html: string) { // HTML -> doc const parser = new DOMParser() const doc = parser.parseFromString(html, 'text/html') @@ -238,7 +243,7 @@ export function injectCSPMetaTagIntoHTML(html) { return `${doc.documentElement.innerHTML}` } -export function getCoverImagePathFromBuffer(buffer) { +export function getCoverImagePathFromBuffer(buffer: Buffer) { // buffer -> html const html = new TextDecoder().decode(buffer) @@ -249,7 +254,7 @@ export function getCoverImagePathFromBuffer(buffer) { return getCoverImagePathFromDoc(doc) } -function getCoverImagePathFromDoc(doc) { +function getCoverImagePathFromDoc(doc: Document) { let meta = doc.head.querySelector('meta[property="cover-image"]') if (!meta) { meta = doc.head.querySelector('meta[property="og:image"]') @@ -260,7 +265,7 @@ function getCoverImagePathFromDoc(doc) { return meta.getAttribute('content') } -export async function validateFiles(files) { +export async function validateFiles(files: FileBlobs) { // check for index.html file if (!files['index.html']) { return { @@ -288,7 +293,7 @@ export async function validateFiles(files) { } } -export function dataRUIToBuffer(dataURI) { +export function dataRUIToBuffer(dataURI: string) { const parts = dataURI.split(',') const base64 = parts[1] const binaryStr = atob(base64) diff --git a/src/utils/media.js b/src/utils/media.ts similarity index 79% rename from src/utils/media.js rename to src/utils/media.ts index 87cea2cd2..debeef5a2 100644 --- a/src/utils/media.js +++ b/src/utils/media.ts @@ -2,25 +2,29 @@ import * as fflate from 'fflate' import mime from 'mime-types' import { ALLOWED_COVER_MIMETYPES } from '@constants' -export async function unzipMedia(buffer) { +export async function unzipMedia(buffer: Buffer) { // unzip into blobs - let entries = fflate.unzipSync(buffer) - entries = Object.entries(entries).map((entry) => { + let unzipped = fflate.unzipSync(buffer) + let entries = Object.entries(unzipped).map((entry) => { const fileName = getFileName(entry[0]) return { fileName, buffer: entry[1], + mimeType: undefined as string | undefined, } }) // keep only images/videos entries = entries .map((e) => { - e.mimeType = mime.lookup(e.fileName) + e.mimeType = mime.lookup(e.fileName) || undefined return e }) .filter((e) => { - return ALLOWED_COVER_MIMETYPES.includes(e.mimeType) + if (e.mimeType) { + return ALLOWED_COVER_MIMETYPES.includes(e.mimeType) + } + return false }) // format as: { meta, blob, reader } @@ -42,7 +46,7 @@ export async function unzipMedia(buffer) { return media } -export async function getMediaMetadata(blob) { +export async function getMediaMetadata(blob: Blob) { if (blob.type.indexOf('image') === 0) { return await getImageMetadata(blob) } else if (blob.type.indexOf('video') === 0) { @@ -52,7 +56,7 @@ export async function getMediaMetadata(blob) { } } -export function getImageMetadata(blob) { +export function getImageMetadata(blob: Blob) { return new Promise((resolve, reject) => { const img = new Image() img.onload = () => { @@ -72,7 +76,7 @@ export function getImageMetadata(blob) { }) } -export function getVideoMetadata(blob) { +export function getVideoMetadata(blob: Blob) { return new Promise((resolve, reject) => { const video = document.createElement('video') video.addEventListener( @@ -98,7 +102,7 @@ export function getVideoMetadata(blob) { }) } -async function blobToDataURL(blob) { +async function blobToDataURL(blob: Blob) { return new Promise((resolve, reject) => { let reader = new FileReader() reader.onerror = reject @@ -107,7 +111,7 @@ async function blobToDataURL(blob) { }) } -function getFileName(path) { +function getFileName(path: string) { const parts = path.split('/') return parts[parts.length - 1] } diff --git a/src/utils/mint.ts b/src/utils/mint.ts index 08ef108c2..8e1e95a38 100644 --- a/src/utils/mint.ts +++ b/src/utils/mint.ts @@ -3,7 +3,7 @@ import { MIMETYPE, THUMBNAIL_COMPRESSOR_OPTIONS, } from '@constants' -import { FileMint } from '@types' +import type { FileForm } from '@types' import Compressor from 'compressorjs' /** @@ -33,7 +33,7 @@ interface ImageDimensions { } export const getImageDimensions = async ( - file: FileMint + file: FileForm ): Promise => { return await new Promise((resolve, reject) => { if (file) { @@ -52,15 +52,15 @@ export const getImageDimensions = async ( } export const generateCompressedImage = async ( - file: FileMint, + file: FileForm, options: Compressor.Options -): Promise => { +): Promise => { if (!file.file) return undefined const blob = await compressImage(file.file, options) const mimeType = blob.type const buffer = await blob.arrayBuffer() const reader = await blobToDataURL(blob) - return { mimeType, buffer, reader } + return { mimeType, buffer: new Uint8Array(buffer), reader } } const blobToDataURL = async ( @@ -92,8 +92,8 @@ export const compressImage = ( } export const generateCoverAndThumbnail = async ( - file: FileMint -): Promise<{ cover?: FileMint; thumbnail?: FileMint }> => { + file: FileForm +): Promise<{ cover?: FileForm; thumbnail?: FileForm }> => { // TMP: skip GIFs to avoid making static if (file.mimeType === MIMETYPE.GIF) { return { diff --git a/src/utils/motion.js b/src/utils/motion.ts similarity index 100% rename from src/utils/motion.js rename to src/utils/motion.ts diff --git a/src/utils/os.js b/src/utils/os.ts similarity index 100% rename from src/utils/os.js rename to src/utils/os.ts diff --git a/src/utils/sanitise.js b/src/utils/sanitise.js deleted file mode 100644 index 9801ef708..000000000 --- a/src/utils/sanitise.js +++ /dev/null @@ -1,95 +0,0 @@ -import { MIMETYPE, MARKETPLACE_CONTRACT_V1 } from '@constants' - -/** - * If a OBJKT is missing a relevant property, we filter it out. - * As example http://localhost:3000/objkt/2862 (has no token_info) - */ -export const SanitiseOBJKT = (objkt) => { - return objkt.filter((o) => { - if (Object.keys(o).length === 0) { - // if empty object ignore - return true - } else if (!o.token_info) { - // if missing token_info flag as corrupt - console.warn('objkt flagged as corrupt', objkt) - return false - } - return true - }) -} - -export const SanitizeDipDup = (objkt) => { - objkt.token_id = objkt.owner - objkt.artifactUri = objkt.artifact_uri - return objkt -} - -// check for mymetype using FileReader API (should read any file including binaries) -export const getMimeType = (file) => { - return new Promise((resolve) => { - const filereader = new FileReader() - filereader.onloadend = function (e) { - if (e.target.readyState === FileReader.DONE) { - const uint = new Uint8Array(e.target.result) - const bytes = [] - uint.forEach((byte) => { - bytes.push(byte.toString(16)) - }) - const hex = bytes.join('').toUpperCase() - - let mimeType - - switch (hex) { - case '7BA2020': - mimeType = MIMETYPE.GLTF - break - case '676C5446': - mimeType = MIMETYPE.GLB - break - default: - mimeType = 'Unknown MimeType' - } - - resolve(mimeType) - } - } - filereader.onerror = () => resolve('Unknown MimeType') - filereader.readAsArrayBuffer(file.slice(0, 4)) - }) -} - -/** - * TODO: - * Receives an array of objects and filters them out if they're part of the blocklist (o.json) - */ -export const filterObjkts = (items) => { - return items -} - -export const getTotalSales = ({ owners, creators }) => { - if (!owners) return 0 - return Object.keys(owners).reduce((edition, ownerID) => { - // not the platform or the creator - if (ownerID !== MARKETPLACE_CONTRACT_V1 && !creators.includes(ownerID)) { - // add the count of market owned editions - return edition + Number(owners[ownerID]) - } - return edition - }, 0) -} - -/** - * Human-readable file size - * - */ -export const formatBytes = (bytes, decimals = 2) => { - if (bytes === 0) return '0 Bytes' - - const k = 1024 - const dm = decimals < 0 ? 0 : decimals - const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] - - const i = Math.floor(Math.log(bytes) / Math.log(k)) - - return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}` -} diff --git a/src/utils/sanitise.ts b/src/utils/sanitise.ts new file mode 100644 index 000000000..08e47dce1 --- /dev/null +++ b/src/utils/sanitise.ts @@ -0,0 +1,47 @@ +import { MIMETYPE } from '@constants' + +// check for mymetype using FileReader API (should read any file including binaries) +export const getMimeType = (file: Blob): Promise => { + return new Promise((resolve) => { + const filereader = new FileReader() + filereader.onloadend = function (e: ProgressEvent) { + if (e.target && e.target.readyState === FileReader.DONE) { + const uint = new Uint8Array(e.target.result as ArrayBuffer) + const bytes: string[] = [] + uint.forEach((byte) => { + bytes.push(byte.toString(16)) + }) + const hex = bytes.join('').toUpperCase() + + let mimeType + + switch (hex) { + case '7BA2020': + mimeType = MIMETYPE.GLTF + break + case '676C5446': + mimeType = MIMETYPE.GLB + break + default: + mimeType = 'Unknown MimeType' + } + + resolve(mimeType) + } + } + filereader.onerror = () => resolve('Unknown MimeType') + filereader.readAsArrayBuffer(file.slice(0, 4)) + }) +} + +export const formatBytes = (bytes: number, decimals = 2) => { + if (bytes === 0) return '0 Bytes' + + const k = 1024 + const dm = decimals < 0 ? 0 : decimals + const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] + + const i = Math.floor(Math.log(bytes) / Math.log(k)) + + return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}` +} diff --git a/src/utils/storage.js b/src/utils/storage.js deleted file mode 100644 index b3ad5ff37..000000000 --- a/src/utils/storage.js +++ /dev/null @@ -1,19 +0,0 @@ -export const getItem = (prop) => { - let parsed - try { - parsed = JSON.parse(localStorage.getItem(prop)) - } catch (e) { - parsed = null - } - return parsed -} - -export const setItem = (prop, value) => { - localStorage.setItem(prop, JSON.stringify(value)) - - return getItem(prop) -} - -export const removeItem = (prop) => { - localStorage.removeItem(prop) -} diff --git a/src/utils/string.js b/src/utils/string.ts similarity index 64% rename from src/utils/string.js rename to src/utils/string.ts index b0df17392..8f89b557e 100644 --- a/src/utils/string.js +++ b/src/utils/string.ts @@ -1,4 +1,4 @@ -export const walletPreview = (wallet) => { +export const walletPreview = (wallet: string) => { try { return `${wallet.slice(0, 5)}...${wallet.slice( wallet.length - 5, @@ -9,6 +9,6 @@ export const walletPreview = (wallet) => { } } -export const capitalizeFirstLetter = (word) => { +export const capitalizeFirstLetter = (word: string) => { return word[0].toUpperCase() + word.slice(1) } diff --git a/src/utils/swr-laggy-middleware.js b/src/utils/swr-laggy-middleware.ts similarity index 76% rename from src/utils/swr-laggy-middleware.js rename to src/utils/swr-laggy-middleware.ts index 64d3840e4..d3b714de1 100644 --- a/src/utils/swr-laggy-middleware.js +++ b/src/utils/swr-laggy-middleware.ts @@ -1,12 +1,18 @@ import { useRef, useEffect, useCallback } from 'react' +import { SWRHook } from 'swr' +import { Middleware, PublicConfiguration } from 'swr/dist/types' // taken from https://swr.vercel.app/docs/middleware#keep-previous-result // This is a SWR middleware for keeping the data even if key changes. -function laggy(useSWRNext) { - return (key, fetcher, config) => { +function laggy(useSWRNext: SWRHook) { + return ( + key: string, + fetcher: (e: string) => any, + config: PublicConfiguration + ) => { // Use a ref to store previous returned data. - const laggyDataRef = useRef() + const laggyDataRef = useRef>() // Actual SWR hook. const swr = useSWRNext(key, fetcher, config) @@ -40,4 +46,4 @@ function laggy(useSWRNext) { } } -export default laggy +export default laggy as Middleware diff --git a/src/utils/time.js b/src/utils/time.ts similarity index 68% rename from src/utils/time.js rename to src/utils/time.ts index 2e2944ec6..fea68cc46 100644 --- a/src/utils/time.js +++ b/src/utils/time.ts @@ -1,21 +1,21 @@ -export function toHHMMSS(sec) { - let hours = Math.floor(sec / 3600) - let minutes = Math.floor((sec - hours * 3600) / 60) - let seconds = sec - hours * 3600 - minutes * 60 - - if (hours < 10) { +export function toHHMMSS(sec: number) { + let _hours = Math.floor(sec / 3600) + let _minutes = Math.floor((sec - _hours * 3600) / 60) + let _seconds = sec - _hours * 3600 - _minutes * 60 + let hours, minutes, seconds + if (_hours < 10) { hours = `0${hours}` } - if (minutes < 10) { + if (_minutes < 10) { minutes = `0${minutes}` } - if (seconds < 10) { + if (_seconds < 10) { seconds = `0${seconds}` } return `${hours}:${minutes}:${seconds}` } -export const getTimeAgo = (timestamp) => { +export const getTimeAgo = (timestamp: number) => { const stamp = Math.round(new Date(timestamp).getTime() / 1000) const now = Math.round(new Date().getTime() / 1000) @@ -49,17 +49,17 @@ export const getTimeAgo = (timestamp) => { return `${value} ${unit} ago` } -export const getISODate = (timestamp) => { - const pad = (n, s = 2) => `${new Array(s).fill(0)}${n}`.slice(-s) +export const getISODate = (timestamp: number) => { + const pad = (n: number, s = 2) => `${new Array(s).fill(0)}${n}`.slice(-s) const d = new Date(timestamp) return `${pad(d.getFullYear(), 4)}-${pad(d.getMonth() + 1)}-${pad( d.getDate() )} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}` } -export const getWordDate = (timestamp) => { +export const getWordDate = (timestamp: number) => { const date = new Date(timestamp) - const options = { + const options: Intl.DateTimeFormatOptions = { year: 'numeric', month: 'short', day: 'numeric', diff --git a/src/utils/verify.js b/src/utils/verify.ts similarity index 62% rename from src/utils/verify.js rename to src/utils/verify.ts index 21d4a0b46..6b47306f6 100644 --- a/src/utils/verify.js +++ b/src/utils/verify.ts @@ -6,20 +6,22 @@ const prefixes = { edpk: new Uint8Array([13, 15, 37, 217]), } -const hex2buf = (hex) => - new Uint8Array( - hex.match(/[\da-f]{2}/gi).map(function (h) { - return parseInt(h, 16) - }) - ) - -const b58cdecode = (enc, prefix) => { +const hex2buf = (hex: string) => { + const match = hex.match(/[\da-f]{2}/gi) + if (match) + return new Uint8Array( + match.map(function (h) { + return parseInt(h, 16) + }) + ) +} +const b58cdecode = (enc: string, prefix: Uint8Array) => { return import('bs58check').then((bs58check) => bs58check.decode(enc).slice(prefix.length) ) } -export const verify = async (bytes, sig, pk) => { +export const verify = async (bytes: string, sig, pk: string) => { const _sodium = await import('libsodium-wrappers') const sodium = await _sodium.await return sodium.crypto_sign_verify_detached( From 8a27154ff4dab76b9d91da5d30590c241a959e88 Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Fri, 24 Feb 2023 23:21:15 +0100 Subject: [PATCH 08/17] =?UTF-8?q?feat:=20=F0=9F=8E=A8=20rename=20to=20type?= =?UTF-8?q?script?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I'm realising now that history was lost on some files because too much edited between the commits, hence the blame history was lost this commits will avoid this happening later --- src/atoms/input/{Checkbox.jsx => Checkbox.tsx} | 0 src/atoms/input/{TextArea.jsx => TextArea.tsx} | 0 src/atoms/layout/container/{index.jsx => index.tsx} | 0 src/atoms/layout/{index.jsx => index.ts} | 0 src/atoms/loading/{index.jsx => index.tsx} | 0 src/atoms/marketplace-labels/{index.jsx => index.tsx} | 0 src/atoms/select/{Base.jsx => Base.tsx} | 0 src/atoms/select/{ThemeSelection.jsx => ThemeSelection.tsx} | 0 src/components/banners/{BottomBanner.jsx => BottomBanner.tsx} | 0 src/components/banners/{EventBanner.jsx => EventBanner.tsx} | 0 src/components/banners/{TopBanner.jsx => TopBanner.tsx} | 0 src/components/banners/{index.js => index.ts} | 0 src/components/feedback/{index.jsx => index.tsx} | 0 src/components/header/{Header.jsx => Header.tsx} | 0 src/components/header/events/{EventCard.jsx => EventCard.tsx} | 0 .../header/feed_toolbar/{FeedToolbar.jsx => FeedToolbar.tsx} | 0 src/components/header/{index.js => index.ts} | 0 src/components/header/main_menu/{MainMenu.jsx => MainMenu.tsx} | 0 src/components/header/{sample_events.js => sample_events.ts} | 0 src/components/icons/{index.jsx => index.tsx} | 0 .../item-info/{CheapestButton.jsx => CheapestButton.tsx} | 0 src/components/item-info/{Editions.jsx => Editions.tsx} | 0 src/components/item-info/{ItemInfo.jsx => ItemInfo.tsx} | 0 .../item-info/{ItemInfoCompact.jsx => ItemInfoCompact.tsx} | 0 src/components/markdown/{index.jsx => index.tsx} | 0 src/components/media-types/audio/{index.jsx => index.tsx} | 0 .../media-types/audio/{visualiser.jsx => visualiser.tsx} | 0 src/components/media-types/glb/{index.jsx => index.tsx} | 0 src/components/media-types/html/{index.jsx => index.tsx} | 0 src/components/media-types/html/{warning.jsx => warning.tsx} | 0 src/components/media-types/md/{index.jsx => index.tsx} | 0 src/components/media-types/unknown/{index.jsx => index.tsx} | 0 src/components/media-types/vector/{index.jsx => index.tsx} | 0 src/components/media-types/video/{index.jsx => index.tsx} | 0 src/components/owner-list/{index.jsx => index.tsx} | 0 src/components/preview/{index.jsx => index.tsx} | 0 src/components/responsive-masonry/{index.jsx => index.tsx} | 0 src/components/scroll-to-top/{index.jsx => index.tsx} | 0 src/components/tags/{index.jsx => index.tsx} | 0 src/hooks/{use-body-class.js => use-body-class.ts} | 0 src/hooks/{use-click-outside.js => use-click-outside.ts} | 0 src/hooks/{use-controlled.js => use-controlled.ts} | 0 src/hooks/{use-keyboard.js => use-keyboard.ts} | 0 src/hooks/{use-language.js => use-language.ts} | 0 src/hooks/{use-settings.js => use-settings.ts} | 0 src/hooks/{use-title.js => use-title.ts} | 0 src/hooks/{use-twemoji.js => use-twemoji.ts} | 0 src/icons/{index.js => index.ts} | 0 src/icons/{indexer_status.js => indexer_status.ts} | 0 src/icons/{refs.js => refs.ts} | 0 src/pages/about/{index.jsx => index.tsx} | 0 src/pages/collaborate/{create.jsx => create.tsx} | 0 src/pages/collaborate/{index.jsx => index.tsx} | 0 src/pages/collaborate/{manage.jsx => manage.tsx} | 0 src/pages/config/{Settings.jsx => Settings.tsx} | 0 src/pages/config/{index.jsx => index.tsx} | 0 src/pages/faq/{index.jsx => index.tsx} | 0 src/pages/home/feeds/{friends-feed.jsx => friends-feed.tsx} | 0 src/pages/home/feeds/{fund-feed.jsx => fund-feed.tsx} | 0 src/pages/home/feeds/{fund-feeds.jsx => fund-feeds.tsx} | 0 src/pages/home/feeds/{mime-type-feed.jsx => mime-type-feed.tsx} | 0 src/pages/home/feeds/{new-objkts-feed.jsx => new-objkts-feed.tsx} | 0 src/pages/home/feeds/{random-feed.jsx => random-feed.tsx} | 0 .../home/feeds/{recent-sales-feed.jsx => recent-sales-feed.tsx} | 0 src/pages/home/feeds/{search-feed.jsx => search-feed.tsx} | 0 src/pages/home/feeds/{tag-feed.jsx => tag-feed.tsx} | 0 src/pages/home/{index.jsx => index.tsx} | 0 .../{subjkts-search-results.jsx => subjkts-search-results.tsx} | 0 src/pages/objkt-display/tabs/{Burn.jsx => Burn.tsx} | 0 src/pages/objkt-display/tabs/{Collectors.jsx => Collectors.tsx} | 0 src/pages/objkt-display/tabs/{History.jsx => History.tsx} | 0 src/pages/objkt-display/tabs/{Info.jsx => Info.tsx} | 0 src/pages/objkt-display/tabs/{Swap.jsx => Swap.tsx} | 0 src/pages/objkt-display/tabs/{index.js => index.ts} | 0 src/pages/profile/{collabs.jsx => collabs.tsx} | 0 src/pages/profile/{collections.jsx => collections.tsx} | 0 src/pages/profile/{creations.jsx => creations.tsx} | 0 src/pages/profile/{filters.jsx => filters.tsx} | 0 src/pages/profile/{index.jsx => index.tsx} | 0 src/pages/profile/{profile.jsx => profile.tsx} | 0 src/pages/profile/{warning.jsx => warning.tsx} | 0 src/pages/{sync.jsx => sync.tsx} | 0 src/pages/tags/{index.jsx => index.tsx} | 0 src/pages/terms/{index.jsx => index.tsx} | 0 84 files changed, 0 insertions(+), 0 deletions(-) rename src/atoms/input/{Checkbox.jsx => Checkbox.tsx} (100%) rename src/atoms/input/{TextArea.jsx => TextArea.tsx} (100%) rename src/atoms/layout/container/{index.jsx => index.tsx} (100%) rename src/atoms/layout/{index.jsx => index.ts} (100%) rename src/atoms/loading/{index.jsx => index.tsx} (100%) rename src/atoms/marketplace-labels/{index.jsx => index.tsx} (100%) rename src/atoms/select/{Base.jsx => Base.tsx} (100%) rename src/atoms/select/{ThemeSelection.jsx => ThemeSelection.tsx} (100%) rename src/components/banners/{BottomBanner.jsx => BottomBanner.tsx} (100%) rename src/components/banners/{EventBanner.jsx => EventBanner.tsx} (100%) rename src/components/banners/{TopBanner.jsx => TopBanner.tsx} (100%) rename src/components/banners/{index.js => index.ts} (100%) rename src/components/feedback/{index.jsx => index.tsx} (100%) rename src/components/header/{Header.jsx => Header.tsx} (100%) rename src/components/header/events/{EventCard.jsx => EventCard.tsx} (100%) rename src/components/header/feed_toolbar/{FeedToolbar.jsx => FeedToolbar.tsx} (100%) rename src/components/header/{index.js => index.ts} (100%) rename src/components/header/main_menu/{MainMenu.jsx => MainMenu.tsx} (100%) rename src/components/header/{sample_events.js => sample_events.ts} (100%) rename src/components/icons/{index.jsx => index.tsx} (100%) rename src/components/item-info/{CheapestButton.jsx => CheapestButton.tsx} (100%) rename src/components/item-info/{Editions.jsx => Editions.tsx} (100%) rename src/components/item-info/{ItemInfo.jsx => ItemInfo.tsx} (100%) rename src/components/item-info/{ItemInfoCompact.jsx => ItemInfoCompact.tsx} (100%) rename src/components/markdown/{index.jsx => index.tsx} (100%) rename src/components/media-types/audio/{index.jsx => index.tsx} (100%) rename src/components/media-types/audio/{visualiser.jsx => visualiser.tsx} (100%) rename src/components/media-types/glb/{index.jsx => index.tsx} (100%) rename src/components/media-types/html/{index.jsx => index.tsx} (100%) rename src/components/media-types/html/{warning.jsx => warning.tsx} (100%) rename src/components/media-types/md/{index.jsx => index.tsx} (100%) rename src/components/media-types/unknown/{index.jsx => index.tsx} (100%) rename src/components/media-types/vector/{index.jsx => index.tsx} (100%) rename src/components/media-types/video/{index.jsx => index.tsx} (100%) rename src/components/owner-list/{index.jsx => index.tsx} (100%) rename src/components/preview/{index.jsx => index.tsx} (100%) rename src/components/responsive-masonry/{index.jsx => index.tsx} (100%) rename src/components/scroll-to-top/{index.jsx => index.tsx} (100%) rename src/components/tags/{index.jsx => index.tsx} (100%) rename src/hooks/{use-body-class.js => use-body-class.ts} (100%) rename src/hooks/{use-click-outside.js => use-click-outside.ts} (100%) rename src/hooks/{use-controlled.js => use-controlled.ts} (100%) rename src/hooks/{use-keyboard.js => use-keyboard.ts} (100%) rename src/hooks/{use-language.js => use-language.ts} (100%) rename src/hooks/{use-settings.js => use-settings.ts} (100%) rename src/hooks/{use-title.js => use-title.ts} (100%) rename src/hooks/{use-twemoji.js => use-twemoji.ts} (100%) rename src/icons/{index.js => index.ts} (100%) rename src/icons/{indexer_status.js => indexer_status.ts} (100%) rename src/icons/{refs.js => refs.ts} (100%) rename src/pages/about/{index.jsx => index.tsx} (100%) rename src/pages/collaborate/{create.jsx => create.tsx} (100%) rename src/pages/collaborate/{index.jsx => index.tsx} (100%) rename src/pages/collaborate/{manage.jsx => manage.tsx} (100%) rename src/pages/config/{Settings.jsx => Settings.tsx} (100%) rename src/pages/config/{index.jsx => index.tsx} (100%) rename src/pages/faq/{index.jsx => index.tsx} (100%) rename src/pages/home/feeds/{friends-feed.jsx => friends-feed.tsx} (100%) rename src/pages/home/feeds/{fund-feed.jsx => fund-feed.tsx} (100%) rename src/pages/home/feeds/{fund-feeds.jsx => fund-feeds.tsx} (100%) rename src/pages/home/feeds/{mime-type-feed.jsx => mime-type-feed.tsx} (100%) rename src/pages/home/feeds/{new-objkts-feed.jsx => new-objkts-feed.tsx} (100%) rename src/pages/home/feeds/{random-feed.jsx => random-feed.tsx} (100%) rename src/pages/home/feeds/{recent-sales-feed.jsx => recent-sales-feed.tsx} (100%) rename src/pages/home/feeds/{search-feed.jsx => search-feed.tsx} (100%) rename src/pages/home/feeds/{tag-feed.jsx => tag-feed.tsx} (100%) rename src/pages/home/{index.jsx => index.tsx} (100%) rename src/pages/home/{subjkts-search-results.jsx => subjkts-search-results.tsx} (100%) rename src/pages/objkt-display/tabs/{Burn.jsx => Burn.tsx} (100%) rename src/pages/objkt-display/tabs/{Collectors.jsx => Collectors.tsx} (100%) rename src/pages/objkt-display/tabs/{History.jsx => History.tsx} (100%) rename src/pages/objkt-display/tabs/{Info.jsx => Info.tsx} (100%) rename src/pages/objkt-display/tabs/{Swap.jsx => Swap.tsx} (100%) rename src/pages/objkt-display/tabs/{index.js => index.ts} (100%) rename src/pages/profile/{collabs.jsx => collabs.tsx} (100%) rename src/pages/profile/{collections.jsx => collections.tsx} (100%) rename src/pages/profile/{creations.jsx => creations.tsx} (100%) rename src/pages/profile/{filters.jsx => filters.tsx} (100%) rename src/pages/profile/{index.jsx => index.tsx} (100%) rename src/pages/profile/{profile.jsx => profile.tsx} (100%) rename src/pages/profile/{warning.jsx => warning.tsx} (100%) rename src/pages/{sync.jsx => sync.tsx} (100%) rename src/pages/tags/{index.jsx => index.tsx} (100%) rename src/pages/terms/{index.jsx => index.tsx} (100%) diff --git a/src/atoms/input/Checkbox.jsx b/src/atoms/input/Checkbox.tsx similarity index 100% rename from src/atoms/input/Checkbox.jsx rename to src/atoms/input/Checkbox.tsx diff --git a/src/atoms/input/TextArea.jsx b/src/atoms/input/TextArea.tsx similarity index 100% rename from src/atoms/input/TextArea.jsx rename to src/atoms/input/TextArea.tsx diff --git a/src/atoms/layout/container/index.jsx b/src/atoms/layout/container/index.tsx similarity index 100% rename from src/atoms/layout/container/index.jsx rename to src/atoms/layout/container/index.tsx diff --git a/src/atoms/layout/index.jsx b/src/atoms/layout/index.ts similarity index 100% rename from src/atoms/layout/index.jsx rename to src/atoms/layout/index.ts diff --git a/src/atoms/loading/index.jsx b/src/atoms/loading/index.tsx similarity index 100% rename from src/atoms/loading/index.jsx rename to src/atoms/loading/index.tsx diff --git a/src/atoms/marketplace-labels/index.jsx b/src/atoms/marketplace-labels/index.tsx similarity index 100% rename from src/atoms/marketplace-labels/index.jsx rename to src/atoms/marketplace-labels/index.tsx diff --git a/src/atoms/select/Base.jsx b/src/atoms/select/Base.tsx similarity index 100% rename from src/atoms/select/Base.jsx rename to src/atoms/select/Base.tsx diff --git a/src/atoms/select/ThemeSelection.jsx b/src/atoms/select/ThemeSelection.tsx similarity index 100% rename from src/atoms/select/ThemeSelection.jsx rename to src/atoms/select/ThemeSelection.tsx diff --git a/src/components/banners/BottomBanner.jsx b/src/components/banners/BottomBanner.tsx similarity index 100% rename from src/components/banners/BottomBanner.jsx rename to src/components/banners/BottomBanner.tsx diff --git a/src/components/banners/EventBanner.jsx b/src/components/banners/EventBanner.tsx similarity index 100% rename from src/components/banners/EventBanner.jsx rename to src/components/banners/EventBanner.tsx diff --git a/src/components/banners/TopBanner.jsx b/src/components/banners/TopBanner.tsx similarity index 100% rename from src/components/banners/TopBanner.jsx rename to src/components/banners/TopBanner.tsx diff --git a/src/components/banners/index.js b/src/components/banners/index.ts similarity index 100% rename from src/components/banners/index.js rename to src/components/banners/index.ts diff --git a/src/components/feedback/index.jsx b/src/components/feedback/index.tsx similarity index 100% rename from src/components/feedback/index.jsx rename to src/components/feedback/index.tsx diff --git a/src/components/header/Header.jsx b/src/components/header/Header.tsx similarity index 100% rename from src/components/header/Header.jsx rename to src/components/header/Header.tsx diff --git a/src/components/header/events/EventCard.jsx b/src/components/header/events/EventCard.tsx similarity index 100% rename from src/components/header/events/EventCard.jsx rename to src/components/header/events/EventCard.tsx diff --git a/src/components/header/feed_toolbar/FeedToolbar.jsx b/src/components/header/feed_toolbar/FeedToolbar.tsx similarity index 100% rename from src/components/header/feed_toolbar/FeedToolbar.jsx rename to src/components/header/feed_toolbar/FeedToolbar.tsx diff --git a/src/components/header/index.js b/src/components/header/index.ts similarity index 100% rename from src/components/header/index.js rename to src/components/header/index.ts diff --git a/src/components/header/main_menu/MainMenu.jsx b/src/components/header/main_menu/MainMenu.tsx similarity index 100% rename from src/components/header/main_menu/MainMenu.jsx rename to src/components/header/main_menu/MainMenu.tsx diff --git a/src/components/header/sample_events.js b/src/components/header/sample_events.ts similarity index 100% rename from src/components/header/sample_events.js rename to src/components/header/sample_events.ts diff --git a/src/components/icons/index.jsx b/src/components/icons/index.tsx similarity index 100% rename from src/components/icons/index.jsx rename to src/components/icons/index.tsx diff --git a/src/components/item-info/CheapestButton.jsx b/src/components/item-info/CheapestButton.tsx similarity index 100% rename from src/components/item-info/CheapestButton.jsx rename to src/components/item-info/CheapestButton.tsx diff --git a/src/components/item-info/Editions.jsx b/src/components/item-info/Editions.tsx similarity index 100% rename from src/components/item-info/Editions.jsx rename to src/components/item-info/Editions.tsx diff --git a/src/components/item-info/ItemInfo.jsx b/src/components/item-info/ItemInfo.tsx similarity index 100% rename from src/components/item-info/ItemInfo.jsx rename to src/components/item-info/ItemInfo.tsx diff --git a/src/components/item-info/ItemInfoCompact.jsx b/src/components/item-info/ItemInfoCompact.tsx similarity index 100% rename from src/components/item-info/ItemInfoCompact.jsx rename to src/components/item-info/ItemInfoCompact.tsx diff --git a/src/components/markdown/index.jsx b/src/components/markdown/index.tsx similarity index 100% rename from src/components/markdown/index.jsx rename to src/components/markdown/index.tsx diff --git a/src/components/media-types/audio/index.jsx b/src/components/media-types/audio/index.tsx similarity index 100% rename from src/components/media-types/audio/index.jsx rename to src/components/media-types/audio/index.tsx diff --git a/src/components/media-types/audio/visualiser.jsx b/src/components/media-types/audio/visualiser.tsx similarity index 100% rename from src/components/media-types/audio/visualiser.jsx rename to src/components/media-types/audio/visualiser.tsx diff --git a/src/components/media-types/glb/index.jsx b/src/components/media-types/glb/index.tsx similarity index 100% rename from src/components/media-types/glb/index.jsx rename to src/components/media-types/glb/index.tsx diff --git a/src/components/media-types/html/index.jsx b/src/components/media-types/html/index.tsx similarity index 100% rename from src/components/media-types/html/index.jsx rename to src/components/media-types/html/index.tsx diff --git a/src/components/media-types/html/warning.jsx b/src/components/media-types/html/warning.tsx similarity index 100% rename from src/components/media-types/html/warning.jsx rename to src/components/media-types/html/warning.tsx diff --git a/src/components/media-types/md/index.jsx b/src/components/media-types/md/index.tsx similarity index 100% rename from src/components/media-types/md/index.jsx rename to src/components/media-types/md/index.tsx diff --git a/src/components/media-types/unknown/index.jsx b/src/components/media-types/unknown/index.tsx similarity index 100% rename from src/components/media-types/unknown/index.jsx rename to src/components/media-types/unknown/index.tsx diff --git a/src/components/media-types/vector/index.jsx b/src/components/media-types/vector/index.tsx similarity index 100% rename from src/components/media-types/vector/index.jsx rename to src/components/media-types/vector/index.tsx diff --git a/src/components/media-types/video/index.jsx b/src/components/media-types/video/index.tsx similarity index 100% rename from src/components/media-types/video/index.jsx rename to src/components/media-types/video/index.tsx diff --git a/src/components/owner-list/index.jsx b/src/components/owner-list/index.tsx similarity index 100% rename from src/components/owner-list/index.jsx rename to src/components/owner-list/index.tsx diff --git a/src/components/preview/index.jsx b/src/components/preview/index.tsx similarity index 100% rename from src/components/preview/index.jsx rename to src/components/preview/index.tsx diff --git a/src/components/responsive-masonry/index.jsx b/src/components/responsive-masonry/index.tsx similarity index 100% rename from src/components/responsive-masonry/index.jsx rename to src/components/responsive-masonry/index.tsx diff --git a/src/components/scroll-to-top/index.jsx b/src/components/scroll-to-top/index.tsx similarity index 100% rename from src/components/scroll-to-top/index.jsx rename to src/components/scroll-to-top/index.tsx diff --git a/src/components/tags/index.jsx b/src/components/tags/index.tsx similarity index 100% rename from src/components/tags/index.jsx rename to src/components/tags/index.tsx diff --git a/src/hooks/use-body-class.js b/src/hooks/use-body-class.ts similarity index 100% rename from src/hooks/use-body-class.js rename to src/hooks/use-body-class.ts diff --git a/src/hooks/use-click-outside.js b/src/hooks/use-click-outside.ts similarity index 100% rename from src/hooks/use-click-outside.js rename to src/hooks/use-click-outside.ts diff --git a/src/hooks/use-controlled.js b/src/hooks/use-controlled.ts similarity index 100% rename from src/hooks/use-controlled.js rename to src/hooks/use-controlled.ts diff --git a/src/hooks/use-keyboard.js b/src/hooks/use-keyboard.ts similarity index 100% rename from src/hooks/use-keyboard.js rename to src/hooks/use-keyboard.ts diff --git a/src/hooks/use-language.js b/src/hooks/use-language.ts similarity index 100% rename from src/hooks/use-language.js rename to src/hooks/use-language.ts diff --git a/src/hooks/use-settings.js b/src/hooks/use-settings.ts similarity index 100% rename from src/hooks/use-settings.js rename to src/hooks/use-settings.ts diff --git a/src/hooks/use-title.js b/src/hooks/use-title.ts similarity index 100% rename from src/hooks/use-title.js rename to src/hooks/use-title.ts diff --git a/src/hooks/use-twemoji.js b/src/hooks/use-twemoji.ts similarity index 100% rename from src/hooks/use-twemoji.js rename to src/hooks/use-twemoji.ts diff --git a/src/icons/index.js b/src/icons/index.ts similarity index 100% rename from src/icons/index.js rename to src/icons/index.ts diff --git a/src/icons/indexer_status.js b/src/icons/indexer_status.ts similarity index 100% rename from src/icons/indexer_status.js rename to src/icons/indexer_status.ts diff --git a/src/icons/refs.js b/src/icons/refs.ts similarity index 100% rename from src/icons/refs.js rename to src/icons/refs.ts diff --git a/src/pages/about/index.jsx b/src/pages/about/index.tsx similarity index 100% rename from src/pages/about/index.jsx rename to src/pages/about/index.tsx diff --git a/src/pages/collaborate/create.jsx b/src/pages/collaborate/create.tsx similarity index 100% rename from src/pages/collaborate/create.jsx rename to src/pages/collaborate/create.tsx diff --git a/src/pages/collaborate/index.jsx b/src/pages/collaborate/index.tsx similarity index 100% rename from src/pages/collaborate/index.jsx rename to src/pages/collaborate/index.tsx diff --git a/src/pages/collaborate/manage.jsx b/src/pages/collaborate/manage.tsx similarity index 100% rename from src/pages/collaborate/manage.jsx rename to src/pages/collaborate/manage.tsx diff --git a/src/pages/config/Settings.jsx b/src/pages/config/Settings.tsx similarity index 100% rename from src/pages/config/Settings.jsx rename to src/pages/config/Settings.tsx diff --git a/src/pages/config/index.jsx b/src/pages/config/index.tsx similarity index 100% rename from src/pages/config/index.jsx rename to src/pages/config/index.tsx diff --git a/src/pages/faq/index.jsx b/src/pages/faq/index.tsx similarity index 100% rename from src/pages/faq/index.jsx rename to src/pages/faq/index.tsx diff --git a/src/pages/home/feeds/friends-feed.jsx b/src/pages/home/feeds/friends-feed.tsx similarity index 100% rename from src/pages/home/feeds/friends-feed.jsx rename to src/pages/home/feeds/friends-feed.tsx diff --git a/src/pages/home/feeds/fund-feed.jsx b/src/pages/home/feeds/fund-feed.tsx similarity index 100% rename from src/pages/home/feeds/fund-feed.jsx rename to src/pages/home/feeds/fund-feed.tsx diff --git a/src/pages/home/feeds/fund-feeds.jsx b/src/pages/home/feeds/fund-feeds.tsx similarity index 100% rename from src/pages/home/feeds/fund-feeds.jsx rename to src/pages/home/feeds/fund-feeds.tsx diff --git a/src/pages/home/feeds/mime-type-feed.jsx b/src/pages/home/feeds/mime-type-feed.tsx similarity index 100% rename from src/pages/home/feeds/mime-type-feed.jsx rename to src/pages/home/feeds/mime-type-feed.tsx diff --git a/src/pages/home/feeds/new-objkts-feed.jsx b/src/pages/home/feeds/new-objkts-feed.tsx similarity index 100% rename from src/pages/home/feeds/new-objkts-feed.jsx rename to src/pages/home/feeds/new-objkts-feed.tsx diff --git a/src/pages/home/feeds/random-feed.jsx b/src/pages/home/feeds/random-feed.tsx similarity index 100% rename from src/pages/home/feeds/random-feed.jsx rename to src/pages/home/feeds/random-feed.tsx diff --git a/src/pages/home/feeds/recent-sales-feed.jsx b/src/pages/home/feeds/recent-sales-feed.tsx similarity index 100% rename from src/pages/home/feeds/recent-sales-feed.jsx rename to src/pages/home/feeds/recent-sales-feed.tsx diff --git a/src/pages/home/feeds/search-feed.jsx b/src/pages/home/feeds/search-feed.tsx similarity index 100% rename from src/pages/home/feeds/search-feed.jsx rename to src/pages/home/feeds/search-feed.tsx diff --git a/src/pages/home/feeds/tag-feed.jsx b/src/pages/home/feeds/tag-feed.tsx similarity index 100% rename from src/pages/home/feeds/tag-feed.jsx rename to src/pages/home/feeds/tag-feed.tsx diff --git a/src/pages/home/index.jsx b/src/pages/home/index.tsx similarity index 100% rename from src/pages/home/index.jsx rename to src/pages/home/index.tsx diff --git a/src/pages/home/subjkts-search-results.jsx b/src/pages/home/subjkts-search-results.tsx similarity index 100% rename from src/pages/home/subjkts-search-results.jsx rename to src/pages/home/subjkts-search-results.tsx diff --git a/src/pages/objkt-display/tabs/Burn.jsx b/src/pages/objkt-display/tabs/Burn.tsx similarity index 100% rename from src/pages/objkt-display/tabs/Burn.jsx rename to src/pages/objkt-display/tabs/Burn.tsx diff --git a/src/pages/objkt-display/tabs/Collectors.jsx b/src/pages/objkt-display/tabs/Collectors.tsx similarity index 100% rename from src/pages/objkt-display/tabs/Collectors.jsx rename to src/pages/objkt-display/tabs/Collectors.tsx diff --git a/src/pages/objkt-display/tabs/History.jsx b/src/pages/objkt-display/tabs/History.tsx similarity index 100% rename from src/pages/objkt-display/tabs/History.jsx rename to src/pages/objkt-display/tabs/History.tsx diff --git a/src/pages/objkt-display/tabs/Info.jsx b/src/pages/objkt-display/tabs/Info.tsx similarity index 100% rename from src/pages/objkt-display/tabs/Info.jsx rename to src/pages/objkt-display/tabs/Info.tsx diff --git a/src/pages/objkt-display/tabs/Swap.jsx b/src/pages/objkt-display/tabs/Swap.tsx similarity index 100% rename from src/pages/objkt-display/tabs/Swap.jsx rename to src/pages/objkt-display/tabs/Swap.tsx diff --git a/src/pages/objkt-display/tabs/index.js b/src/pages/objkt-display/tabs/index.ts similarity index 100% rename from src/pages/objkt-display/tabs/index.js rename to src/pages/objkt-display/tabs/index.ts diff --git a/src/pages/profile/collabs.jsx b/src/pages/profile/collabs.tsx similarity index 100% rename from src/pages/profile/collabs.jsx rename to src/pages/profile/collabs.tsx diff --git a/src/pages/profile/collections.jsx b/src/pages/profile/collections.tsx similarity index 100% rename from src/pages/profile/collections.jsx rename to src/pages/profile/collections.tsx diff --git a/src/pages/profile/creations.jsx b/src/pages/profile/creations.tsx similarity index 100% rename from src/pages/profile/creations.jsx rename to src/pages/profile/creations.tsx diff --git a/src/pages/profile/filters.jsx b/src/pages/profile/filters.tsx similarity index 100% rename from src/pages/profile/filters.jsx rename to src/pages/profile/filters.tsx diff --git a/src/pages/profile/index.jsx b/src/pages/profile/index.tsx similarity index 100% rename from src/pages/profile/index.jsx rename to src/pages/profile/index.tsx diff --git a/src/pages/profile/profile.jsx b/src/pages/profile/profile.tsx similarity index 100% rename from src/pages/profile/profile.jsx rename to src/pages/profile/profile.tsx diff --git a/src/pages/profile/warning.jsx b/src/pages/profile/warning.tsx similarity index 100% rename from src/pages/profile/warning.jsx rename to src/pages/profile/warning.tsx diff --git a/src/pages/sync.jsx b/src/pages/sync.tsx similarity index 100% rename from src/pages/sync.jsx rename to src/pages/sync.tsx diff --git a/src/pages/tags/index.jsx b/src/pages/tags/index.tsx similarity index 100% rename from src/pages/tags/index.jsx rename to src/pages/tags/index.tsx diff --git a/src/pages/terms/index.jsx b/src/pages/terms/index.tsx similarity index 100% rename from src/pages/terms/index.jsx rename to src/pages/terms/index.tsx From 34fb4bdf63a3522112bf244d2b1fc6eeafb07a9e Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Sat, 25 Feb 2023 00:56:28 +0100 Subject: [PATCH 09/17] =?UTF-8?q?chore:=20=E2=9C=A8=20add=20typescript=20t?= =?UTF-8?q?o=20eslint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc | 4 +- package-lock.json | 693 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 + 3 files changed, 664 insertions(+), 35 deletions(-) diff --git a/.eslintrc b/.eslintrc index 5f79b0e12..5e2c90b8f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -3,13 +3,15 @@ "react-app", "plugin:jsx-a11y/recommended", "eslint:recommended", + "plugin:@typescript-eslint/recommended", "plugin:react/jsx-runtime" ], + "parser": "@typescript-eslint/parser", "globals": { "JSX": "readonly" }, "root": true, - "plugins": ["jsx-a11y"], + "plugins": ["jsx-a11y", "@typescript-eslint", "react"], "rules": { "jsx-a11y/media-has-caption": "off" }, diff --git a/package-lock.json b/package-lock.json index bf4971fd7..265d85256 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,6 +63,8 @@ "@types/react-infinite-scroller": "^1.2.3", "@types/react-lazy-load-image-component": "^1.5.2", "@types/react-pdf": "^6.2.0", + "@typescript-eslint/eslint-plugin": "^5.53.0", + "@typescript-eslint/parser": "^5.53.0", "@vitejs/plugin-react": "^3.1.0", "assert": "^2.0.0", "buffer": "^6.0.3", @@ -7887,14 +7889,14 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz", - "integrity": "sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==", + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.53.0.tgz", + "integrity": "sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/type-utils": "5.52.0", - "@typescript-eslint/utils": "5.52.0", + "@typescript-eslint/scope-manager": "5.53.0", + "@typescript-eslint/type-utils": "5.53.0", + "@typescript-eslint/utils": "5.53.0", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -7920,6 +7922,128 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz", + "integrity": "sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.53.0.tgz", + "integrity": "sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz", + "integrity": "sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.53.0.tgz", + "integrity": "sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.53.0", + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/typescript-estree": "5.53.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz", + "integrity": "sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.53.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -7973,14 +8097,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz", - "integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==", + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.53.0.tgz", + "integrity": "sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/typescript-estree": "5.52.0", + "@typescript-eslint/scope-manager": "5.53.0", + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/typescript-estree": "5.53.0", "debug": "^4.3.4" }, "engines": { @@ -7999,6 +8123,113 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz", + "integrity": "sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.53.0.tgz", + "integrity": "sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz", + "integrity": "sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz", + "integrity": "sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.53.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.52.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz", @@ -8017,13 +8248,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz", - "integrity": "sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==", + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz", + "integrity": "sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.52.0", - "@typescript-eslint/utils": "5.52.0", + "@typescript-eslint/typescript-estree": "5.53.0", + "@typescript-eslint/utils": "5.53.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -8043,6 +8274,161 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz", + "integrity": "sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.53.0.tgz", + "integrity": "sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz", + "integrity": "sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.53.0.tgz", + "integrity": "sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.53.0", + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/typescript-estree": "5.53.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz", + "integrity": "sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.53.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/types": { "version": "5.52.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz", @@ -28561,14 +28947,14 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz", - "integrity": "sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==", + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.53.0.tgz", + "integrity": "sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/type-utils": "5.52.0", - "@typescript-eslint/utils": "5.52.0", + "@typescript-eslint/scope-manager": "5.53.0", + "@typescript-eslint/type-utils": "5.53.0", + "@typescript-eslint/utils": "5.53.0", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -28578,6 +28964,79 @@ "tsutils": "^3.21.0" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz", + "integrity": "sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0" + } + }, + "@typescript-eslint/types": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.53.0.tgz", + "integrity": "sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz", + "integrity": "sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.53.0.tgz", + "integrity": "sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.53.0", + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/typescript-estree": "5.53.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz", + "integrity": "sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.53.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -28614,15 +29073,82 @@ } }, "@typescript-eslint/parser": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz", - "integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==", + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.53.0.tgz", + "integrity": "sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/typescript-estree": "5.52.0", + "@typescript-eslint/scope-manager": "5.53.0", + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/typescript-estree": "5.53.0", "debug": "^4.3.4" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz", + "integrity": "sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0" + } + }, + "@typescript-eslint/types": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.53.0.tgz", + "integrity": "sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz", + "integrity": "sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.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": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz", + "integrity": "sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.53.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/scope-manager": { @@ -28636,15 +29162,114 @@ } }, "@typescript-eslint/type-utils": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz", - "integrity": "sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==", + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz", + "integrity": "sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.52.0", - "@typescript-eslint/utils": "5.52.0", + "@typescript-eslint/typescript-estree": "5.53.0", + "@typescript-eslint/utils": "5.53.0", "debug": "^4.3.4", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz", + "integrity": "sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0" + } + }, + "@typescript-eslint/types": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.53.0.tgz", + "integrity": "sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz", + "integrity": "sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/visitor-keys": "5.53.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.53.0.tgz", + "integrity": "sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.53.0", + "@typescript-eslint/types": "5.53.0", + "@typescript-eslint/typescript-estree": "5.53.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz", + "integrity": "sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.53.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/types": { diff --git a/package.json b/package.json index b7054ab90..1fb99ea1f 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,8 @@ "@types/react-infinite-scroller": "^1.2.3", "@types/react-lazy-load-image-component": "^1.5.2", "@types/react-pdf": "^6.2.0", + "@typescript-eslint/eslint-plugin": "^5.53.0", + "@typescript-eslint/parser": "^5.53.0", "@vitejs/plugin-react": "^3.1.0", "assert": "^2.0.0", "buffer": "^6.0.3", From 15dc54876de7f6ff5fc1cdb4d38df36824893ff0 Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Sat, 25 Feb 2023 03:27:55 +0100 Subject: [PATCH 10/17] =?UTF-8?q?chore:=20=F0=9F=8E=A8=20types?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc | 4 +- package-lock.json | 42 ++++-- package.json | 3 +- src/atoms/button/Button.tsx | 5 +- src/atoms/dropdown/DropdownButton.tsx | 2 +- src/atoms/input/Checkbox.tsx | 120 ++++++++---------- src/atoms/input/Input.tsx | 8 +- src/atoms/input/TextArea.tsx | 77 ++++++----- src/atoms/input/types.d.ts | 29 +++++ src/atoms/line/index.tsx | 2 +- src/atoms/loading/index.tsx | 2 +- src/atoms/marketplace-labels/index.tsx | 12 +- src/atoms/marketplace-labels/types.d.ts | 6 + src/atoms/select/styles.ts | 6 +- src/atoms/toggles/IconToggle.tsx | 2 +- src/atoms/toggles/Toggle.tsx | 3 +- src/atoms/token-collection/index.tsx | 4 +- src/components/banners/EventBanner.tsx | 9 +- src/components/banners/TopBanner.tsx | 6 +- src/components/collab/show/CollabDisplay.tsx | 4 +- .../collab/show/CollabIssuerInfo.tsx | 27 ++-- .../collab/show/CollabParticipant.tsx | 2 +- src/components/collab/show/SigningSummary.tsx | 38 +++--- src/components/collab/show/TxRow.tsx | 3 +- .../sign/{SigningUI.jsx => SigningUI.tsx} | 10 +- src/components/feed-item/index.tsx | 2 +- src/components/feedback/index.tsx | 7 +- src/components/form/Form.tsx | 10 +- src/components/form/FormFields.tsx | 8 +- src/components/form/MintForm.tsx | 2 +- src/components/header/events/types.d.ts | 5 + src/components/icons/index.tsx | 2 +- src/components/item-info/CheapestButton.tsx | 3 +- src/components/item-info/Editions.tsx | 13 +- src/components/item-info/ItemInfo.tsx | 10 +- src/components/item-info/ItemInfoCompact.tsx | 5 +- src/components/listings/index.tsx | 33 +++-- src/components/markdown/index.tsx | 11 +- src/components/media-types/audio/index.tsx | 18 +-- .../media-types/audio/visualiser.tsx | 55 ++++---- src/components/media-types/container.tsx | 2 +- src/components/media-types/glb/index.tsx | 40 ++++-- src/components/media-types/html/index.tsx | 63 ++++----- src/components/media-types/image/index.tsx | 16 ++- src/components/media-types/index.tsx | 10 +- src/components/media-types/md/index.tsx | 20 +-- src/components/media-types/pdf/index.tsx | 2 +- src/components/media-types/unknown/index.tsx | 3 +- src/components/media-types/vector/index.tsx | 10 +- src/components/media-types/video/index.tsx | 17 ++- src/components/owner-list/index.tsx | 3 +- src/components/preview/index.tsx | 36 +++--- src/components/upload/index.tsx | 5 +- src/context/collabStore.ts | 4 +- src/context/mintStore.ts | 11 +- src/context/userStore.ts | 21 +-- src/data/api.ts | 3 +- src/data/ipfs.ts | 2 +- src/declaration.d.ts | 21 +++ src/hooks/types.d.ts | 18 +++ src/hooks/use-body-class.ts | 8 +- ...click-outside.ts => use-click-outside.tsx} | 14 +- src/hooks/use-controlled.ts | 4 +- src/hooks/use-keyboard.ts | 18 ++- src/hooks/use-settings.ts | 35 +++-- src/hooks/use-title.ts | 2 +- src/pages/config/Subjkt.tsx | 2 +- src/pages/mint/index.tsx | 2 +- src/pages/objkt-display/index.tsx | 9 +- src/pages/profile/index.tsx | 2 +- src/types.d.ts | 2 +- src/utils/html.ts | 15 +-- src/utils/index.ts | 2 +- src/utils/media.ts | 4 +- src/utils/string.ts | 3 +- src/utils/swap.ts | 12 +- src/utils/swr-laggy-middleware.ts | 4 +- src/utils/time.ts | 6 +- src/utils/types.d.ts | 3 + src/utils/with-icon.tsx | 4 +- tsconfig.json | 2 + 81 files changed, 627 insertions(+), 443 deletions(-) create mode 100644 src/atoms/input/types.d.ts create mode 100644 src/atoms/marketplace-labels/types.d.ts rename src/components/collab/sign/{SigningUI.jsx => SigningUI.tsx} (81%) create mode 100644 src/components/header/events/types.d.ts create mode 100644 src/hooks/types.d.ts rename src/hooks/{use-click-outside.ts => use-click-outside.tsx} (65%) create mode 100644 src/utils/types.d.ts diff --git a/.eslintrc b/.eslintrc index 5e2c90b8f..af433d88e 100644 --- a/.eslintrc +++ b/.eslintrc @@ -13,7 +13,9 @@ "root": true, "plugins": ["jsx-a11y", "@typescript-eslint", "react"], "rules": { - "jsx-a11y/media-has-caption": "off" + "jsx-a11y/media-has-caption": "off", + "@typescript-eslint/consistent-type-imports": "error", + "@typescript-eslint/no-namespace": "off" }, "ignorePatterns": [ diff --git a/package-lock.json b/package-lock.json index 265d85256..d631f1dd1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "devDependencies": { "@airgap/beacon-types": "^3.3.3", "@babel/preset-react": "^7.18.6", - "@google/model-viewer": "^3.0.1", + "@google/model-viewer": "^3.0.2", "@graphql-codegen/cli": "^3.1.0", "@graphql-codegen/client-preset": "^2.1.0", "@graphql-codegen/introspection": "^3.0.1", @@ -60,6 +60,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", + "@types/keyboardjs": "^2.5.0", "@types/react-infinite-scroller": "^1.2.3", "@types/react-lazy-load-image-component": "^1.5.2", "@types/react-pdf": "^6.2.0", @@ -3395,16 +3396,18 @@ } }, "node_modules/@google/model-viewer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-3.0.1.tgz", - "integrity": "sha512-zelc/iyokFBEIQZCG0earetQGVRe/DCR0b+0qbThesGaVOCPhSz0SAikJ+IOyKd4iBTEyonnlzB+APbIUzE7VQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-3.0.2.tgz", + "integrity": "sha512-kPeb90f6+KCnqQz2NjARmrRjiFLsXuVhfLhyFbb3U7dUzQyB4k0OYIwlF49hb9CPSXq8oH/fn7KOggVBJ/YGpg==", "dev": true, "dependencies": { - "lit": "^2.2.3", - "three": "^0.149.0" + "lit": "^2.2.3" }, "engines": { "node": ">=6.0.0" + }, + "peerDependencies": { + "three": "^0.149.0" } }, "node_modules/@graphql-codegen/add": { @@ -7646,6 +7649,12 @@ "@types/node": "*" } }, + "node_modules/@types/keyboardjs": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@types/keyboardjs/-/keyboardjs-2.5.0.tgz", + "integrity": "sha512-tGU6Lz04lDNH+N3AZYIWVeBza2ZSaLlZuSkzi38zSFSuh6DgVqBdqgkX+OS+jg1vwlw5XzS5MASY44fr9C12Yg==", + "dev": true + }, "node_modules/@types/lodash": { "version": "4.14.191", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", @@ -21715,7 +21724,8 @@ "version": "0.149.0", "resolved": "https://registry.npmjs.org/three/-/three-0.149.0.tgz", "integrity": "sha512-tohpUxPDht0qExRLDTM8sjRLc5d9STURNrdnK3w9A+V4pxaTBfKWWT/IqtiLfg23Vfc3Z+ImNfvRw1/0CtxrkQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/throttle-debounce": { "version": "3.0.1", @@ -25478,13 +25488,12 @@ } }, "@google/model-viewer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-3.0.1.tgz", - "integrity": "sha512-zelc/iyokFBEIQZCG0earetQGVRe/DCR0b+0qbThesGaVOCPhSz0SAikJ+IOyKd4iBTEyonnlzB+APbIUzE7VQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-3.0.2.tgz", + "integrity": "sha512-kPeb90f6+KCnqQz2NjARmrRjiFLsXuVhfLhyFbb3U7dUzQyB4k0OYIwlF49hb9CPSXq8oH/fn7KOggVBJ/YGpg==", "dev": true, "requires": { - "lit": "^2.2.3", - "three": "^0.149.0" + "lit": "^2.2.3" } }, "@graphql-codegen/add": { @@ -28705,6 +28714,12 @@ "@types/node": "*" } }, + "@types/keyboardjs": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@types/keyboardjs/-/keyboardjs-2.5.0.tgz", + "integrity": "sha512-tGU6Lz04lDNH+N3AZYIWVeBza2ZSaLlZuSkzi38zSFSuh6DgVqBdqgkX+OS+jg1vwlw5XzS5MASY44fr9C12Yg==", + "dev": true + }, "@types/lodash": { "version": "4.14.191", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", @@ -39256,7 +39271,8 @@ "version": "0.149.0", "resolved": "https://registry.npmjs.org/three/-/three-0.149.0.tgz", "integrity": "sha512-tohpUxPDht0qExRLDTM8sjRLc5d9STURNrdnK3w9A+V4pxaTBfKWWT/IqtiLfg23Vfc3Z+ImNfvRw1/0CtxrkQ==", - "dev": true + "dev": true, + "peer": true }, "throttle-debounce": { "version": "3.0.1", diff --git a/package.json b/package.json index 1fb99ea1f..a3cad5a41 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "devDependencies": { "@airgap/beacon-types": "^3.3.3", "@babel/preset-react": "^7.18.6", - "@google/model-viewer": "^3.0.1", + "@google/model-viewer": "^3.0.2", "@graphql-codegen/cli": "^3.1.0", "@graphql-codegen/client-preset": "^2.1.0", "@graphql-codegen/introspection": "^3.0.1", @@ -87,6 +87,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", + "@types/keyboardjs": "^2.5.0", "@types/react-infinite-scroller": "^1.2.3", "@types/react-lazy-load-image-component": "^1.5.2", "@types/react-pdf": "^6.2.0", diff --git a/src/atoms/button/Button.tsx b/src/atoms/button/Button.tsx index cfa4d3a1d..eb8b70f14 100644 --- a/src/atoms/button/Button.tsx +++ b/src/atoms/button/Button.tsx @@ -1,8 +1,9 @@ import classnames from 'classnames' import styles from '@style' -import { NavLink, To } from 'react-router-dom' +import type { To } from 'react-router-dom' +import { NavLink } from 'react-router-dom' import { motion } from 'framer-motion' -import React from 'react' +import type React from 'react' interface ButtonProps { /**Used for accessibility (aria-label) */ diff --git a/src/atoms/dropdown/DropdownButton.tsx b/src/atoms/dropdown/DropdownButton.tsx index 52c5a5e70..8ba68d3b7 100644 --- a/src/atoms/dropdown/DropdownButton.tsx +++ b/src/atoms/dropdown/DropdownButton.tsx @@ -4,7 +4,7 @@ import { AnimatePresence, motion } from 'framer-motion' import classnames from 'classnames' import Button from '@atoms/button/Button' import { useTwemoji } from '@hooks/use-twemoji' -import { WithCompChildren } from '@types' +import type { WithCompChildren } from '@types' interface DropdownButtonProps { menuID: string direction: 'left' | 'right' diff --git a/src/atoms/input/Checkbox.tsx b/src/atoms/input/Checkbox.tsx index db72e04c6..aca0d71b4 100644 --- a/src/atoms/input/Checkbox.tsx +++ b/src/atoms/input/Checkbox.tsx @@ -1,74 +1,62 @@ import { useControlled } from '@hooks/use-controlled' import styles from '@style' import classNames from 'classnames' -import { forwardRef, useCallback } from 'react' -import { memo } from 'react' +import React, { useCallback } from 'react' -/** - * Core checkbox - * @param {Object} checkboxProps - * @param {string} checkboxProps.label - The text or icon used for the toggle - * @param {boolean} checkboxProps.initial - The initial value - * @param {boolean} checkboxProps.checked - If set the control becomes controlled - * @param {boolean} checkboxProps.style - Style object (as a last resort) - * @param {React.EffectCallback} checkboxProps.onCheck - * @param {boolean} checkboxProps.disabled - Disables the checkbox - * - */ -const Checkbox = forwardRef( - ( - { - name, - label, - alt, - initial, - onCheck = () => null, - onBlur = () => null, - onWheel = () => null, - disabled, - checked: checkedProp, - autoFocus = false, - className, - small, - }, - ref - ) => { - const [checked, setChecked] = useControlled(checkedProp, initial) +import type { CheckboxProps } from './types' + +const Checkbox = ( + { + name, + label, + alt, + initial, + onCheck = () => null, + onBlur = () => null, + onWheel = () => null, + // disabled, + checked: checkedProp, + // autoFocus = false, + className, + small, + }: CheckboxProps, + ref: React.ForwardedRef +) => { + const [checked, setChecked] = useControlled(checkedProp, initial) - const handleCheck = useCallback( - (e) => { - const c = e.target.checked - setChecked(c) - onCheck?.(c) - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [checked] - ) + const handleCheck = useCallback( + (e: React.ChangeEvent) => { + const c = e.target.checked + setChecked(c) + onCheck?.(c) + }, + // eslint-disable-next-line react-hooks/exhaustive-deps + [checked] + ) - const classes = classNames({ - [styles.check_container]: true, - [styles.small]: small, - }) + const classes = classNames({ + [styles.check_container]: true, + [styles.small]: small, + }) - return ( - - ) - } -) + return ( + + ) +} -export default memo(Checkbox) +export default React.memo(React.forwardRef(Checkbox)) diff --git a/src/atoms/input/Input.tsx b/src/atoms/input/Input.tsx index 2ef17a5f7..f1e67b312 100644 --- a/src/atoms/input/Input.tsx +++ b/src/atoms/input/Input.tsx @@ -1,8 +1,10 @@ import styles from '@style' -import { FocusEventHandler, memo, useCallback } from 'react' +import type { FocusEventHandler } from 'react' +import { memo, useCallback } from 'react' import { useControlled } from '@hooks/use-controlled' -import React, { KeyboardEvent } from 'react' -import { WithChildren } from '@types' +import type { KeyboardEvent } from 'react' +import React from 'react' +import type { WithChildren } from '@types' type InputType = | 'button' | 'checkbox' diff --git a/src/atoms/input/TextArea.tsx b/src/atoms/input/TextArea.tsx index cd6befb9d..488218620 100644 --- a/src/atoms/input/TextArea.tsx +++ b/src/atoms/input/TextArea.tsx @@ -1,44 +1,39 @@ import styles from '@style' -import { forwardRef, memo } from 'react' +import type { WithChildren } from '@types' +import React from 'react' +import type { TextAreaProps } from './types' -const Textarea = forwardRef( - ( - { - type = 'text', - placeholder = 'placeholder', - name = 'input-name-not-set', - min, - max, - children, - maxlength = 5000, - label, - onChange = () => null, - onBlur = () => null, - disabled, - value, - className, - }, - ref - ) => ( -
-