diff --git a/console/.storybook/main.js b/console/.storybook/main.js index 8360d8d1d1f..94932b6bfae 100644 --- a/console/.storybook/main.js +++ b/console/.storybook/main.js @@ -80,6 +80,8 @@ module.exports = { }); config.resolve.alias['@'] = path.resolve(__dirname, '../src'); + config.node = { fs: 'empty' }; + if (isConfigDebugMode) { console.log('------WEBPACK--------'); console.log(util.inspect(newConfig, { showHidden: false, depth: null })); diff --git a/console/package-lock.json b/console/package-lock.json index 07d6f0d3831..866b9cfd2f0 100644 --- a/console/package-lock.json +++ b/console/package-lock.json @@ -48,6 +48,7 @@ "immer": "9.0.12", "inflection": "1.12.0", "isomorphic-fetch": "2.2.1", + "js-yaml": "^4.1.0", "jsonwebtoken": "8.5.1", "jwt-decode": "^3.0.0", "less": "3.11.1", @@ -58,7 +59,9 @@ "lodash.merge": "4.6.2", "lodash.pickby": "^4.6.0", "lodash.uniqueid": "^4.0.1", + "microfiber": "^1.3.1", "moment": "^2.26.0", + "openapi-to-graphql": "^2.6.3", "piping": "0.3.2", "prop-types": "15.7.2", "react": "16.13.1", @@ -143,6 +146,7 @@ "@types/isomorphic-fetch": "0.0.35", "@types/jest": "^26.0.22", "@types/jquery": "3.3.33", + "@types/js-yaml": "^4.0.5", "@types/jwt-decode": "2.2.1", "@types/lodash": "^4.14.159", "@types/lodash.debounce": "^4.0.7", @@ -242,7 +246,7 @@ "resolve-url-loader": "2.3.2", "sass": "^1.38.0", "sass-loader": "7.3.1", - "source-map-loader": "1.1.3", + "source-map-loader": "0.2.4", "storybook-dark-mode": "^1.1.0", "style-loader": "0.20.3", "tailwindcss": "3.1.7", @@ -2999,6 +3003,11 @@ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, + "node_modules/@exodus/schemasafe": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.9.tgz", + "integrity": "sha512-dGGHpb61hLwifAu7sotuHFDBw6GTdpG8aKC0fsK17EuTzMRvUrH7lEAr6LTJ+sx3AZYed9yZ77rltVDHyg2hRg==" + }, "node_modules/@f/animate": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@f/animate/-/animate-1.0.1.tgz", @@ -3141,9 +3150,9 @@ } }, "node_modules/@graphql-codegen/cli/node_modules/@graphql-codegen/plugin-helpers": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.1.tgz", - "integrity": "sha512-wpEShhwbQp8pqXolnSCNaj0pU91LbuBvYHpYqm96TUqyeKQYAYRVmw3JIt0g8UQpKYhg8lYIDwWdcINOYqkGLg==", + "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", @@ -3158,12 +3167,24 @@ } }, "node_modules/@graphql-codegen/cli/node_modules/@graphql-tools/merge": { - "version": "8.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.7.tgz", - "integrity": "sha512-su9cUb0gtbvKTmD3LJ3EoUkdqmJ3KBk1efJGvUoN8tFzVVBdxgfOVxwLGI2GgIHcKRVvfhumkjHsa2aneHSY+Q==", + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.12.tgz", + "integrity": "sha512-BFL8r4+FrqecPnIW0H8UJCBRQ4Y8Ep60aujw9c/sQuFmQTiqgWgpphswMGfaosP2zUinDE3ojU5wwcS2IJnumA==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "9.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "dependencies": { - "@graphql-tools/utils": "8.13.0", "tslib": "^2.4.0" }, "peerDependencies": { @@ -3171,13 +3192,13 @@ } }, "node_modules/@graphql-codegen/cli/node_modules/@graphql-tools/schema": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.5.tgz", - "integrity": "sha512-JPxFumaPQp6pRnrofy7rWVNW57r/1RISNxBCGOudFmjfRE2PlO6b766pxhDnggm/yMR3yzR+mA/JHpOK+ij+EA==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.10.tgz", + "integrity": "sha512-lV0o4df9SpPiaeeDAzgdCJ2o2N9Wvsp0SMHlF2qDbh9aFCFQRsXuksgiDm2yTgT3TG5OtUes/t0D6uPjPZFUbQ==", "dev": true, "dependencies": { - "@graphql-tools/merge": "8.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/merge": "8.3.12", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0", "value-or-promise": "1.0.11" }, @@ -3185,10 +3206,22 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-codegen/cli/node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", + "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/cli/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "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" @@ -3252,9 +3285,9 @@ } }, "node_modules/@graphql-codegen/cli/node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", @@ -3390,9 +3423,9 @@ } }, "node_modules/@graphql-codegen/cli/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "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/cli/node_modules/y18n": { @@ -3405,9 +3438,9 @@ } }, "node_modules/@graphql-codegen/cli/node_modules/yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -3416,7 +3449,7 @@ "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" @@ -3480,9 +3513,9 @@ } }, "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-codegen/plugin-helpers": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.1.tgz", - "integrity": "sha512-wpEShhwbQp8pqXolnSCNaj0pU91LbuBvYHpYqm96TUqyeKQYAYRVmw3JIt0g8UQpKYhg8lYIDwWdcINOYqkGLg==", + "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", @@ -3497,9 +3530,9 @@ } }, "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "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" @@ -3518,9 +3551,9 @@ } }, "node_modules/@graphql-codegen/schema-ast/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "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": { @@ -3538,14 +3571,14 @@ } }, "node_modules/@graphql-codegen/typescript-operations": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.5.tgz", - "integrity": "sha512-rH15UA34MRf6cITfvt2EkSEaC/8ULvgMg5kzun6895oucA8PFyAFJaQzcjk9UraeD3ddMu56OKhZGdxd0JWfKw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.6.tgz", + "integrity": "sha512-7WqOsVMTUXf+tdt0jGOBuQINLYjPIGlcsnkzXQSPJ7rSGVj99VobVuwgmAeFmJctZ3lgwx3gjPZ0dyCIOBc2/A==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^2.6.2", - "@graphql-codegen/typescript": "^2.7.5", - "@graphql-codegen/visitor-plugin-common": "2.13.0", + "@graphql-codegen/plugin-helpers": "^2.7.2", + "@graphql-codegen/typescript": "^2.8.1", + "@graphql-codegen/visitor-plugin-common": "2.13.1", "auto-bind": "~4.0.0", "tslib": "~2.4.0" }, @@ -3554,9 +3587,9 @@ } }, "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-codegen/plugin-helpers": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.1.tgz", - "integrity": "sha512-wpEShhwbQp8pqXolnSCNaj0pU91LbuBvYHpYqm96TUqyeKQYAYRVmw3JIt0g8UQpKYhg8lYIDwWdcINOYqkGLg==", + "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", @@ -3571,14 +3604,14 @@ } }, "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-codegen/typescript": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.0.tgz", - "integrity": "sha512-atQ6NFfMmoknJi0QdVSozPugKcgeJB6t1/cVskbhVtX8tAEFFLjl6H23mpz3t35AH6aGWtvx2LCjUSxHI6P6xA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.1.tgz", + "integrity": "sha512-kweV1DOOH2blvMheVL55TT0s9bxkmF/zijN9mdk9pRD20i/rI/46qbh8fNKqy/PV12vZOmZGNL6tigdghG2bqg==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^2.6.2", + "@graphql-codegen/plugin-helpers": "^2.7.2", "@graphql-codegen/schema-ast": "^2.5.1", - "@graphql-codegen/visitor-plugin-common": "2.13.0", + "@graphql-codegen/visitor-plugin-common": "2.13.1", "auto-bind": "~4.0.0", "tslib": "~2.4.0" }, @@ -3587,12 +3620,12 @@ } }, "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-codegen/visitor-plugin-common": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.0.tgz", - "integrity": "sha512-8lKw4l8W6yKaqrxx025eB6+lRMWaBKedbKjC9UyLhXAnqTi3tgaRKOBo4zvl1+KzE6R41Ruov9UcGD7OjgmBrw==", + "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.6.2", + "@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", @@ -3608,9 +3641,9 @@ } }, "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "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" @@ -3629,9 +3662,9 @@ } }, "node_modules/@graphql-codegen/typescript-operations/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "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/node_modules/tslib": { @@ -3665,13 +3698,13 @@ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/@graphql-tools/apollo-engine-loader": { - "version": "7.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.14.tgz", - "integrity": "sha512-W2p+YuSSui2W+zvEXX/y8uXNs9RgM+VwHHDc6dhwqY33euXwYTCqrBgMQH3Hkey2K631aUv4+p32Be7Zqh0v7w==", + "version": "7.3.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.19.tgz", + "integrity": "sha512-at5VaqSVGZDc3Fjr63vWhrKXTb5YdopCuvpRGeC9PALIWAMOLXNdkdPYiFe8crLAz60qhcpADqFoNFR+G2+NIg==", "dev": true, "dependencies": { "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "@whatwg-node/fetch": "^0.5.0", "tslib": "^2.4.0" }, @@ -3680,9 +3713,9 @@ } }, "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "dependencies": { "tslib": "^2.4.0" @@ -3692,9 +3725,9 @@ } }, "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@whatwg-node/fetch": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.1.tgz", - "integrity": "sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.3.tgz", + "integrity": "sha512-cuAKL3Z7lrJJuUrfF1wxkQTb24Qd1QO/lsjJpM5ZSZZzUMms5TPnbGeGUKWA3hVKNHh30lVfr2MyRCT5Jfkucw==", "dev": true, "dependencies": { "@peculiar/webcrypto": "^1.4.0", @@ -3708,17 +3741,17 @@ } }, "node_modules/@graphql-tools/apollo-engine-loader/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "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-tools/batch-execute": { - "version": "8.5.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.7.tgz", - "integrity": "sha512-s6VuNsagjCz8WhPYF9SXTPqvpOWE+HH7M2ZXMf5340OLGkWIe+Yu3+k8OCUYYnCTIFvJ4xTrpuxGQifY+DtE3Q==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.12.tgz", + "integrity": "sha512-eNdN5CirW3ILoBaVyy4GI6JpLoJELeH0A7+uLRjwZuMFxpe4cljSrY8P+id28m43+uvBzB3rvNTv0+mnRjrMRw==", "dependencies": { - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "dataloader": "2.1.0", "tslib": "^2.4.0", "value-or-promise": "1.0.11" @@ -3728,9 +3761,9 @@ } }, "node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dependencies": { "tslib": "^2.4.0" }, @@ -3739,18 +3772,18 @@ } }, "node_modules/@graphql-tools/batch-execute/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/@graphql-tools/code-file-loader": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.7.tgz", - "integrity": "sha512-mjlqrA09LpDd0NRLKATLDpubUe6Badt4trhUU5Nv0yRhPFTPCEOLxwuDBeihhEXrXFq4yboPshOh607ySeywGw==", + "version": "7.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.12.tgz", + "integrity": "sha512-XflxElA2FNPDgicUZr4UF6NVlvPHFOKd1u8KAb/nHSlUT70qcvIPFfRASSuEvLMGYuW/lrFZfgi2z0BV6P5Vqw==", "dev": true, "dependencies": { - "@graphql-tools/graphql-tag-pluck": "7.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/graphql-tag-pluck": "7.3.12", + "@graphql-tools/utils": "9.1.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" @@ -3760,9 +3793,9 @@ } }, "node_modules/@graphql-tools/code-file-loader/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "dependencies": { "tslib": "^2.4.0" @@ -3772,20 +3805,20 @@ } }, "node_modules/@graphql-tools/code-file-loader/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "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-tools/delegate": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.9.tgz", - "integrity": "sha512-jUXRuVZ8jFEN9FS4jRRmSURZc8Ii06YR6LmMdPN8WdUsfQn/sTVQ6CEI/MxsEf60YuOFuBU8XAvSGsjQZTzuXg==", + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.17.tgz", + "integrity": "sha512-y7h5H+hOhQWEkG67A4wurlphHMYJuMlQIEY7wZPVpmViuV6TuSPB7qkLITsM99XiNQhX+v1VayN2cuaP/8nIhw==", "dependencies": { - "@graphql-tools/batch-execute": "8.5.7", - "@graphql-tools/executor": "0.0.1", - "@graphql-tools/schema": "9.0.5", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/batch-execute": "8.5.12", + "@graphql-tools/executor": "0.0.9", + "@graphql-tools/schema": "9.0.10", + "@graphql-tools/utils": "9.1.1", "dataloader": "2.1.0", "tslib": "~2.4.0", "value-or-promise": "1.0.11" @@ -3795,11 +3828,11 @@ } }, "node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/merge": { - "version": "8.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.7.tgz", - "integrity": "sha512-su9cUb0gtbvKTmD3LJ3EoUkdqmJ3KBk1efJGvUoN8tFzVVBdxgfOVxwLGI2GgIHcKRVvfhumkjHsa2aneHSY+Q==", + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.12.tgz", + "integrity": "sha512-BFL8r4+FrqecPnIW0H8UJCBRQ4Y8Ep60aujw9c/sQuFmQTiqgWgpphswMGfaosP2zUinDE3ojU5wwcS2IJnumA==", "dependencies": { - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0" }, "peerDependencies": { @@ -3807,12 +3840,12 @@ } }, "node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/schema": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.5.tgz", - "integrity": "sha512-JPxFumaPQp6pRnrofy7rWVNW57r/1RISNxBCGOudFmjfRE2PlO6b766pxhDnggm/yMR3yzR+mA/JHpOK+ij+EA==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.10.tgz", + "integrity": "sha512-lV0o4df9SpPiaeeDAzgdCJ2o2N9Wvsp0SMHlF2qDbh9aFCFQRsXuksgiDm2yTgT3TG5OtUes/t0D6uPjPZFUbQ==", "dependencies": { - "@graphql-tools/merge": "8.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/merge": "8.3.12", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0", "value-or-promise": "1.0.11" }, @@ -3821,9 +3854,9 @@ } }, "node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dependencies": { "tslib": "^2.4.0" }, @@ -3832,26 +3865,158 @@ } }, "node_modules/@graphql-tools/delegate/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/@graphql-tools/executor": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.1.tgz", - "integrity": "sha512-+li0brhr6NdViS/pyaDCRTUKf9/lCgaNcfrE4p1yjubwKFoqc5dhwiB3kQ0lOIso2ipAKk08kJ4sBLqJz3osWg==", + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.9.tgz", + "integrity": "sha512-qLhQWXTxTS6gbL9INAQa4FJIqTd2tccnbs4HswOx35KnyLaLtREuQ8uTfU+5qMrRIBhuzpGdkP2ssqxLyOJ5rA==", "dependencies": { - "@graphql-tools/utils": "8.13.0", - "@graphql-typed-document-node/core": "3.1.1" + "@graphql-tools/utils": "9.1.1", + "@graphql-typed-document-node/core": "3.1.1", + "@repeaterjs/repeater": "3.0.4", + "tslib": "^2.4.0", + "value-or-promise": "1.0.11" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/executor-graphql-ws": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.3.tgz", + "integrity": "sha512-8VATDf82lTaYRE4/BrFm8v6Cz6UHoNTlSkQjPcGtDX4nxbBUYLDfN+Z8ZXl0eZc3tCwsIHkYQunJO0OjmcrP5Q==", + "dependencies": { + "@graphql-tools/utils": "9.1.1", + "@repeaterjs/repeater": "3.0.4", + "@types/ws": "^8.0.0", + "graphql-ws": "5.11.2", + "isomorphic-ws": "5.0.0", + "tslib": "^2.4.0", + "ws": "8.11.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws/node_modules/@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws/node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/@graphql-tools/executor-http": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.0.3.tgz", + "integrity": "sha512-dtZzdcoc7tnctSGCQhcbOQPnVidn4DakgkyrBAWf0O3GTP9NFKlA+T9+I1N4gPHupQOZdJ1gmNXfnJZyswzCkA==", + "dependencies": { + "@graphql-tools/utils": "9.1.1", + "@repeaterjs/repeater": "3.0.4", + "@whatwg-node/fetch": "0.5.1", + "dset": "3.1.2", + "extract-files": "^11.0.0", + "meros": "1.2.1", + "tslib": "^2.4.0", + "value-or-promise": "1.0.11" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/@whatwg-node/fetch": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.1.tgz", + "integrity": "sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g==", + "dependencies": { + "@peculiar/webcrypto": "^1.4.0", + "abort-controller": "^3.0.0", + "busboy": "^1.6.0", + "form-data-encoder": "^1.7.1", + "formdata-node": "^4.3.1", + "node-fetch": "^2.6.7", + "undici": "^5.12.0", + "web-streams-polyfill": "^3.2.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/@graphql-tools/executor-legacy-ws": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.3.tgz", + "integrity": "sha512-ulQ3IsxQ9VRA2S+afJefFpMZHedoUDRd8ylz+9DjqAoykYz6CDD2s3pi6Fud52VCq3DP79dRM7a6hjWgt+YPWw==", + "dependencies": { + "@graphql-tools/utils": "9.1.1", + "@types/ws": "^8.0.0", + "isomorphic-ws": "5.0.0", + "tslib": "^2.4.0", + "ws": "8.11.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-legacy-ws/node_modules/@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-legacy-ws/node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@graphql-tools/executor-legacy-ws/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, "node_modules/@graphql-tools/executor/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dependencies": { "tslib": "^2.4.0" }, @@ -3860,18 +4025,18 @@ } }, "node_modules/@graphql-tools/executor/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/@graphql-tools/git-loader": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.2.7.tgz", - "integrity": "sha512-/vBz89ugBMfoKPI4WNiaNiUmlRvOkkLgd0ANue4ggPAOqAy6c2Q9yooblzr7RDF72HBpg4MAmzmbmVLIdiTlzg==", + "version": "7.2.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.2.12.tgz", + "integrity": "sha512-9YnkOikUTPMMlFw2F8Uvd1lPzbciwVo3E5WRsAN4bLeGnVcDAuf0QxElvpcAEhD5ctQR/VKlhuzm/5DyzgTBww==", "dev": true, "dependencies": { - "@graphql-tools/graphql-tag-pluck": "7.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/graphql-tag-pluck": "7.3.12", + "@graphql-tools/utils": "9.1.1", "is-glob": "4.0.3", "micromatch": "^4.0.4", "tslib": "^2.4.0", @@ -3882,9 +4047,9 @@ } }, "node_modules/@graphql-tools/git-loader/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "dependencies": { "tslib": "^2.4.0" @@ -3894,20 +4059,20 @@ } }, "node_modules/@graphql-tools/git-loader/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "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-tools/github-loader": { - "version": "7.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.3.14.tgz", - "integrity": "sha512-KsdNtfY8GM1PoX2x6R9bZ2EqQtju6ufhUlvPhhYMET+SI18ZFwyw+4gk1FwTX0cVk9rS00YZYZz33tASWB9WSQ==", + "version": "7.3.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.3.19.tgz", + "integrity": "sha512-/IAe1zmtMFaxx2fiEWXXsExWn5akjjhBn06mfcewo1o27E+Pkg1E0H8QHwsmSN7wqXNUzph7V/C9jlA8kO3pvg==", "dev": true, "dependencies": { "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/graphql-tag-pluck": "7.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/graphql-tag-pluck": "7.3.12", + "@graphql-tools/utils": "9.1.1", "@whatwg-node/fetch": "^0.5.0", "tslib": "^2.4.0" }, @@ -3916,9 +4081,9 @@ } }, "node_modules/@graphql-tools/github-loader/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "dependencies": { "tslib": "^2.4.0" @@ -3928,9 +4093,9 @@ } }, "node_modules/@graphql-tools/github-loader/node_modules/@whatwg-node/fetch": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.1.tgz", - "integrity": "sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.3.tgz", + "integrity": "sha512-cuAKL3Z7lrJJuUrfF1wxkQTb24Qd1QO/lsjJpM5ZSZZzUMms5TPnbGeGUKWA3hVKNHh30lVfr2MyRCT5Jfkucw==", "dev": true, "dependencies": { "@peculiar/webcrypto": "^1.4.0", @@ -3944,9 +4109,9 @@ } }, "node_modules/@graphql-tools/github-loader/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "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-tools/graphql-file-loader": { @@ -3981,15 +4146,15 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/@graphql-tools/graphql-tag-pluck": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.3.7.tgz", - "integrity": "sha512-hyAYCJiauwgFYTuqzj6rgCTGJGiZiFhWqCyIJmQIyeFDhnL7MzhgqlBQElAgn1AfFkW7sBc2hMowIXG8rAK3Jg==", + "version": "7.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.3.12.tgz", + "integrity": "sha512-B92+Q6xPgAKj4z+06vVWdx/7KPlh6vHgIkCg+9hJ2duYBUyEGn39YNdjjWvsGgl3N2G5/BOVFJRmdgLG1k79Xg==", "dev": true, "dependencies": { "@babel/parser": "^7.16.8", "@babel/traverse": "^7.16.8", "@babel/types": "^7.16.8", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0" }, "peerDependencies": { @@ -3997,9 +4162,9 @@ } }, "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "dependencies": { "tslib": "^2.4.0" @@ -4009,9 +4174,9 @@ } }, "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "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-tools/import": { @@ -4125,9 +4290,9 @@ } }, "node_modules/@graphql-tools/load/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/@graphql-tools/merge": { "version": "6.2.17", @@ -4175,13 +4340,13 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/@graphql-tools/prisma-loader": { - "version": "7.2.25", - "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.25.tgz", - "integrity": "sha512-mmLCU2h3DUFf32XqJenIa2Egox6xCTWizfeT4mQqYPkJVOBNsKxkJlLsUoLr+6m5CG/wOiOJlKqtQDaDu7xT2Q==", + "version": "7.2.36", + "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.36.tgz", + "integrity": "sha512-ygmex7nN8Lx+qz/AQRvKbjdO3CnxfkOJFr8KJ1M/TPJoRN2MgLfWaU6HBFMvH38L03FJwepiObjeYotncJe2sw==", "dev": true, "dependencies": { - "@graphql-tools/url-loader": "7.16.5", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/url-loader": "7.16.16", + "@graphql-tools/utils": "9.1.1", "@types/js-yaml": "^4.0.0", "@types/json-stable-stringify": "^1.0.32", "@types/jsonwebtoken": "^8.5.0", @@ -4205,9 +4370,9 @@ } }, "node_modules/@graphql-tools/prisma-loader/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "dependencies": { "tslib": "^2.4.0" @@ -4240,12 +4405,6 @@ "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", @@ -4304,18 +4463,6 @@ "whatwg-fetch": "^3.4.1" } }, - "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", @@ -4329,9 +4476,9 @@ } }, "node_modules/@graphql-tools/prisma-loader/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "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-tools/relay-operation-optimizer": { @@ -4406,33 +4553,32 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/@graphql-tools/url-loader": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.16.5.tgz", - "integrity": "sha512-PkLQyroHavPJ0AUzV74nauKCfcYUT8PoQojAgV9LCzOd4oHxpCPDba8ZpFFXyOVFiMtiSCXwNZwkW6RGnV+IXw==", + "version": "7.16.16", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.16.16.tgz", + "integrity": "sha512-9LgYo0yqqYhTWQbXFzmM+O2qkPDFBEAhWzaSX3NYNwZ6ER0pZUtRSTWwlK2K+qPgaTQ94jhTs8+dnYLenSDSlA==", "dependencies": { "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/delegate": "9.0.9", - "@graphql-tools/utils": "8.13.0", - "@graphql-tools/wrap": "9.2.4", + "@graphql-tools/delegate": "9.0.17", + "@graphql-tools/executor-graphql-ws": "0.0.3", + "@graphql-tools/executor-http": "0.0.3", + "@graphql-tools/executor-legacy-ws": "0.0.3", + "@graphql-tools/utils": "9.1.1", + "@graphql-tools/wrap": "9.2.13", "@types/ws": "^8.0.0", "@whatwg-node/fetch": "^0.5.0", - "dset": "^3.1.2", - "extract-files": "^11.0.0", - "graphql-ws": "^5.4.1", - "isomorphic-ws": "^5.0.0", - "meros": "^1.1.4", + "isomorphic-ws": "5.0.0", "tslib": "^2.4.0", "value-or-promise": "^1.0.11", - "ws": "^8.3.0" + "ws": "8.11.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/url-loader/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dependencies": { "tslib": "^2.4.0" }, @@ -4449,9 +4595,9 @@ } }, "node_modules/@graphql-tools/url-loader/node_modules/@whatwg-node/fetch": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.1.tgz", - "integrity": "sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.3.tgz", + "integrity": "sha512-cuAKL3Z7lrJJuUrfF1wxkQTb24Qd1QO/lsjJpM5ZSZZzUMms5TPnbGeGUKWA3hVKNHh30lVfr2MyRCT5Jfkucw==", "dependencies": { "@peculiar/webcrypto": "^1.4.0", "abort-controller": "^3.0.0", @@ -4464,9 +4610,9 @@ } }, "node_modules/@graphql-tools/url-loader/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/@graphql-tools/utils": { "version": "7.10.0", @@ -4482,13 +4628,13 @@ } }, "node_modules/@graphql-tools/wrap": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.2.4.tgz", - "integrity": "sha512-e3j8ZCb3Rbw95SZuuqEErBQ/7GhNpU33LWJo10taVNmSWkOaFwpCVAoMXrGNVeIYM8moNyjFyeIO1zNjbNEH3Q==", + "version": "9.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.2.13.tgz", + "integrity": "sha512-vkf01QXq3lOx7LpnimUzkoHSxyBDuG5DMzx2u2XVBWg7Jk5H/JpSg6+a60K3cESPvvMgsvTKm2kAMq6aPxXuLg==", "dependencies": { - "@graphql-tools/delegate": "9.0.9", - "@graphql-tools/schema": "9.0.5", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/delegate": "9.0.17", + "@graphql-tools/schema": "9.0.10", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0", "value-or-promise": "1.0.11" }, @@ -4497,11 +4643,11 @@ } }, "node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/merge": { - "version": "8.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.7.tgz", - "integrity": "sha512-su9cUb0gtbvKTmD3LJ3EoUkdqmJ3KBk1efJGvUoN8tFzVVBdxgfOVxwLGI2GgIHcKRVvfhumkjHsa2aneHSY+Q==", + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.12.tgz", + "integrity": "sha512-BFL8r4+FrqecPnIW0H8UJCBRQ4Y8Ep60aujw9c/sQuFmQTiqgWgpphswMGfaosP2zUinDE3ojU5wwcS2IJnumA==", "dependencies": { - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0" }, "peerDependencies": { @@ -4509,12 +4655,12 @@ } }, "node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/schema": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.5.tgz", - "integrity": "sha512-JPxFumaPQp6pRnrofy7rWVNW57r/1RISNxBCGOudFmjfRE2PlO6b766pxhDnggm/yMR3yzR+mA/JHpOK+ij+EA==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.10.tgz", + "integrity": "sha512-lV0o4df9SpPiaeeDAzgdCJ2o2N9Wvsp0SMHlF2qDbh9aFCFQRsXuksgiDm2yTgT3TG5OtUes/t0D6uPjPZFUbQ==", "dependencies": { - "@graphql-tools/merge": "8.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/merge": "8.3.12", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0", "value-or-promise": "1.0.11" }, @@ -4523,9 +4669,9 @@ } }, "node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dependencies": { "tslib": "^2.4.0" }, @@ -4534,9 +4680,9 @@ } }, "node_modules/@graphql-tools/wrap/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/@graphql-typed-document-node/core": { "version": "3.1.1", @@ -4621,6 +4767,19 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -6434,6 +6593,11 @@ "redux": "^4" } }, + "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==" + }, "node_modules/@samverschueren/stream-to-observable": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", @@ -16207,8 +16371,7 @@ "node_modules/call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==", - "dev": true + "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" }, "node_modules/caller-callsite": { "version": "2.0.0", @@ -18548,6 +18711,19 @@ "node": ">=4" } }, + "node_modules/cssnano/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/cssnano/node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -18953,6 +19129,31 @@ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, + "node_modules/deep-equal": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", + "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", + "dependencies": { + "call-bind": "^1.0.0", + "es-get-iterator": "^1.1.1", + "get-intrinsic": "^1.0.1", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.1.1", + "isarray": "^2.0.5", + "object-is": "^1.1.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -19327,6 +19528,25 @@ "node": ">=0.8.0" } }, + "node_modules/dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "dependencies": { + "streamsearch": "0.1.2" + }, + "engines": { + "node": ">=4.5.0" + } + }, + "node_modules/dicer/node_modules/streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -19926,7 +20146,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.0", @@ -20961,6 +21180,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/eslint/node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -21655,6 +21887,11 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, "node_modules/fastest-levenshtein": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz", @@ -22408,6 +22645,11 @@ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" }, + "node_modules/form-urlencoded": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-6.1.0.tgz", + "integrity": "sha512-lc1Qd9nnEewXKoiPjIA1n38M5STbyY6krgoegsg7SsAt2b98HZKe25KaJvKFBwQaOcmh8FP7JbXVC7gocZw+XQ==" + }, "node_modules/format-graphql": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/format-graphql/-/format-graphql-1.4.0.tgz", @@ -22553,6 +22795,14 @@ } ] }, + "node_modules/fs-capacitor": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", + "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==", + "engines": { + "node": ">=10" + } + }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -23288,6 +23538,36 @@ "url": "https://github.com/sponsors/jaydenseric" } }, + "node_modules/graphql-scalars": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/graphql-scalars/-/graphql-scalars-1.19.0.tgz", + "integrity": "sha512-Kg1ecLMMYdCCfKTsi5rJ6Och3KRLEzWdze1lVbCoP+Grjp2a33rogVvECCKAgeOSWCYM7ctaJ5fVdVgzCSN6fA==", + "dependencies": { + "tslib": "~2.4.0" + }, + "engines": { + "node": ">=10" + }, + "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-scalars/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/graphql-subscriptions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", + "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", + "dependencies": { + "iterall": "^1.3.0" + }, + "peerDependencies": { + "graphql": "^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, "node_modules/graphql-tag": { "version": "2.12.6", "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", @@ -23302,6 +23582,76 @@ "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-upload": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-13.0.0.tgz", + "integrity": "sha512-YKhx8m/uOtKu4Y1UzBFJhbBGJTlk7k4CydlUUiNrtxnwZv0WigbRHP+DVhRNKt7u7DXOtcKZeYJlGtnMXvreXA==", + "dependencies": { + "busboy": "^0.3.1", + "fs-capacitor": "^6.2.0", + "http-errors": "^1.8.1", + "object-path": "^0.11.8" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >= 16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + }, + "peerDependencies": { + "graphql": "0.13.1 - 16" + } + }, + "node_modules/graphql-upload/node_modules/busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "dependencies": { + "dicer": "0.3.0" + }, + "engines": { + "node": ">=4.5.0" + } + }, + "node_modules/graphql-upload/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/graphql-upload/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/graphql-upload/node_modules/object-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/graphql-upload/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/graphql-voyager": { "version": "1.0.0-rc.29", "resolved": "https://registry.npmjs.org/graphql-voyager/-/graphql-voyager-1.0.0-rc.29.tgz", @@ -23324,9 +23674,9 @@ } }, "node_modules/graphql-ws": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.10.1.tgz", - "integrity": "sha512-MKm/3SRd1vj5Km8NaujsgeGRTKZQjUN5HRnIMJ8dL2UznKoxvrtQyJqTmqJt0f6vQd9AooDg/+baXo3huiY4Ew==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.11.2.tgz", + "integrity": "sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w==", "engines": { "node": ">=10" }, @@ -24168,6 +24518,11 @@ "node": ">=0.10" } }, + "node_modules/http2-client": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", + "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==" + }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -25181,7 +25536,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -25342,7 +25696,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -25460,6 +25813,14 @@ "dev": true, "optional": true }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -25471,6 +25832,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -25520,8 +25893,7 @@ "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", @@ -27500,18 +27872,21 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, + "node_modules/js-yaml/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==" + }, "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -27642,6 +28017,14 @@ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, + "node_modules/json-ptr": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json-ptr/-/json-ptr-2.2.0.tgz", + "integrity": "sha512-w9f6/zhz4kykltXMG7MLJWMajxiPj0q+uzQPR1cggNAE/sXoq/C5vjUb/7QNcC3rJsVIIKy37ALTXy1O+3c8QQ==", + "dependencies": { + "tslib": "^2.2.0" + } + }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -27655,12 +28038,15 @@ "devOptional": true }, "node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==", + "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.0" + "jsonify": "^0.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/json-stable-stringify-without-jsonify": { @@ -27728,6 +28114,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/jsonpath-plus": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-6.0.1.tgz", + "integrity": "sha512-EvGovdvau6FyLexFH2OeXfIITlgIbgZoAZe3usiySeaIDm5QS+A10DKNpaPBBqqRSZr2HN6HVNXxtwUAr2apEw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/jsonwebtoken": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", @@ -28621,8 +29023,7 @@ "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" }, "node_modules/lodash.flattendeep": { "version": "4.4.0", @@ -28746,6 +29147,11 @@ "resolved": "https://registry.npmjs.org/lodash.uniqueid/-/lodash.uniqueid-4.0.1.tgz", "integrity": "sha512-GQQWaIeGlL6DIIr06kj1j6sSmBxyNMwI8kaX9aKpHR/XsMTiaXDVPNPAkiboOTK9OJpTJF/dXT3xYoFQnj386Q==" }, + "node_modules/lodash.unset": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.unset/-/lodash.unset-4.5.2.tgz", + "integrity": "sha512-bwKX88k2JhCV9D1vtE8+naDKlLiGrSmf8zi/Y9ivFHwbmRfA8RxS/aVJ+sIht2XOwqoNr4xUPUkGZpc1sHFEKg==" + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -29449,14 +29855,14 @@ } }, "node_modules/meros": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.0.tgz", - "integrity": "sha512-3QRZIS707pZQnijHdhbttXRWwrHhZJ/gzolneoxKVz9N/xmsvY/7Ls8lpnI9gxbgxjcHsAVEW3mgwiZCo6kkJQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.1.tgz", + "integrity": "sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==", "engines": { - "node": ">=12" + "node": ">=13" }, "peerDependencies": { - "@types/node": ">=12" + "@types/node": ">=13" }, "peerDependenciesMeta": { "@types/node": { @@ -29479,6 +29885,19 @@ "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", "dev": true }, + "node_modules/microfiber": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/microfiber/-/microfiber-1.3.1.tgz", + "integrity": "sha512-0yMqNUD/SDSCg/NHj2MPQvFo8s9RQCoerMkT2odgvUkXqf5c/giC9Jed2g2oPGFW+TJIk926/SUjiS5gO8a+Sg==", + "dependencies": { + "lodash.defaults": "^4.2.0", + "lodash.get": "^4.4.2", + "lodash.unset": "^4.5.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -30334,6 +30753,17 @@ } } }, + "node_modules/node-fetch-h2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", + "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", + "dependencies": { + "http2-client": "^1.2.5" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -30503,6 +30933,19 @@ "node": ">=8" } }, + "node_modules/node-readfiles": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", + "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", + "dependencies": { + "es6-promise": "^3.2.1" + } + }, + "node_modules/node-readfiles/node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==" + }, "node_modules/node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", @@ -30817,6 +31260,128 @@ "node": ">=8" } }, + "node_modules/oas-kit-common": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", + "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/oas-linter": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", + "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", + "dependencies": { + "@exodus/schemasafe": "^1.0.0-rc.2", + "should": "^13.2.1", + "yaml": "^1.10.0" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-resolver": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", + "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", + "dependencies": { + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "bin": { + "resolve": "resolve.js" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-resolver/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==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/oas-resolver/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/oas-resolver/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/oas-resolver/node_modules/yargs": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "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.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/oas-resolver/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==", + "engines": { + "node": ">=12" + } + }, + "node_modules/oas-schema-walker": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", + "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-validator": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", + "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", + "dependencies": { + "call-me-maybe": "^1.0.1", + "oas-kit-common": "^1.0.8", + "oas-linter": "^3.2.2", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "reftools": "^1.1.9", + "should": "^13.2.1", + "yaml": "^1.10.0" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, "node_modules/oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -30864,6 +31429,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -31076,6 +31656,74 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openapi-to-graphql": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/openapi-to-graphql/-/openapi-to-graphql-2.6.3.tgz", + "integrity": "sha512-LjUyDVS/oQx9Wd7aj+/j0kfQZ1dQMklDM1qpsCUrBGHv4sbY6280tfitmXBsEMQXfRR6yVA+24hRqxJNBDHZ2w==", + "dependencies": { + "cross-fetch": "^3.1.4", + "debug": "^4.2.0", + "deep-equal": "^2.0.5", + "form-data": "^4.0.0", + "form-urlencoded": "^6.0.4", + "graphql-scalars": "^1.10.0", + "graphql-subscriptions": "^1.1.0", + "graphql-upload": "^13.0.0", + "json-ptr": "^2.2.0", + "jsonpath-plus": "^6.0.1", + "jsonpointer": "^5.0.0", + "oas-validator": "^5.0.2", + "pluralize": "^8.0.0", + "swagger2openapi": "^7.0.2", + "tslib": "^2.3.0", + "url-join": "4.0.1", + "ws": "^7.5.3" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/openapi-to-graphql/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/openapi-to-graphql/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/openapi-to-graphql/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", @@ -31970,6 +32618,14 @@ "semver-compare": "^1.0.0" } }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "engines": { + "node": ">=4" + } + }, "node_modules/pnp-webpack-plugin": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", @@ -36276,6 +36932,14 @@ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" }, + "node_modules/reftools": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", + "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -37856,8 +38520,7 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/sha.js": { "version": "2.4.11", @@ -37940,6 +38603,54 @@ "dev": true, "optional": true }, + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dependencies": { + "should-type": "^1.4.0" + } + }, + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "dependencies": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==" + }, + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dependencies": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -39348,6 +40059,19 @@ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, + "node_modules/svgo/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/svgo/node_modules/nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -39357,6 +40081,89 @@ "boolbase": "~1.0.0" } }, + "node_modules/swagger2openapi": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", + "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", + "dependencies": { + "call-me-maybe": "^1.0.1", + "node-fetch": "^2.6.1", + "node-fetch-h2": "^2.3.0", + "node-readfiles": "^0.2.0", + "oas-kit-common": "^1.0.8", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "oas-validator": "^5.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "bin": { + "boast": "boast.js", + "oas-validate": "oas-validate.js", + "swagger2openapi": "swagger2openapi.js" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/swagger2openapi/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==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/swagger2openapi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/swagger2openapi/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/swagger2openapi/node_modules/yargs": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "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.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/swagger2openapi/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==", + "engines": { + "node": ">=12" + } + }, "node_modules/swap-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", @@ -40284,7 +41091,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, "engines": { "node": ">=0.6" } @@ -41295,6 +42101,11 @@ "querystring": "0.2.0" } }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, "node_modules/url-loader": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", @@ -42788,6 +43599,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "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", @@ -42952,9 +43777,9 @@ } }, "node_modules/ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { "node": ">=10.0.0" }, @@ -45242,6 +46067,11 @@ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, + "@exodus/schemasafe": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.9.tgz", + "integrity": "sha512-dGGHpb61hLwifAu7sotuHFDBw6GTdpG8aKC0fsK17EuTzMRvUrH7lEAr6LTJ+sx3AZYed9yZ77rltVDHyg2hRg==" + }, "@f/animate": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@f/animate/-/animate-1.0.1.tgz", @@ -45368,9 +46198,9 @@ } }, "@graphql-codegen/plugin-helpers": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.1.tgz", - "integrity": "sha512-wpEShhwbQp8pqXolnSCNaj0pU91LbuBvYHpYqm96TUqyeKQYAYRVmw3JIt0g8UQpKYhg8lYIDwWdcINOYqkGLg==", + "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", @@ -45382,31 +46212,53 @@ } }, "@graphql-tools/merge": { - "version": "8.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.7.tgz", - "integrity": "sha512-su9cUb0gtbvKTmD3LJ3EoUkdqmJ3KBk1efJGvUoN8tFzVVBdxgfOVxwLGI2GgIHcKRVvfhumkjHsa2aneHSY+Q==", + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.12.tgz", + "integrity": "sha512-BFL8r4+FrqecPnIW0H8UJCBRQ4Y8Ep60aujw9c/sQuFmQTiqgWgpphswMGfaosP2zUinDE3ojU5wwcS2IJnumA==", "dev": true, "requires": { - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + } } }, "@graphql-tools/schema": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.5.tgz", - "integrity": "sha512-JPxFumaPQp6pRnrofy7rWVNW57r/1RISNxBCGOudFmjfRE2PlO6b766pxhDnggm/yMR3yzR+mA/JHpOK+ij+EA==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.10.tgz", + "integrity": "sha512-lV0o4df9SpPiaeeDAzgdCJ2o2N9Wvsp0SMHlF2qDbh9aFCFQRsXuksgiDm2yTgT3TG5OtUes/t0D6uPjPZFUbQ==", "dev": true, "requires": { - "@graphql-tools/merge": "8.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/merge": "8.3.12", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0", "value-or-promise": "1.0.11" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + } } }, "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "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" @@ -45449,9 +46301,9 @@ "dev": true }, "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -45549,9 +46401,9 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, "y18n": { @@ -45561,9 +46413,9 @@ "dev": true }, "yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "requires": { "cliui": "^8.0.1", @@ -45572,7 +46424,7 @@ "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" } }, "yargs-parser": { @@ -45625,9 +46477,9 @@ }, "dependencies": { "@graphql-codegen/plugin-helpers": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.1.tgz", - "integrity": "sha512-wpEShhwbQp8pqXolnSCNaj0pU91LbuBvYHpYqm96TUqyeKQYAYRVmw3JIt0g8UQpKYhg8lYIDwWdcINOYqkGLg==", + "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", @@ -45639,9 +46491,9 @@ } }, "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "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" @@ -45654,9 +46506,9 @@ "dev": true }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -45680,22 +46532,22 @@ } }, "@graphql-codegen/typescript-operations": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.5.tgz", - "integrity": "sha512-rH15UA34MRf6cITfvt2EkSEaC/8ULvgMg5kzun6895oucA8PFyAFJaQzcjk9UraeD3ddMu56OKhZGdxd0JWfKw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.6.tgz", + "integrity": "sha512-7WqOsVMTUXf+tdt0jGOBuQINLYjPIGlcsnkzXQSPJ7rSGVj99VobVuwgmAeFmJctZ3lgwx3gjPZ0dyCIOBc2/A==", "dev": true, "requires": { - "@graphql-codegen/plugin-helpers": "^2.6.2", - "@graphql-codegen/typescript": "^2.7.5", - "@graphql-codegen/visitor-plugin-common": "2.13.0", + "@graphql-codegen/plugin-helpers": "^2.7.2", + "@graphql-codegen/typescript": "^2.8.1", + "@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.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.1.tgz", - "integrity": "sha512-wpEShhwbQp8pqXolnSCNaj0pU91LbuBvYHpYqm96TUqyeKQYAYRVmw3JIt0g8UQpKYhg8lYIDwWdcINOYqkGLg==", + "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", @@ -45707,25 +46559,25 @@ } }, "@graphql-codegen/typescript": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.0.tgz", - "integrity": "sha512-atQ6NFfMmoknJi0QdVSozPugKcgeJB6t1/cVskbhVtX8tAEFFLjl6H23mpz3t35AH6aGWtvx2LCjUSxHI6P6xA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.1.tgz", + "integrity": "sha512-kweV1DOOH2blvMheVL55TT0s9bxkmF/zijN9mdk9pRD20i/rI/46qbh8fNKqy/PV12vZOmZGNL6tigdghG2bqg==", "dev": true, "requires": { - "@graphql-codegen/plugin-helpers": "^2.6.2", + "@graphql-codegen/plugin-helpers": "^2.7.2", "@graphql-codegen/schema-ast": "^2.5.1", - "@graphql-codegen/visitor-plugin-common": "2.13.0", + "@graphql-codegen/visitor-plugin-common": "2.13.1", "auto-bind": "~4.0.0", "tslib": "~2.4.0" } }, "@graphql-codegen/visitor-plugin-common": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.0.tgz", - "integrity": "sha512-8lKw4l8W6yKaqrxx025eB6+lRMWaBKedbKjC9UyLhXAnqTi3tgaRKOBo4zvl1+KzE6R41Ruov9UcGD7OjgmBrw==", + "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.6.2", + "@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", @@ -45738,9 +46590,9 @@ } }, "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "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" @@ -45753,9 +46605,9 @@ "dev": true }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -45785,30 +46637,30 @@ } }, "@graphql-tools/apollo-engine-loader": { - "version": "7.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.14.tgz", - "integrity": "sha512-W2p+YuSSui2W+zvEXX/y8uXNs9RgM+VwHHDc6dhwqY33euXwYTCqrBgMQH3Hkey2K631aUv4+p32Be7Zqh0v7w==", + "version": "7.3.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.19.tgz", + "integrity": "sha512-at5VaqSVGZDc3Fjr63vWhrKXTb5YdopCuvpRGeC9PALIWAMOLXNdkdPYiFe8crLAz60qhcpADqFoNFR+G2+NIg==", "dev": true, "requires": { "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "@whatwg-node/fetch": "^0.5.0", "tslib": "^2.4.0" }, "dependencies": { "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "requires": { "tslib": "^2.4.0" } }, "@whatwg-node/fetch": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.1.tgz", - "integrity": "sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.3.tgz", + "integrity": "sha512-cuAKL3Z7lrJJuUrfF1wxkQTb24Qd1QO/lsjJpM5ZSZZzUMms5TPnbGeGUKWA3hVKNHh30lVfr2MyRCT5Jfkucw==", "dev": true, "requires": { "@peculiar/webcrypto": "^1.4.0", @@ -45822,150 +46674,270 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } }, "@graphql-tools/batch-execute": { - "version": "8.5.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.7.tgz", - "integrity": "sha512-s6VuNsagjCz8WhPYF9SXTPqvpOWE+HH7M2ZXMf5340OLGkWIe+Yu3+k8OCUYYnCTIFvJ4xTrpuxGQifY+DtE3Q==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.12.tgz", + "integrity": "sha512-eNdN5CirW3ILoBaVyy4GI6JpLoJELeH0A7+uLRjwZuMFxpe4cljSrY8P+id28m43+uvBzB3rvNTv0+mnRjrMRw==", "requires": { - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "dataloader": "2.1.0", "tslib": "^2.4.0", "value-or-promise": "1.0.11" }, "dependencies": { "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "requires": { "tslib": "^2.4.0" } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" } } }, "@graphql-tools/code-file-loader": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.7.tgz", - "integrity": "sha512-mjlqrA09LpDd0NRLKATLDpubUe6Badt4trhUU5Nv0yRhPFTPCEOLxwuDBeihhEXrXFq4yboPshOh607ySeywGw==", + "version": "7.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.12.tgz", + "integrity": "sha512-XflxElA2FNPDgicUZr4UF6NVlvPHFOKd1u8KAb/nHSlUT70qcvIPFfRASSuEvLMGYuW/lrFZfgi2z0BV6P5Vqw==", "dev": true, "requires": { - "@graphql-tools/graphql-tag-pluck": "7.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/graphql-tag-pluck": "7.3.12", + "@graphql-tools/utils": "9.1.1", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" }, "dependencies": { "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "requires": { "tslib": "^2.4.0" } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } }, "@graphql-tools/delegate": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.9.tgz", - "integrity": "sha512-jUXRuVZ8jFEN9FS4jRRmSURZc8Ii06YR6LmMdPN8WdUsfQn/sTVQ6CEI/MxsEf60YuOFuBU8XAvSGsjQZTzuXg==", + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.17.tgz", + "integrity": "sha512-y7h5H+hOhQWEkG67A4wurlphHMYJuMlQIEY7wZPVpmViuV6TuSPB7qkLITsM99XiNQhX+v1VayN2cuaP/8nIhw==", "requires": { - "@graphql-tools/batch-execute": "8.5.7", - "@graphql-tools/executor": "0.0.1", - "@graphql-tools/schema": "9.0.5", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/batch-execute": "8.5.12", + "@graphql-tools/executor": "0.0.9", + "@graphql-tools/schema": "9.0.10", + "@graphql-tools/utils": "9.1.1", "dataloader": "2.1.0", "tslib": "~2.4.0", "value-or-promise": "1.0.11" }, "dependencies": { "@graphql-tools/merge": { - "version": "8.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.7.tgz", - "integrity": "sha512-su9cUb0gtbvKTmD3LJ3EoUkdqmJ3KBk1efJGvUoN8tFzVVBdxgfOVxwLGI2GgIHcKRVvfhumkjHsa2aneHSY+Q==", + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.12.tgz", + "integrity": "sha512-BFL8r4+FrqecPnIW0H8UJCBRQ4Y8Ep60aujw9c/sQuFmQTiqgWgpphswMGfaosP2zUinDE3ojU5wwcS2IJnumA==", "requires": { - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0" } }, "@graphql-tools/schema": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.5.tgz", - "integrity": "sha512-JPxFumaPQp6pRnrofy7rWVNW57r/1RISNxBCGOudFmjfRE2PlO6b766pxhDnggm/yMR3yzR+mA/JHpOK+ij+EA==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.10.tgz", + "integrity": "sha512-lV0o4df9SpPiaeeDAzgdCJ2o2N9Wvsp0SMHlF2qDbh9aFCFQRsXuksgiDm2yTgT3TG5OtUes/t0D6uPjPZFUbQ==", "requires": { - "@graphql-tools/merge": "8.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/merge": "8.3.12", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0", "value-or-promise": "1.0.11" } }, "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "requires": { "tslib": "^2.4.0" } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" } } }, "@graphql-tools/executor": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.1.tgz", - "integrity": "sha512-+li0brhr6NdViS/pyaDCRTUKf9/lCgaNcfrE4p1yjubwKFoqc5dhwiB3kQ0lOIso2ipAKk08kJ4sBLqJz3osWg==", + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.9.tgz", + "integrity": "sha512-qLhQWXTxTS6gbL9INAQa4FJIqTd2tccnbs4HswOx35KnyLaLtREuQ8uTfU+5qMrRIBhuzpGdkP2ssqxLyOJ5rA==", "requires": { - "@graphql-tools/utils": "8.13.0", - "@graphql-typed-document-node/core": "3.1.1" + "@graphql-tools/utils": "9.1.1", + "@graphql-typed-document-node/core": "3.1.1", + "@repeaterjs/repeater": "3.0.4", + "tslib": "^2.4.0", + "value-or-promise": "1.0.11" }, "dependencies": { "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "requires": { "tslib": "^2.4.0" } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "@graphql-tools/executor-graphql-ws": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.3.tgz", + "integrity": "sha512-8VATDf82lTaYRE4/BrFm8v6Cz6UHoNTlSkQjPcGtDX4nxbBUYLDfN+Z8ZXl0eZc3tCwsIHkYQunJO0OjmcrP5Q==", + "requires": { + "@graphql-tools/utils": "9.1.1", + "@repeaterjs/repeater": "3.0.4", + "@types/ws": "^8.0.0", + "graphql-ws": "5.11.2", + "isomorphic-ws": "5.0.0", + "tslib": "^2.4.0", + "ws": "8.11.0" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "@graphql-tools/executor-http": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.0.3.tgz", + "integrity": "sha512-dtZzdcoc7tnctSGCQhcbOQPnVidn4DakgkyrBAWf0O3GTP9NFKlA+T9+I1N4gPHupQOZdJ1gmNXfnJZyswzCkA==", + "requires": { + "@graphql-tools/utils": "9.1.1", + "@repeaterjs/repeater": "3.0.4", + "@whatwg-node/fetch": "0.5.1", + "dset": "3.1.2", + "extract-files": "^11.0.0", + "meros": "1.2.1", + "tslib": "^2.4.0", + "value-or-promise": "1.0.11" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@whatwg-node/fetch": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.1.tgz", + "integrity": "sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g==", + "requires": { + "@peculiar/webcrypto": "^1.4.0", + "abort-controller": "^3.0.0", + "busboy": "^1.6.0", + "form-data-encoder": "^1.7.1", + "formdata-node": "^4.3.1", + "node-fetch": "^2.6.7", + "undici": "^5.12.0", + "web-streams-polyfill": "^3.2.0" + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "@graphql-tools/executor-legacy-ws": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.3.tgz", + "integrity": "sha512-ulQ3IsxQ9VRA2S+afJefFpMZHedoUDRd8ylz+9DjqAoykYz6CDD2s3pi6Fud52VCq3DP79dRM7a6hjWgt+YPWw==", + "requires": { + "@graphql-tools/utils": "9.1.1", + "@types/ws": "^8.0.0", + "isomorphic-ws": "5.0.0", + "tslib": "^2.4.0", + "ws": "8.11.0" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" } } }, "@graphql-tools/git-loader": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.2.7.tgz", - "integrity": "sha512-/vBz89ugBMfoKPI4WNiaNiUmlRvOkkLgd0ANue4ggPAOqAy6c2Q9yooblzr7RDF72HBpg4MAmzmbmVLIdiTlzg==", + "version": "7.2.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.2.12.tgz", + "integrity": "sha512-9YnkOikUTPMMlFw2F8Uvd1lPzbciwVo3E5WRsAN4bLeGnVcDAuf0QxElvpcAEhD5ctQR/VKlhuzm/5DyzgTBww==", "dev": true, "requires": { - "@graphql-tools/graphql-tag-pluck": "7.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/graphql-tag-pluck": "7.3.12", + "@graphql-tools/utils": "9.1.1", "is-glob": "4.0.3", "micromatch": "^4.0.4", "tslib": "^2.4.0", @@ -45973,48 +46945,48 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "requires": { "tslib": "^2.4.0" } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } }, "@graphql-tools/github-loader": { - "version": "7.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.3.14.tgz", - "integrity": "sha512-KsdNtfY8GM1PoX2x6R9bZ2EqQtju6ufhUlvPhhYMET+SI18ZFwyw+4gk1FwTX0cVk9rS00YZYZz33tASWB9WSQ==", + "version": "7.3.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.3.19.tgz", + "integrity": "sha512-/IAe1zmtMFaxx2fiEWXXsExWn5akjjhBn06mfcewo1o27E+Pkg1E0H8QHwsmSN7wqXNUzph7V/C9jlA8kO3pvg==", "dev": true, "requires": { "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/graphql-tag-pluck": "7.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/graphql-tag-pluck": "7.3.12", + "@graphql-tools/utils": "9.1.1", "@whatwg-node/fetch": "^0.5.0", "tslib": "^2.4.0" }, "dependencies": { "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "requires": { "tslib": "^2.4.0" } }, "@whatwg-node/fetch": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.1.tgz", - "integrity": "sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.3.tgz", + "integrity": "sha512-cuAKL3Z7lrJJuUrfF1wxkQTb24Qd1QO/lsjJpM5ZSZZzUMms5TPnbGeGUKWA3hVKNHh30lVfr2MyRCT5Jfkucw==", "dev": true, "requires": { "@peculiar/webcrypto": "^1.4.0", @@ -46028,9 +47000,9 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -46063,31 +47035,31 @@ } }, "@graphql-tools/graphql-tag-pluck": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.3.7.tgz", - "integrity": "sha512-hyAYCJiauwgFYTuqzj6rgCTGJGiZiFhWqCyIJmQIyeFDhnL7MzhgqlBQElAgn1AfFkW7sBc2hMowIXG8rAK3Jg==", + "version": "7.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.3.12.tgz", + "integrity": "sha512-B92+Q6xPgAKj4z+06vVWdx/7KPlh6vHgIkCg+9hJ2duYBUyEGn39YNdjjWvsGgl3N2G5/BOVFJRmdgLG1k79Xg==", "dev": true, "requires": { "@babel/parser": "^7.16.8", "@babel/traverse": "^7.16.8", "@babel/types": "^7.16.8", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0" }, "dependencies": { "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "requires": { "tslib": "^2.4.0" } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -46183,9 +47155,9 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" } } }, @@ -46230,13 +47202,13 @@ } }, "@graphql-tools/prisma-loader": { - "version": "7.2.25", - "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.25.tgz", - "integrity": "sha512-mmLCU2h3DUFf32XqJenIa2Egox6xCTWizfeT4mQqYPkJVOBNsKxkJlLsUoLr+6m5CG/wOiOJlKqtQDaDu7xT2Q==", + "version": "7.2.36", + "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.36.tgz", + "integrity": "sha512-ygmex7nN8Lx+qz/AQRvKbjdO3CnxfkOJFr8KJ1M/TPJoRN2MgLfWaU6HBFMvH38L03FJwepiObjeYotncJe2sw==", "dev": true, "requires": { - "@graphql-tools/url-loader": "7.16.5", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/url-loader": "7.16.16", + "@graphql-tools/utils": "9.1.1", "@types/js-yaml": "^4.0.0", "@types/json-stable-stringify": "^1.0.32", "@types/jsonwebtoken": "^8.5.0", @@ -46257,9 +47229,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "dev": true, "requires": { "tslib": "^2.4.0" @@ -46280,12 +47252,6 @@ "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 - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -46329,15 +47295,6 @@ "whatwg-fetch": "^3.4.1" } }, - "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" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -46348,9 +47305,9 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -46416,30 +47373,29 @@ } }, "@graphql-tools/url-loader": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.16.5.tgz", - "integrity": "sha512-PkLQyroHavPJ0AUzV74nauKCfcYUT8PoQojAgV9LCzOd4oHxpCPDba8ZpFFXyOVFiMtiSCXwNZwkW6RGnV+IXw==", + "version": "7.16.16", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.16.16.tgz", + "integrity": "sha512-9LgYo0yqqYhTWQbXFzmM+O2qkPDFBEAhWzaSX3NYNwZ6ER0pZUtRSTWwlK2K+qPgaTQ94jhTs8+dnYLenSDSlA==", "requires": { "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/delegate": "9.0.9", - "@graphql-tools/utils": "8.13.0", - "@graphql-tools/wrap": "9.2.4", + "@graphql-tools/delegate": "9.0.17", + "@graphql-tools/executor-graphql-ws": "0.0.3", + "@graphql-tools/executor-http": "0.0.3", + "@graphql-tools/executor-legacy-ws": "0.0.3", + "@graphql-tools/utils": "9.1.1", + "@graphql-tools/wrap": "9.2.13", "@types/ws": "^8.0.0", "@whatwg-node/fetch": "^0.5.0", - "dset": "^3.1.2", - "extract-files": "^11.0.0", - "graphql-ws": "^5.4.1", - "isomorphic-ws": "^5.0.0", - "meros": "^1.1.4", + "isomorphic-ws": "5.0.0", "tslib": "^2.4.0", "value-or-promise": "^1.0.11", - "ws": "^8.3.0" + "ws": "8.11.0" }, "dependencies": { "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "requires": { "tslib": "^2.4.0" } @@ -46453,9 +47409,9 @@ } }, "@whatwg-node/fetch": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.1.tgz", - "integrity": "sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.3.tgz", + "integrity": "sha512-cuAKL3Z7lrJJuUrfF1wxkQTb24Qd1QO/lsjJpM5ZSZZzUMms5TPnbGeGUKWA3hVKNHh30lVfr2MyRCT5Jfkucw==", "requires": { "@peculiar/webcrypto": "^1.4.0", "abort-controller": "^3.0.0", @@ -46468,9 +47424,9 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" } } }, @@ -46485,49 +47441,49 @@ } }, "@graphql-tools/wrap": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.2.4.tgz", - "integrity": "sha512-e3j8ZCb3Rbw95SZuuqEErBQ/7GhNpU33LWJo10taVNmSWkOaFwpCVAoMXrGNVeIYM8moNyjFyeIO1zNjbNEH3Q==", + "version": "9.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.2.13.tgz", + "integrity": "sha512-vkf01QXq3lOx7LpnimUzkoHSxyBDuG5DMzx2u2XVBWg7Jk5H/JpSg6+a60K3cESPvvMgsvTKm2kAMq6aPxXuLg==", "requires": { - "@graphql-tools/delegate": "9.0.9", - "@graphql-tools/schema": "9.0.5", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/delegate": "9.0.17", + "@graphql-tools/schema": "9.0.10", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0", "value-or-promise": "1.0.11" }, "dependencies": { "@graphql-tools/merge": { - "version": "8.3.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.7.tgz", - "integrity": "sha512-su9cUb0gtbvKTmD3LJ3EoUkdqmJ3KBk1efJGvUoN8tFzVVBdxgfOVxwLGI2GgIHcKRVvfhumkjHsa2aneHSY+Q==", + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.12.tgz", + "integrity": "sha512-BFL8r4+FrqecPnIW0H8UJCBRQ4Y8Ep60aujw9c/sQuFmQTiqgWgpphswMGfaosP2zUinDE3ojU5wwcS2IJnumA==", "requires": { - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0" } }, "@graphql-tools/schema": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.5.tgz", - "integrity": "sha512-JPxFumaPQp6pRnrofy7rWVNW57r/1RISNxBCGOudFmjfRE2PlO6b766pxhDnggm/yMR3yzR+mA/JHpOK+ij+EA==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.10.tgz", + "integrity": "sha512-lV0o4df9SpPiaeeDAzgdCJ2o2N9Wvsp0SMHlF2qDbh9aFCFQRsXuksgiDm2yTgT3TG5OtUes/t0D6uPjPZFUbQ==", "requires": { - "@graphql-tools/merge": "8.3.7", - "@graphql-tools/utils": "8.13.0", + "@graphql-tools/merge": "8.3.12", + "@graphql-tools/utils": "9.1.1", "tslib": "^2.4.0", "value-or-promise": "1.0.11" } }, "@graphql-tools/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-cI4LdXElgVK2jFoq0DpANlvk4Di6kIapHsJI63RCepQ6xZe+mLI1mDrGdesG37s2BaABqV3RdTzeO/sPnTtyxQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.1.tgz", + "integrity": "sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==", "requires": { "tslib": "^2.4.0" } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" } } }, @@ -46594,6 +47550,16 @@ "path-exists": "^4.0.0" } }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -47981,6 +48947,11 @@ } } }, + "@repeaterjs/repeater": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz", + "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==" + }, "@samverschueren/stream-to-observable": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", @@ -55712,8 +56683,7 @@ "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==", - "dev": true + "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" }, "caller-callsite": { "version": "2.0.0", @@ -57456,6 +58426,16 @@ "resolve-from": "^3.0.0" } }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -57886,6 +58866,28 @@ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, + "deep-equal": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", + "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", + "requires": { + "call-bind": "^1.0.0", + "es-get-iterator": "^1.1.1", + "get-intrinsic": "^1.0.1", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.1.1", + "isarray": "^2.0.5", + "object-is": "^1.1.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.2" + } + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -58168,6 +59170,21 @@ "minimist": "^1.2.6" } }, + "dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "requires": { + "streamsearch": "0.1.2" + }, + "dependencies": { + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA==" + } + } + }, "didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -58684,7 +59701,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, "requires": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.0", @@ -58881,6 +59897,16 @@ "type-fest": "^0.8.1" } }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -59986,6 +61012,11 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, "fastest-levenshtein": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz", @@ -60594,6 +61625,11 @@ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" }, + "form-urlencoded": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-6.1.0.tgz", + "integrity": "sha512-lc1Qd9nnEewXKoiPjIA1n38M5STbyY6krgoegsg7SsAt2b98HZKe25KaJvKFBwQaOcmh8FP7JbXVC7gocZw+XQ==" + }, "format-graphql": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/format-graphql/-/format-graphql-1.4.0.tgz", @@ -60700,6 +61736,11 @@ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true }, + "fs-capacitor": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", + "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" + }, "fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -61266,6 +62307,29 @@ } } }, + "graphql-scalars": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/graphql-scalars/-/graphql-scalars-1.19.0.tgz", + "integrity": "sha512-Kg1ecLMMYdCCfKTsi5rJ6Och3KRLEzWdze1lVbCoP+Grjp2a33rogVvECCKAgeOSWCYM7ctaJ5fVdVgzCSN6fA==", + "requires": { + "tslib": "~2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "graphql-subscriptions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", + "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", + "requires": { + "iterall": "^1.3.0" + } + }, "graphql-tag": { "version": "2.12.6", "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", @@ -61274,6 +62338,54 @@ "tslib": "^2.1.0" } }, + "graphql-upload": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-13.0.0.tgz", + "integrity": "sha512-YKhx8m/uOtKu4Y1UzBFJhbBGJTlk7k4CydlUUiNrtxnwZv0WigbRHP+DVhRNKt7u7DXOtcKZeYJlGtnMXvreXA==", + "requires": { + "busboy": "^0.3.1", + "fs-capacitor": "^6.2.0", + "http-errors": "^1.8.1", + "object-path": "^0.11.8" + }, + "dependencies": { + "busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "requires": { + "dicer": "0.3.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "object-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + } + } + }, "graphql-voyager": { "version": "1.0.0-rc.29", "resolved": "https://registry.npmjs.org/graphql-voyager/-/graphql-voyager-1.0.0-rc.29.tgz", @@ -61291,9 +62403,9 @@ } }, "graphql-ws": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.10.1.tgz", - "integrity": "sha512-MKm/3SRd1vj5Km8NaujsgeGRTKZQjUN5HRnIMJ8dL2UznKoxvrtQyJqTmqJt0f6vQd9AooDg/+baXo3huiY4Ew==" + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.11.2.tgz", + "integrity": "sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w==" }, "growly": { "version": "1.3.0", @@ -61957,6 +63069,11 @@ "sshpk": "^1.14.1" } }, + "http2-client": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", + "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==" + }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -62681,8 +63798,7 @@ "is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" }, "is-negative-zero": { "version": "2.0.2", @@ -62791,8 +63907,7 @@ "is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" }, "is-shared-array-buffer": { "version": "1.0.2", @@ -62871,6 +63986,11 @@ "dev": true, "optional": true }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -62879,6 +63999,15 @@ "call-bind": "^1.0.2" } }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -62914,8 +64043,7 @@ "isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "isexe": { "version": "2.0.0", @@ -64403,13 +65531,18 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.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==" + } } }, "jsbn": { @@ -64500,6 +65633,14 @@ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, + "json-ptr": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json-ptr/-/json-ptr-2.2.0.tgz", + "integrity": "sha512-w9f6/zhz4kykltXMG7MLJWMajxiPj0q+uzQPR1cggNAE/sXoq/C5vjUb/7QNcC3rJsVIIKy37ALTXy1O+3c8QQ==", + "requires": { + "tslib": "^2.2.0" + } + }, "json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -64513,12 +65654,12 @@ "devOptional": true }, "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==", + "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.0" + "jsonify": "^0.0.1" } }, "json-stable-stringify-without-jsonify": { @@ -64572,6 +65713,16 @@ "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", "dev": true }, + "jsonpath-plus": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-6.0.1.tgz", + "integrity": "sha512-EvGovdvau6FyLexFH2OeXfIITlgIbgZoAZe3usiySeaIDm5QS+A10DKNpaPBBqqRSZr2HN6HVNXxtwUAr2apEw==" + }, + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" + }, "jsonwebtoken": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", @@ -65283,8 +66434,7 @@ "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" }, "lodash.flattendeep": { "version": "4.4.0", @@ -65408,6 +66558,11 @@ "resolved": "https://registry.npmjs.org/lodash.uniqueid/-/lodash.uniqueid-4.0.1.tgz", "integrity": "sha512-GQQWaIeGlL6DIIr06kj1j6sSmBxyNMwI8kaX9aKpHR/XsMTiaXDVPNPAkiboOTK9OJpTJF/dXT3xYoFQnj386Q==" }, + "lodash.unset": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.unset/-/lodash.unset-4.5.2.tgz", + "integrity": "sha512-bwKX88k2JhCV9D1vtE8+naDKlLiGrSmf8zi/Y9ivFHwbmRfA8RxS/aVJ+sIht2XOwqoNr4xUPUkGZpc1sHFEKg==" + }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -65967,9 +67122,9 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "meros": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.0.tgz", - "integrity": "sha512-3QRZIS707pZQnijHdhbttXRWwrHhZJ/gzolneoxKVz9N/xmsvY/7Ls8lpnI9gxbgxjcHsAVEW3mgwiZCo6kkJQ==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.1.tgz", + "integrity": "sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==" }, "methods": { "version": "1.1.2", @@ -65983,6 +67138,16 @@ "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", "dev": true }, + "microfiber": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/microfiber/-/microfiber-1.3.1.tgz", + "integrity": "sha512-0yMqNUD/SDSCg/NHj2MPQvFo8s9RQCoerMkT2odgvUkXqf5c/giC9Jed2g2oPGFW+TJIk926/SUjiS5gO8a+Sg==", + "requires": { + "lodash.defaults": "^4.2.0", + "lodash.get": "^4.4.2", + "lodash.unset": "^4.5.2" + } + }, "micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -66656,6 +67821,14 @@ } } }, + "node-fetch-h2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", + "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", + "requires": { + "http2-client": "^1.2.5" + } + }, "node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -66798,6 +67971,21 @@ "process-on-spawn": "^1.0.0" } }, + "node-readfiles": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", + "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", + "requires": { + "es6-promise": "^3.2.1" + }, + "dependencies": { + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==" + } + } + }, "node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", @@ -67039,6 +68227,100 @@ } } }, + "oas-kit-common": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", + "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, + "oas-linter": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", + "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", + "requires": { + "@exodus/schemasafe": "^1.0.0-rc.2", + "should": "^13.2.1", + "yaml": "^1.10.0" + } + }, + "oas-resolver": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", + "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", + "requires": { + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "dependencies": { + "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==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "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.0.0" + } + }, + "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==" + } + } + }, + "oas-schema-walker": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", + "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==" + }, + "oas-validator": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", + "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", + "requires": { + "call-me-maybe": "^1.0.1", + "oas-kit-common": "^1.0.8", + "oas-linter": "^3.2.2", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "reftools": "^1.1.9", + "should": "^13.2.1", + "yaml": "^1.10.0" + } + }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -67071,6 +68353,15 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -67223,6 +68514,52 @@ "is-wsl": "^2.2.0" } }, + "openapi-to-graphql": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/openapi-to-graphql/-/openapi-to-graphql-2.6.3.tgz", + "integrity": "sha512-LjUyDVS/oQx9Wd7aj+/j0kfQZ1dQMklDM1qpsCUrBGHv4sbY6280tfitmXBsEMQXfRR6yVA+24hRqxJNBDHZ2w==", + "requires": { + "cross-fetch": "^3.1.4", + "debug": "^4.2.0", + "deep-equal": "^2.0.5", + "form-data": "^4.0.0", + "form-urlencoded": "^6.0.4", + "graphql-scalars": "^1.10.0", + "graphql-subscriptions": "^1.1.0", + "graphql-upload": "^13.0.0", + "json-ptr": "^2.2.0", + "jsonpath-plus": "^6.0.1", + "jsonpointer": "^5.0.0", + "oas-validator": "^5.0.2", + "pluralize": "^8.0.0", + "swagger2openapi": "^7.0.2", + "tslib": "^2.3.0", + "url-join": "4.0.1", + "ws": "^7.5.3" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" + } + } + }, "opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", @@ -67919,6 +69256,11 @@ "semver-compare": "^1.0.0" } }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==" + }, "pnp-webpack-plugin": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", @@ -71166,6 +72508,11 @@ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" }, + "reftools": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", + "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==" + }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -72460,8 +73807,7 @@ "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "sha.js": { "version": "2.4.11", @@ -72528,6 +73874,54 @@ "dev": true, "optional": true }, + "should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "requires": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "requires": { + "should-type": "^1.4.0" + } + }, + "should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "requires": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==" + }, + "should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "requires": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -73691,6 +75085,16 @@ } } }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -73702,6 +75106,68 @@ } } }, + "swagger2openapi": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", + "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", + "requires": { + "call-me-maybe": "^1.0.1", + "node-fetch": "^2.6.1", + "node-fetch-h2": "^2.3.0", + "node-readfiles": "^0.2.0", + "oas-kit-common": "^1.0.8", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "oas-validator": "^5.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "dependencies": { + "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==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "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.0.0" + } + }, + "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==" + } + } + }, "swap-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", @@ -74432,8 +75898,7 @@ "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, "touch": { "version": "2.0.2", @@ -75166,6 +76631,11 @@ } } }, + "url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, "url-loader": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", @@ -76308,6 +77778,17 @@ "is-symbol": "^1.0.3" } }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -76441,9 +77922,9 @@ } }, "ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==" + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==" }, "x-default-browser": { "version": "0.4.0", diff --git a/console/package.json b/console/package.json index 6e3d3b2745c..eb83feb0326 100644 --- a/console/package.json +++ b/console/package.json @@ -118,6 +118,7 @@ "immer": "9.0.12", "inflection": "1.12.0", "isomorphic-fetch": "2.2.1", + "js-yaml": "^4.1.0", "jsonwebtoken": "8.5.1", "jwt-decode": "^3.0.0", "less": "3.11.1", @@ -128,7 +129,9 @@ "lodash.merge": "4.6.2", "lodash.pickby": "^4.6.0", "lodash.uniqueid": "^4.0.1", + "microfiber": "^1.3.1", "moment": "^2.26.0", + "openapi-to-graphql": "^2.6.3", "piping": "0.3.2", "prop-types": "15.7.2", "react": "16.13.1", @@ -213,6 +216,7 @@ "@types/isomorphic-fetch": "0.0.35", "@types/jest": "^26.0.22", "@types/jquery": "3.3.33", + "@types/js-yaml": "^4.0.5", "@types/jwt-decode": "2.2.1", "@types/lodash": "^4.14.159", "@types/lodash.debounce": "^4.0.7", diff --git a/console/src/components/Services/Actions/Add/Add.tsx b/console/src/components/Services/Actions/Add/Add.tsx index 754c90bb1a5..eec8e7a9689 100644 --- a/console/src/components/Services/Actions/Add/Add.tsx +++ b/console/src/components/Services/Actions/Add/Add.tsx @@ -44,6 +44,7 @@ import { ResponseTransformStateBody, } from '@/components/Common/ConfigureTransformation/stateDefaults'; import ConfigureTransformation from '@/components/Common/ConfigureTransformation/ConfigureTransformation'; +import { GeneratedAction, OasGeneratorModal } from '@/features/Actions'; import ActionEditor from '../Common/components/ActionEditor'; import { createAction } from '../ServerIO'; import { getActionDefinitionFromSdl } from '../../../../shared/utils/sdlUtils'; @@ -92,6 +93,8 @@ const AddAction: React.FC = ({ getActionResponseTransformDefaultState() ); + const createActionRef = React.useRef(null); + useEffect(() => { if (readOnlyMode) dispatch( @@ -239,6 +242,8 @@ const AddAction: React.FC = ({ const responseBodyOnChange = (responseBody: ResponseTransformStateBody) => { responseTransformDispatch(setResponseBody(responseBody)); }; + const [isActionGeneratorOpen, setIsActionGeneratorOpen] = + React.useState(false); // we send separate requests for the `url` preview and `body` preview, as in case of error, // we will not be able to resolve if the error is with url or body transform, with the current state of `test_webhook_transform` api @@ -345,6 +350,71 @@ const AddAction: React.FC = ({ } } + const onImportGeneratedAction = (generatedAction: GeneratedAction): void => { + const { + types, + action, + description, + method, + baseUrl, + path, + requestTransforms, + responseTransforms, + headers: actionHeaders, + sampleInput, + queryParams, + } = generatedAction; + typeDefinitionOnChange(types, null, null, null); + actionDefinitionOnChange(action, null, null, null); + commentOnChange({ + target: { value: description }, + } as React.ChangeEvent); + handlerOnChange(baseUrl); + if (requestTransforms) { + requestPayloadTransformOnChange(true); + requestBodyOnChange({ + action: 'transform', + template: requestTransforms, + }); + } else { + requestPayloadTransformOnChange(false); + } + toggleForwardClientHeaders(); + if (responseTransforms) { + responsePayloadTransformOnChange(true); + responseBodyOnChange({ + action: 'transform', + template: responseTransforms, + }); + } else { + responsePayloadTransformOnChange(false); + } + + transformDispatch(setRequestSampleInput(sampleInput)); + requestMethodOnChange(method); + requestUrlTransformOnChange(true); + requestUrlOnChange(path.replace(/\{([^}]+)\}/g, '{{$body.input.$1}}')); + requestQueryParamsOnChange( + queryParams.map(name => ({ + name, + value: `{{$body.input.${name}}}`, + })) + ); + setHeaders( + actionHeaders.map(name => ({ + name, + value: `{{$body.input.${name}}}`, + type: 'static', + })) + ); + + setTimeout(() => { + if (createActionRef.current) { + createActionRef.current.scrollIntoView(); + } + }, 0); + }; + return (
@@ -352,6 +422,13 @@ const AddAction: React.FC = ({

Add a new action

+ {isActionGeneratorOpen && ( + setIsActionGeneratorOpen(false)} + /> + )} + = ({ toggleForwardClientHeaders={toggleForwardClientHeaders} actionDefinitionOnChange={actionDefinitionOnChange} typeDefinitionOnChange={typeDefinitionOnChange} + onOpenActionGenerator={() => setIsActionGeneratorOpen(true)} /> = ({ responseBodyOnChange={responseBodyOnChange} /> -
+
, ast: Nullable> ) => void; + onOpenActionGenerator?: () => void; }; const ActionEditor: React.FC = ({ @@ -66,6 +74,7 @@ const ActionEditor: React.FC = ({ toggleForwardClientHeaders, actionDefinitionOnChange, typeDefinitionOnChange, + onOpenActionGenerator, }) => { const { sdl: typesDefinitionSdl, @@ -81,6 +90,10 @@ const ActionEditor: React.FC = ({ const [isTypesGeneratorOpen, setIsTypesGeneratorOpen] = React.useState(false); + const { enabled: isImportFromOASEnabled } = useIsFeatureFlagEnabled( + availableFeatureFlagIds.importActionFromOpenApiId + ); + return ( <> @@ -125,6 +138,19 @@ const ActionEditor: React.FC = ({ You can use the custom types already defined by you or define new types in the new types definition editor below.

+ {onOpenActionGenerator && + isProConsole(window.__env) && + (isImportFromOASEnabled ? ( +
+ +
+ ) : ( + + ))} = { + GET: 'green', + POST: 'blue', + PUT: 'yellow', + DELETE: 'red', + PATCH: 'purple', +}; +export const OasGeneratorForm = (props: { + setValues: (values?: GeneratedAction) => void; +}) => { + const { setValues } = props; + + const [operations, setOperations] = React.useState([]); + const [parsedOas, setParsedOas] = React.useState(null); + const [isOasTooBig, setIsOasTooBig] = React.useState(false); + const [selectedMethods, setSelectedMethods] = React.useState([]); + + const isUnMounted = useIsUnmounted(); + + const { watch, setValue, setError, clearErrors } = useFormContext(); + const oas = watch('oas'); + const operation = watch('operation'); + const search = watch('search'); + const url = watch('url'); + + const filteredOperations = React.useMemo(() => { + return operations.filter(op => { + const searchMatch = + !search || + op.operationId.toLowerCase().includes(search.toLowerCase()) || + op.path.toLowerCase().includes(search.toLowerCase()) || + op.method.toLowerCase().includes(search.toLowerCase()); + const methodMatch = + selectedMethods.length === 0 || + selectedMethods.includes(op.method.toUpperCase()); + return searchMatch && methodMatch; + }); + }, [operations, search, selectedMethods]); + + useEffect(() => { + (async () => { + if (parsedOas && operation) { + try { + const generatedAction = await generateAction(parsedOas, operation); + if (!isUnMounted()) { + setValues({ ...generatedAction, baseUrl: url }); + } + } catch (e) { + setError('operation', { + message: `Failed to generate action: ${(e as Error).message}`, + }); + trackCustomEvent( + { + location: 'Import OAS Modal', + action: 'generate', + object: 'errors', + }, + { + data: { + errors: (e as Error).message, + }, + } + ); + console.error(e); + } + } + })(); + }, [setValues, operation, operations, url, parsedOas, setError, isUnMounted]); + + useDebouncedEffect( + async () => { + let localParsedOas: Oas3 | undefined; + clearErrors(); + setOperations([]); + if (oas && oas?.trim() !== '') { + try { + localParsedOas = JSON.parse(oas) as Oas3; + } catch (e) { + try { + localParsedOas = YAML.load(oas) as Oas3; + } catch (e2) { + setError('oas', { + message: 'Invalid spec', + }); + } + } + } + try { + if (localParsedOas) { + if (!url && localParsedOas.servers?.[0].url) { + setValue('url', localParsedOas.servers?.[0].url); + } + const ops = await getOperations(localParsedOas); + setOperations(ops); + + // send number of operations and file length + + const size = oas?.length || 0; + const numberOfOperations = ops?.length || 0; + + trackCustomEvent( + { + location: 'Import OAS Modal', + action: 'change', + object: 'specification', + }, + { + data: { + size, + numberOfOperations: numberOfOperations.toString(), + }, + } + ); + } + } catch (e) { + setError('oas', { + message: `Invalid spec: ${(e as Error).message}`, + }); + } + + setParsedOas(localParsedOas ?? null); + }, + 400, + [oas, clearErrors, setError, setValue, url] + ); + + const handleFileUpload = (e: React.ChangeEvent) => { + const files = e.target.files; + if (files) { + const reader = new FileReader(); + reader.onload = loadEvent => { + if (loadEvent.target) { + // set isOasTooBig to true if the oas is larger than 512kb + setIsOasTooBig( + (loadEvent?.target?.result as string)?.length > 512 * 1024 + ); + setValue('oas', loadEvent.target.result); + } + }; + // set error + reader.onerror = () => { + setError('oas', { + message: 'Invalid spec', + }); + }; + + reader.readAsText(files[0]); + } + }; + + return ( +
+
+
+ +
+ +
+
+ + {isOasTooBig ? ( +
+ File is too big to show +
+ ) : ( +
+ +
+ )} +
+ {operations?.length > 0 ? ( +
+ + + + + } + /> + {/* add badges to filter based on http method */} +
+ {Object.keys(badgeColors).map(method => ( + { + if (selectedMethods.includes(method)) { + setSelectedMethods( + selectedMethods.filter(m => m !== method) + ); + } else { + setSelectedMethods([...selectedMethods, method]); + } + }} + data-testid={`badge-${method}`} + key={method} + color={ + selectedMethods.includes(method) + ? badgeColors[method] + : 'gray' + } + className="cursor-pointer" + > + {method} + + ))} +
+
+ + ({ + label: ( +
+ + {op.method.toUpperCase()} + + {op.path} +
+ ), + value: op.operationId, + })), + ]} + /> + {filteredOperations.length > 50 && ( +
+ {filteredOperations.length - 50} more endpoints... Use search to + filter them +
+ )} + {filteredOperations.length === 0 && ( +
+ No endpoints found. Try changing the search or the selected + method +
+ )} +
+ ) : null} +
+
+ ); +}; diff --git a/console/src/features/Actions/components/OASGeneratorModal/OASGeneratorModal.stories.tsx b/console/src/features/Actions/components/OASGeneratorModal/OASGeneratorModal.stories.tsx new file mode 100644 index 00000000000..e80d7d85d09 --- /dev/null +++ b/console/src/features/Actions/components/OASGeneratorModal/OASGeneratorModal.stories.tsx @@ -0,0 +1,67 @@ +import React from 'react'; +import { Story, Meta } from '@storybook/react'; +import { ReactQueryDecorator } from '@/storybook/decorators/react-query'; +import { handlers } from '@/mocks/metadata.mock'; +import { within, userEvent } from '@storybook/testing-library'; +import { waitFor } from '@testing-library/react'; +import { expect } from '@storybook/jest'; +import { OasGeneratorModal, OasGeneratorModalProps } from './OASGeneratorModal'; +import petstore from './petstore.json'; + +export default { + title: 'Features/Actions/OASGeneratorModal', + component: OasGeneratorModal, + decorators: [ReactQueryDecorator()], + parameters: { + msw: handlers({ delay: 500 }), + }, +} as Meta; + +export const Default: Story = args => { + return ; +}; + +Default.play = async ({ canvasElement }) => { + const canvas = within(canvasElement); + const input = canvas.getByTestId('file'); + userEvent.upload( + input, + new File([JSON.stringify(petstore)], 'test.json', { + type: 'application/json', + }) + ); + + // wait for searchbox to appear + const searchBox = await canvas.findByTestId('search'); + // count number of operations + expect(canvas.getAllByTestId(/^operation.*/)).toHaveLength(4); + // search operations with 'get' + userEvent.type(searchBox, 'GET'); + // count filtered number of operations + expect(canvas.getAllByTestId(/^operation.*/)).toHaveLength(2); + // clear search + userEvent.clear(searchBox); + // search not existing operation + userEvent.type(searchBox, 'not-existing'); + // look for 'No endpoints found' message + expect(canvas.getByText(/No endpoints found/)).toBeInTheDocument(); + // clear search + userEvent.clear(searchBox); + // click on 'POST' badge + userEvent.click(canvas.getByTestId('badge-POST')); + // count filtered number of operations + expect(canvas.getAllByTestId(/^operation.*/)).toHaveLength(1); + // Generate action button should be disabled + expect(canvas.getByText('Generate Action').parentElement).toBeDisabled(); + // click on the first operation + userEvent.click(canvas.getByTestId(/^operation.*/)); + // wait for generate action button to be enabled + await waitFor(() => { + return ( + canvas + .getByText('Generate Action') + .parentElement?.getAttribute('disabled') === '' + ); + }); + expect(canvas.getByText('Generate Action').parentElement).not.toBeDisabled(); +}; diff --git a/console/src/features/Actions/components/OASGeneratorModal/OASGeneratorModal.tsx b/console/src/features/Actions/components/OASGeneratorModal/OASGeneratorModal.tsx new file mode 100644 index 00000000000..ba94ca394e2 --- /dev/null +++ b/console/src/features/Actions/components/OASGeneratorModal/OASGeneratorModal.tsx @@ -0,0 +1,50 @@ +import React from 'react'; +import { Dialog } from '@/new-components/Dialog'; +import { Form } from '@/new-components/Form'; + +import { formSchema, OasGeneratorForm } from './OASGeneratorForm'; +import { GeneratedAction } from './types'; + +export interface OasGeneratorModalProps { + onImport: (output: GeneratedAction) => void; + onClose: () => void; +} + +export const OasGeneratorModal = (props: OasGeneratorModalProps) => { + const { onClose, onImport } = props; + const [values, setValues] = React.useState(); + + return ( + { + onImport(values); + onClose(); + } + : undefined + } + onClose={onClose} + callToDeny="Cancel" + callToAction="Generate Action" + disabled={!values} + /> + } + title="Import OpenAPI endpoint" + hasBackdrop + onClose={onClose} + > +
+

+ Generate your action from a Open API spec. +

+
{}}> + {() => } + +
+
+ ); +}; diff --git a/console/src/features/Actions/components/OASGeneratorModal/external.types.d.ts b/console/src/features/Actions/components/OASGeneratorModal/external.types.d.ts new file mode 100644 index 00000000000..3d9c1a1d0f1 --- /dev/null +++ b/console/src/features/Actions/components/OASGeneratorModal/external.types.d.ts @@ -0,0 +1 @@ +declare module 'microfiber'; diff --git a/console/src/features/Actions/components/OASGeneratorModal/index.ts b/console/src/features/Actions/components/OASGeneratorModal/index.ts new file mode 100644 index 00000000000..1cc1548f478 --- /dev/null +++ b/console/src/features/Actions/components/OASGeneratorModal/index.ts @@ -0,0 +1,2 @@ +export { OasGeneratorModal } from './OASGeneratorModal'; +export { GeneratedAction } from './types'; diff --git a/console/src/features/Actions/components/OASGeneratorModal/petstore.json b/console/src/features/Actions/components/OASGeneratorModal/petstore.json new file mode 100644 index 00000000000..9fd517b476b --- /dev/null +++ b/console/src/features/Actions/components/OASGeneratorModal/petstore.json @@ -0,0 +1,235 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "1.0.0", + "title": "Swagger Petstore", + "description": "A sample API that uses a petstore as an example to demonstrate features in the OpenAPI 3.0 specification", + "termsOfService": "http://swagger.io/terms/", + "contact": { + "name": "Swagger API Team", + "email": "apiteam@swagger.io", + "url": "http://swagger.io" + }, + "license": { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "servers": [ + { + "url": "http://petstore.swagger.io/api" + } + ], + "paths": { + "/pets": { + "get": { + "description": "Returns all pets from the system that the user has access to\nNam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia.\n\nSed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien.\n", + "operationId": "findPets", + "parameters": [ + { + "name": "tags", + "in": "query", + "description": "tags to filter by", + "required": false, + "style": "form", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "limit", + "in": "query", + "description": "maximum number of results to return", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "pet response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Pet" + } + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + }, + "post": { + "description": "Creates a new pet in the store. Duplicates are allowed", + "operationId": "addPet", + "requestBody": { + "description": "Pet to add to the store", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NewPet" + } + } + } + }, + "responses": { + "200": { + "description": "pet response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/pets/{id}": { + "get": { + "description": "Returns a user based on a single ID, if the user does not have access to the pet", + "operationId": "find pet by id", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of pet to fetch", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "pet response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + }, + "delete": { + "description": "deletes a single pet based on the ID supplied", + "operationId": "deletePet", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of pet to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "pet deleted" + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "Pet": { + "allOf": [ + { + "$ref": "#/components/schemas/NewPet" + }, + { + "type": "object", + "required": ["id"], + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + } + } + ] + }, + "NewPet": { + "type": "object", + "required": ["name"], + "properties": { + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "Error": { + "type": "object", + "required": ["code", "message"], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + } + } +} diff --git a/console/src/features/Actions/components/OASGeneratorModal/types.ts b/console/src/features/Actions/components/OASGeneratorModal/types.ts new file mode 100644 index 00000000000..5070d5a6826 --- /dev/null +++ b/console/src/features/Actions/components/OASGeneratorModal/types.ts @@ -0,0 +1,27 @@ +import { RequestTransformMethod } from '@/metadata/types'; +import { createGraphQLSchema } from 'openapi-to-graphql'; +import z from 'zod'; +import { formSchema } from './OASGeneratorForm'; + +export type SchemaType = z.infer; +export type GeneratedAction = { + operationId: string; + actionType: 'query' | 'mutation'; + types: string; + action: string; + description: string; + method: RequestTransformMethod; + baseUrl: string; + path: string; + requestTransforms: string; + responseTransforms: string; + sampleInput: string; + headers: string[]; + queryParams: string[]; +}; + +export type Result = Awaited>; +export type Operation = Result['data']['operations'][0]; + +export type DataDefinition = Operation['responseDefinition']; +export type SubDefinition = Operation['responseDefinition']['subDefinitions']; diff --git a/console/src/features/Actions/components/OASGeneratorModal/utils.test.ts b/console/src/features/Actions/components/OASGeneratorModal/utils.test.ts new file mode 100644 index 00000000000..551417b75c4 --- /dev/null +++ b/console/src/features/Actions/components/OASGeneratorModal/utils.test.ts @@ -0,0 +1,66 @@ +import { Oas3 } from 'openapi-to-graphql'; +import petStore from './petstore.json'; +import { getOperations, generateAction } from './utils'; + +describe('getOperations', () => { + it('should return an array of operations', async () => { + const operations = await getOperations(petStore as unknown as Oas3); + expect(operations).toHaveLength(4); + expect(operations[0].path).toBe('/pets'); + expect(operations[0].method).toBe('get'); + expect(operations[1].path).toBe('/pets'); + expect(operations[1].method).toBe('post'); + expect(operations[2].path).toBe('/pets/{id}'); + expect(operations[2].method).toBe('get'); + expect(operations[3].path).toBe('/pets/{id}'); + expect(operations[3].method).toBe('delete'); + }); + + it('throws an error if the OAS is invalid', async () => { + await expect(getOperations({} as unknown as Oas3)).rejects.toThrow(); + }); +}); + +describe('generateAction', () => { + it('should return an action', async () => { + const action = await generateAction( + petStore as unknown as Oas3, + 'findPets' + ); + expect(action).toEqual({ + operationId: 'findPets', + actionType: 'query', + action: + 'type Query {\n findPets(limit: Int, tags: [String]): [Pet]\n}\n', + types: + 'scalar BigInt\n\ntype Pet {\n id: BigInt!\n name: String!\n tag: String\n}\n', + description: + 'Returns all pets from the system that the user has access to\n' + + 'Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia.\n' + + '\n' + + 'Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien.\n', + method: 'GET', + baseUrl: 'http://petstore.swagger.io/api', + path: '/pets', + requestTransforms: '', + responseTransforms: '', + sampleInput: + '{\n' + + ' "action": {\n' + + ' "name": "findPets"\n' + + ' },\n' + + ' "input": {\n' + + ' "limit": 10\n' + + ' }\n' + + '}', + headers: [], + queryParams: ['tags', 'limit'], + }); + }); + + it('throws an error if the OAS is invalid', async () => { + await expect( + generateAction({} as unknown as Oas3, 'findPets') + ).rejects.toThrow(); + }); +}); diff --git a/console/src/features/Actions/components/OASGeneratorModal/utils.ts b/console/src/features/Actions/components/OASGeneratorModal/utils.ts new file mode 100644 index 00000000000..cdfd471ac3b --- /dev/null +++ b/console/src/features/Actions/components/OASGeneratorModal/utils.ts @@ -0,0 +1,447 @@ +import { RequestTransformMethod } from '@/metadata/types'; +import { + buildClientSchema, + getIntrospectionQuery, + graphqlSync, + printSchema, +} from 'graphql'; +import { + GraphQLOperationType, + Oas2, + Oas3, + createGraphQLSchema, +} from 'openapi-to-graphql'; +import { + ReferenceObject, + SchemaObject, +} from 'openapi-to-graphql/dist/types/oas3'; +import { Microfiber } from 'microfiber'; +import { formatSdl } from 'format-graphql'; +import { getActionRequestSampleInput } from '../../../../components/Services/Actions/Add/utils'; +import { + DataDefinition, + GeneratedAction, + Operation, + Result, + SubDefinition, +} from './types'; + +const parseRequestMethod = (method: string): RequestTransformMethod => { + switch (method.toLowerCase()) { + case 'get': + return 'GET'; + case 'post': + return 'POST'; + case 'put': + return 'PUT'; + case 'delete': + return 'DELETE'; + case 'patch': + return 'PATCH'; + default: + return 'GET'; + } +}; + +const lastOfArray = (arr: string[]): string => { + return arr[arr.length - 1]; +}; + +export const formatQuery = (query?: string): string => { + try { + return !query || query.trim() === '' ? '' : formatSdl(query); + } catch (e) { + return query ?? ''; + } +}; + +const lowerCaseFirstLetter = (str: string): string => { + return str ? str.charAt(0).toLowerCase() + str.slice(1) : ''; +}; + +interface Transform { + transform: Record; + needTransform: boolean; +} + +const createTransform = ( + definition: SubDefinition, + prefix: string, + inverse: boolean +): Transform => { + try { + if (Array.isArray(definition)) { + // union type not supported at the moment + return { transform: {}, needTransform: false }; + } + + if ( + definition && + 'preferredName' in definition && + typeof definition.preferredName === 'string' + ) { + const newPrefix = prefix.split(/\./)[prefix.split(/\./).length - 1]; + const { transform, needTransform } = createTransform( + definition.subDefinitions, + newPrefix, + inverse + ); + return { + transform: { + [`ARRAYSTART(${prefix})`]: true, + ...transform, + ARRAYEND: true, + }, + needTransform, + }; + } + + let needTransform = false; + const transform = Object.entries(definition).reduce((acc, curr) => { + const value = curr[1] as DataDefinition; + const keyFrom = inverse + ? lowerCaseFirstLetter(value.preferredName) + : curr[0]; + const keyTo = inverse + ? curr[0] + : lowerCaseFirstLetter(value.preferredName); + if (keyFrom !== keyTo) { + needTransform = true; + } + if ( + value.schema.type === 'object' || + (value.schema.type === 'array' && + 'subDefinitions' in value.subDefinitions && + value.subDefinitions.subDefinitions) + ) { + const { + transform: childrenTransform, + needTransform: childrenNeedTransform, + } = createTransform( + value.subDefinitions, + `${prefix}?.${keyTo}`, + inverse + ); + needTransform = needTransform || childrenNeedTransform; + return { + ...acc, + [keyFrom]: childrenTransform, + }; + } + return { + ...acc, + [keyFrom]: `{{${prefix}?.${keyTo}}}`, + }; + }, {}); + return { + transform, + needTransform, + }; + } catch (e) { + return { transform: {}, needTransform: false }; + } +}; + +const createSampleInput = ( + definition: SubDefinition +): Record | Record[] => { + try { + if (Array.isArray(definition)) { + // union type not supported at the moment + return {}; + } + + if ( + 'preferredName' in definition && + typeof definition.preferredName === 'string' + ) { + return [ + { + ...createSampleInput(definition.subDefinitions), + }, + ]; + } + + return Object.entries(definition).reduce((acc, curr) => { + const value = curr[1] as DataDefinition; + const keyFrom = lowerCaseFirstLetter(value.preferredName); + const keyTo = curr[0]; + + if ( + value.schema.type === 'object' || + (value.schema.type === 'array' && + 'subDefinitions' in value.subDefinitions && + value.subDefinitions.subDefinitions) + ) { + return { + ...acc, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [keyFrom]: createSampleInput(value.subDefinitions), + }; + } + return { + ...acc, + [keyFrom]: `${keyTo}`, + }; + }, {}); + } catch (e) { + return {}; + } +}; + +/** + * transform the generated JSON into a valid kriti template + */ +const postProcessTransform = (output: Transform): string | null => { + const { transform, needTransform } = output; + if (!needTransform) { + return null; + } + let string = JSON.stringify(transform, null, 2) + // removing quotes from values + .replace(/\"(.*)\": \"(.*)\"/g, '"$1": $2') + .replace(/\\"/g, '"') + .replace(/\\n/g, '\n\t') + // processing arrays + .replace( + /\"(.*?)\": \{\n\s*\"ARRAYSTART\((.*)\)\": true,/g, + '"$1": {{if inverse(empty($2))}} {{ range _, $1 := $2}} {' + ) + .replace( + /,(\n\s*?)\"ARRAYEND\": true\n\s*?}/g, + '$1} {{end}} {{else}} null {{end}}' + ); + + // processing root array + if (string.match(/\{\n\s*\"ARRAYSTART\((.*)\)\": true,/g)) { + string = string + .replace( + /\{\n\s*\"ARRAYSTART\((.*)\)\": true,/g, + '{{if inverse(empty($_body))}} {{ range _, item := $_body}} {' + ) + .replace(/\$body/g, 'item') + .replace(/\$_body/g, '$body'); + } + return string; +}; + +export const createRequestTransform = (operation: Operation): string => { + let inputName = ''; + const inputObjectType = operation.payloadDefinition?.graphQLInputObjectType; + if (inputObjectType && 'name' in inputObjectType) { + inputName = lowerCaseFirstLetter(inputObjectType.name); + } + if (operation.payloadDefinition?.subDefinitions) { + const defaultRequestTransform = ['POST', 'PUT', 'PATCH'].includes( + operation.method.toUpperCase() + ) + ? `{{$body.input.${inputName}}}` + : ''; + return ( + postProcessTransform( + createTransform( + operation.payloadDefinition.subDefinitions, + `$body.input.${inputName}`, + false + ) + ) ?? defaultRequestTransform + ); + } + return ''; +}; +export const createResponseTransform = (operation: Operation): string => { + if (operation.responseDefinition?.targetGraphQLType === 'string') { + return '{{$body}}'; + } + if (operation.responseDefinition?.subDefinitions) { + return ( + postProcessTransform( + createTransform( + operation.responseDefinition.subDefinitions, + '$body', + true + ) + ) ?? '' + ); + } + return ''; +}; + +export const translateAction = ( + graphqlSchema: Result, + operation: Operation +): GeneratedAction => { + const { schema } = graphqlSchema; + + const introspectionQuery = graphqlSync({ + schema, + source: getIntrospectionQuery(), + }); + + if (introspectionQuery.errors) { + const joinedMessage = introspectionQuery.errors + .map(e => e.message) + .join('\n'); + throw new Error(joinedMessage); + } + + const microfiber = new Microfiber(introspectionQuery, { + cleanupSchemaImmediately: false, + }); + const queryNamesToRemove = ( + microfiber.getQueryType().fields as { name: string; description: string }[] + ) + ?.filter( + field => + !field.description + .trim() + .endsWith(lastOfArray(operation.description.trim().split('\n\n'))) + ) + ?.map(field => field.name); + + const mutationNamesToRemove = ( + microfiber.getMutationType().fields as { + name: string; + description: string; + }[] + ) + ?.filter( + field => + !field.description + .trim() + .endsWith(lastOfArray(operation.description.trim().split('\n\n'))) + ) + ?.map(field => field.name); + + queryNamesToRemove?.forEach(query => { + microfiber.removeQuery({ name: query, cleanup: false }); + }); + + mutationNamesToRemove?.forEach(mutation => { + microfiber.removeMutation({ name: mutation, cleanup: false }); + }); + + microfiber.cleanSchema(); + + const newSchema = buildClientSchema(microfiber.getResponse().data); + + const sdl = printSchema(newSchema); + + const sdlWithoutComments = sdl.replace(/"""[^]*?"""/g, ''); + // extratct type query from sdl; + const typeQuery = sdlWithoutComments.match(/type Query {[^]*?}/g)?.[0]; + const typeMutation = sdlWithoutComments.match(/type Mutation {[^]*?}/g)?.[0]; + const action = formatQuery(typeQuery || typeMutation) ?? ''; + + // remove type query and type mutation from sdl + const sdlWithoutTypeQuery = formatQuery( + sdlWithoutComments + .replace(/"""[^]*?"""/g, '') + .replace(/type Query {[^]*?}/g, '') + .replace(/type Mutation {[^]*?}/g, '') + .replace('type Query', '') + .replace('type Mutation', '') + ); + + let sampleInput = JSON.parse( + getActionRequestSampleInput(action, sdlWithoutTypeQuery) + ); + + if (operation.payloadDefinition?.subDefinitions) { + sampleInput = { + ...sampleInput, + input: Object.keys(sampleInput.input).reduce((acc, curr) => { + return { + ...acc, + [curr]: + curr.toLowerCase() === + operation.payloadDefinition?.graphQLTypeName.toLowerCase() + ? createSampleInput( + operation.payloadDefinition?.subDefinitions ?? {} + ) + : sampleInput.input[curr], + }; + }, {}), + }; + } + + const headers = + operation.parameters + ?.filter(param => param.in === 'header') + ?.map(param => param.name) || []; + + const queryParams = + operation.parameters + ?.filter(param => param.in === 'query') + ?.map(param => param.name) || []; + return { + operationId: operation.operationId, + actionType: + operation.operationType === GraphQLOperationType.Query + ? 'query' + : 'mutation', + action, + types: sdlWithoutTypeQuery ?? '', + description: operation?.operation?.description ?? '', + method: parseRequestMethod(operation?.method), + baseUrl: graphqlSchema.data?.oass?.[0]?.servers?.[0]?.url ?? '', + path: operation.path, + requestTransforms: createRequestTransform(operation) ?? '', + responseTransforms: createResponseTransform(operation) ?? '', + sampleInput: JSON.stringify(sampleInput, null, 2), + headers, + queryParams, + }; +}; + +const applyWorkarounds = (properties: (SchemaObject | ReferenceObject)[]) => { + // eslint-disable-next-line no-restricted-syntax + for (const property of Object.values(properties ?? {})) { + if (!('$ref' in property)) { + // fix boolean enum issue + if (property.type === 'boolean') { + console.log(property); + delete property.enum; + } + // fix empty type issue + if ( + property.type === 'object' && + JSON.stringify(property.properties) === '{}' + ) { + property.type = 'string'; + delete property.properties; + } + if (property.properties) { + applyWorkarounds(Object.values(property.properties)); + } + } + } +}; + +const parseOas = async (oas: Oas2 | Oas3): Promise => { + const oasCopy = JSON.parse(JSON.stringify(oas)) as Oas3; + if (oasCopy.components?.schemas) { + applyWorkarounds(Object.values(oasCopy.components?.schemas)); + } + + return createGraphQLSchema(oasCopy, { + fillEmptyResponses: true, + operationIdFieldNames: true, + simpleEnumValues: true, + viewer: false, + }); +}; + +export const generateAction = async ( + oas: Oas2 | Oas3, + operationId: string +): Promise => { + const graphqlSchema = await parseOas(oas); + const operation = graphqlSchema.data.operations[operationId]; + return translateAction(graphqlSchema, operation); +}; + +export const getOperations = async (oas: Oas2 | Oas3): Promise => { + const graphqlSchema = await parseOas(oas); + return Object.values(graphqlSchema.data.operations); +}; diff --git a/console/src/features/Actions/index.ts b/console/src/features/Actions/index.ts new file mode 100644 index 00000000000..941b53263fa --- /dev/null +++ b/console/src/features/Actions/index.ts @@ -0,0 +1 @@ +export * from './components/OASGeneratorModal/'; diff --git a/console/src/features/FeatureFlags/availableFeatureFlags.ts b/console/src/features/FeatureFlags/availableFeatureFlags.ts index 37c7324d9cc..223715c8cde 100644 --- a/console/src/features/FeatureFlags/availableFeatureFlags.ts +++ b/console/src/features/FeatureFlags/availableFeatureFlags.ts @@ -1,13 +1,25 @@ +import { isProConsole } from '@/utils'; import { FeatureFlagDefinition } from './types'; const relationshipTabTablesId = '0bea35ff-d3e9-45e9-af1b-59923bf82fa9'; const gdcId = '88436c32-2798-11ed-a261-0242ac120002'; -const allowListId = '3a042e0c-e0d4-46b6-8c87-01f2ed9f63b0'; +const importActionFromOpenApiId = '12e5aaf4-c794-4b8f-b762-5fda0bff946a'; export const availableFeatureFlagIds = { relationshipTabTablesId, gdcId, - allowListId, + importActionFromOpenApiId, +}; + +const importActionFromOpenApi: FeatureFlagDefinition = { + id: importActionFromOpenApiId, + title: 'Import Action from OpenAPI', + description: + 'Try out the very experimental feature to generate one action from an OpenAPI endpoint', + section: 'data', + status: 'experimental', + defaultValue: false, + discussionUrl: '', }; export const availableFeatureFlags: FeatureFlagDefinition[] = [ @@ -31,4 +43,6 @@ export const availableFeatureFlags: FeatureFlagDefinition[] = [ defaultValue: false, discussionUrl: '', }, + // eslint-disable-next-line no-underscore-dangle + ...(isProConsole(window.__env) ? [importActionFromOpenApi] : []), ]; diff --git a/console/src/new-components/Badge/Badge.tsx b/console/src/new-components/Badge/Badge.tsx index 21881eb2646..498626fc46a 100644 --- a/console/src/new-components/Badge/Badge.tsx +++ b/console/src/new-components/Badge/Badge.tsx @@ -1,7 +1,14 @@ import React from 'react'; import clsx from 'clsx'; -type BadgeColor = 'green' | 'red' | 'yellow' | 'indigo' | 'gray'; +export type BadgeColor = + | 'green' + | 'red' + | 'yellow' + | 'indigo' + | 'gray' + | 'blue' + | 'purple'; interface BadgeProps extends React.ComponentProps<'span'> { /** * The color of the basge @@ -15,6 +22,8 @@ const badgeClassnames: Record = { yellow: 'bg-yellow-100 text-yellow-800', gray: 'bg-gray-300 text-gray-800', indigo: 'bg-indigo-100 text-indigo-800', + blue: 'bg-blue-100 text-blue-800', + purple: 'bg-purple-100 text-purple-800', }; export const Badge: React.FC> = ({ diff --git a/console/src/new-components/Dialog/Dialog.tsx b/console/src/new-components/Dialog/Dialog.tsx index 8fdc6f08942..dc031aaac37 100644 --- a/console/src/new-components/Dialog/Dialog.tsx +++ b/console/src/new-components/Dialog/Dialog.tsx @@ -16,6 +16,7 @@ export type FooterProps = { className?: string; onSubmitAnalyticsName?: string; onCancelAnalyticsName?: string; + disabled?: boolean; }; const Footer: React.VFC = ({ @@ -28,6 +29,7 @@ const Footer: React.VFC = ({ className, onSubmitAnalyticsName, onCancelAnalyticsName, + disabled = false, }) => { const callToActionProps = onSubmit ? { onClick: onSubmit } : {}; @@ -54,6 +56,7 @@ const Footer: React.VFC = ({
)}