From 89c55a2dc1d0682e505c17c2021281cdd03cd4fc Mon Sep 17 00:00:00 2001 From: Mbaye THIAM Date: Tue, 26 Mar 2024 15:01:11 +0100 Subject: [PATCH 1/9] =?UTF-8?q?=E2=9C=A8=20publish=20spl=20library?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/npm-publish.yml | 37 + package-lock.json | 834 +++++++++++------- package.json | 8 +- packages/graphql-mesh/.meshrc.ts | 4 +- packages/graphql-mesh/package.json | 2 +- packages/graphql-mesh/transforms/index.ts | 62 -- packages/spl-ts/package.json | 12 +- packages/spl-ts/src/index.ts | 89 ++ packages/spl-ts/src/main/index.ts | 8 +- .../src/main/predicate/SPLPredicateFilter.ts | 2 +- .../BooleanListBooleansOperations.ts | 0 .../{ => operations}/BooleanOperations.ts | 0 .../{ => operations}/DateOperations.ts | 0 .../{ => operations}/NumberOperations.ts | 0 .../{ => operations}/PredicateOperation.ts | 0 .../StringListStringOperations.ts | 0 .../{ => operations}/StringOperations.ts | 0 .../src/main/predicate/operations/index.ts | 17 + .../spl-ts/src/main/sorter/SPLListFilterer.ts | 23 +- .../spl-ts/src/test/SPLListFilter.test.ts | 181 ++-- .../src/test/SPLPredicateFilter.test.ts | 14 +- packages/spl-ts/vite.config.ts | 2 +- .../@graphql-tools+batch-execute+9.0.2.patch | 0 .../@graphql-tools+executor+1.2.0.patch | 0 .../patches => patches}/graphql+16.8.1.patch | 0 25 files changed, 766 insertions(+), 529 deletions(-) create mode 100644 .github/workflows/npm-publish.yml delete mode 100644 packages/graphql-mesh/transforms/index.ts create mode 100644 packages/spl-ts/src/index.ts rename packages/spl-ts/src/main/predicate/{ => operations}/BooleanListBooleansOperations.ts (100%) rename packages/spl-ts/src/main/predicate/{ => operations}/BooleanOperations.ts (100%) rename packages/spl-ts/src/main/predicate/{ => operations}/DateOperations.ts (100%) rename packages/spl-ts/src/main/predicate/{ => operations}/NumberOperations.ts (100%) rename packages/spl-ts/src/main/predicate/{ => operations}/PredicateOperation.ts (100%) rename packages/spl-ts/src/main/predicate/{ => operations}/StringListStringOperations.ts (100%) rename packages/spl-ts/src/main/predicate/{ => operations}/StringOperations.ts (100%) create mode 100644 packages/spl-ts/src/main/predicate/operations/index.ts rename {packages/graphql-mesh/patches => patches}/@graphql-tools+batch-execute+9.0.2.patch (100%) rename {packages/graphql-mesh/patches => patches}/@graphql-tools+executor+1.2.0.patch (100%) rename {packages/graphql-mesh/patches => patches}/graphql+16.8.1.patch (100%) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 0000000..8fb0d25 --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,37 @@ +name: npm publish + +on: + # release: + # types: [published] + push: + tags: + - '*' + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + registry-url: https://registry.npmjs.org/ + + - name: Install dependencies + run: npm install + + - name: Build library + run: npm run build -w spl-ts + + - name: Determine version from tag + id: determine_version + run: echo "::set-output name=VERSION::${GITHUB_REF#refs/tags/spl-ts@}" + + - name: Publish to npm + # run: npm version "${{ steps.determine_version.outputs.VERSION }}" -w spl-ts && npm publish -w spl-ts + run: echo "Published version ${{ steps.determine_version.outputs.VERSION }}" + env: + NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }} diff --git a/package-lock.json b/package-lock.json index 9c40320..d154937 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,6 +6,9 @@ "": { "name": "graphql-mesh", "hasInstallScript": true, + "devDependencies": { + "patch-package": "^8.0.0" + }, "engines": { "node": "18" }, @@ -451,10 +454,6 @@ "node": ">=6.9.0" } }, - "node_modules/@bytel/spl-ts": { - "resolved": "packages/spl-ts", - "link": true - }, "node_modules/@esbuild/darwin-arm64": { "version": "0.19.12", "cpu": [ @@ -470,6 +469,267 @@ "node": ">=12" } }, + "node_modules/@graphql-inspector/core": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@graphql-inspector/core/-/core-5.0.2.tgz", + "integrity": "sha512-pXHPCggwLmgi5NACPPV4qyf2xW/sQONnu6ZqCAid3k/S2APmVYN4Z3OvxvLA12NFhzby5Sz5K4fRsId43cK8ww==", + "dependencies": { + "dependency-graph": "0.11.0", + "object-inspect": "1.12.3", + "tslib": "2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-mesh/cache-localforage": { + "version": "0.97.0", + "resolved": "https://registry.npmjs.org/@graphql-mesh/cache-localforage/-/cache-localforage-0.97.0.tgz", + "integrity": "sha512-+rnbRnMt0oc2YYYIIN/oWZtsWh0+dTbr4CVXLeWJJkqtAPkzQc3tsCxagcZR8clFl5XS3htIevrl1s4l6K4wvg==", + "peer": true, + "dependencies": { + "localforage": "1.10.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/types": "^0.97.0", + "@graphql-mesh/utils": "^0.97.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/cross-helpers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@graphql-mesh/cross-helpers/-/cross-helpers-0.4.1.tgz", + "integrity": "sha512-NkLzFuY72tmmKO7gKWoDzoYcRVf3lLoCdlw30fSNKFKEWDAV3Tyh4v0fPvU3SEmoTJio7v0TIYZqtVt3dBBDFw==", + "dependencies": { + "path-browserify": "1.0.1" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*" + } + }, + "node_modules/@graphql-mesh/store": { + "version": "0.97.0", + "resolved": "https://registry.npmjs.org/@graphql-mesh/store/-/store-0.97.0.tgz", + "integrity": "sha512-w14e6f9xqMHygNWipsfm5o6s+92w9N6WhEgag43lE+UCub/P4KqCnRRJT0dMQIASEmZbX7fnYghycekYz7UZ1A==", + "peer": true, + "dependencies": { + "@graphql-inspector/core": "5.0.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/types": "^0.97.0", + "@graphql-mesh/utils": "^0.97.0", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/string-interpolation": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@graphql-mesh/string-interpolation/-/string-interpolation-0.5.3.tgz", + "integrity": "sha512-/R4kj3M1uqUie/7RZ58zgRrT8RBrDsCCR6ii00s62DbLsl+jZYOZFyTqHGsFbP7L7aHnl0fo1dwhEJIs+rjCLg==", + "dependencies": { + "dayjs": "1.11.10", + "json-pointer": "0.6.2", + "lodash.get": "4.4.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/types": { + "version": "0.97.0", + "resolved": "https://registry.npmjs.org/@graphql-mesh/types/-/types-0.97.0.tgz", + "integrity": "sha512-7u/I4NXModk3OHlOMxaczIK47gq/J2S/oLUCOADp5AVmQqXqsJ29TWQhKjG51yl7M44lic1TWTEDvx/HD2F/DQ==", + "peer": true, + "dependencies": { + "@graphql-tools/batch-delegate": "^9.0.0", + "@graphql-tools/delegate": "^10.0.0", + "@graphql-typed-document-node/core": "^3.2.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/store": "^0.97.0", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/utils": { + "version": "0.97.0", + "resolved": "https://registry.npmjs.org/@graphql-mesh/utils/-/utils-0.97.0.tgz", + "integrity": "sha512-oS4QXrgpwW1Md4IyBkmosdWW9PUM3xWkKQClUgi+x74qoczpb3AZpv/l/bxt3ntjlCCDejRNPxgBYMbx7fLyJA==", + "peer": true, + "dependencies": { + "@graphql-mesh/string-interpolation": "^0.5.3", + "@graphql-tools/delegate": "^10.0.0", + "@whatwg-node/fetch": "^0.9.13", + "dset": "^3.1.2", + "js-yaml": "^4.1.0", + "lodash.get": "^4.4.2", + "lodash.topath": "^4.5.2", + "tiny-lru": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/types": "^0.97.0", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-tools/batch-delegate": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-delegate/-/batch-delegate-9.0.1.tgz", + "integrity": "sha512-a5DWcrjPLvLCT1PvDetWfwxWHAxupGW9xDesMJOcM7NvBktBWMDheD0qHHvEBLmCL4dimWpvilmQaowQx7oJJw==", + "dependencies": { + "@graphql-tools/delegate": "^10.0.4", + "@graphql-tools/utils": "^10.0.13", + "dataloader": "2.2.2", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/batch-execute": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.4.tgz", + "integrity": "sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w==", + "dependencies": { + "@graphql-tools/utils": "^10.0.13", + "dataloader": "^2.2.2", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/delegate": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.4.tgz", + "integrity": "sha512-WswZRbQZMh/ebhc8zSomK9DIh6Pd5KbuiMsyiKkKz37TWTrlCOe+4C/fyrBFez30ksq6oFyCeSKMwfrCbeGo0Q==", + "dependencies": { + "@graphql-tools/batch-execute": "^9.0.4", + "@graphql-tools/executor": "^1.2.1", + "@graphql-tools/schema": "^10.0.3", + "@graphql-tools/utils": "^10.0.13", + "dataloader": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.1.tgz", + "integrity": "sha512-BP5UI1etbNOXmTSt7q4NL1+zsURFgh2pG+Hyt9K/xO0LlsfbSx59L5dHLerqZP7Js0xI6GYqrUQ4m29rUwUHJg==", + "dependencies": { + "@graphql-tools/utils": "^10.0.13", + "@graphql-typed-document-node/core": "3.2.0", + "@repeaterjs/repeater": "^3.0.4", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/merge": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.3.tgz", + "integrity": "sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==", + "dependencies": { + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.3.tgz", + "integrity": "sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==", + "dependencies": { + "@graphql-tools/merge": "^9.0.3", + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/utils": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.1.0.tgz", + "integrity": "sha512-wLPqhgeZ9BZJPRoaQbsDN/CtJDPd/L4qmmtPkjI3NuYJ39x+Eqz1Sh34EAGMuDh+xlOHqBwHczkZUpoK9tvzjw==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "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 || ^17.0.0" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "dev": true, @@ -519,6 +779,11 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@kamilkisiela/fast-url-parser": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz", + "integrity": "sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==" + }, "node_modules/@microsoft/api-extractor": { "version": "7.39.0", "dev": true, @@ -579,6 +844,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/@repeaterjs/repeater": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", + "integrity": "sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==" + }, "node_modules/@rollup/pluginutils": { "version": "5.1.0", "dev": true, @@ -899,6 +1169,41 @@ "dev": true, "license": "MIT" }, + "node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/fetch": { + "version": "0.9.16", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.16.tgz", + "integrity": "sha512-mqasZiUNquRe3ea9+aCAuo81BR6vq5opUKprPilIHTnrg8a21Z1T1OrI+KiMFX8OmwO5HUJe/vro47lpj2JPWQ==", + "dependencies": { + "@whatwg-node/node-fetch": "^0.5.5", + "urlpattern-polyfill": "^10.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/node-fetch": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.6.tgz", + "integrity": "sha512-cmAsGMHoI0S3AHi3CmD3ma1Q234ZI2JNmXyDyM9rLtbXejBKxU3ZWdhS+mzRIAyUxZCMGlFW1tHmROv0MDdxpw==", + "dependencies": { + "@kamilkisiela/fast-url-parser": "^1.1.4", + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "dev": true, @@ -1052,6 +1357,17 @@ "node-int64": "^0.4.0" } }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, "node_modules/cac": { "version": "6.7.14", "dev": true, @@ -1217,6 +1533,17 @@ "version": "2.0.0", "license": "MIT" }, + "node_modules/cross-inspect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", + "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "license": "MIT", @@ -1229,6 +1556,16 @@ "node": ">= 8" } }, + "node_modules/dataloader": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, "node_modules/de-indent": { "version": "1.0.2", "dev": true, @@ -1279,6 +1616,14 @@ "node": ">= 0.4" } }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "dev": true, @@ -1287,6 +1632,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/dset": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", + "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", + "engines": { + "node": ">=4" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.651", "license": "ISC" @@ -1384,6 +1737,11 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "license": "MIT" @@ -1392,6 +1750,14 @@ "version": "2.1.0", "license": "MIT" }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, "node_modules/fb-watchman": { "version": "2.0.2", "license": "Apache-2.0", @@ -1428,6 +1794,11 @@ "micromatch": "^4.0.2" } }, + "node_modules/foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==" + }, "node_modules/fs-extra": { "version": "9.1.0", "dev": true, @@ -1552,6 +1923,14 @@ "devOptional": true, "license": "ISC" }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, "node_modules/graphql-mesh": { "resolved": "packages/graphql-mesh", "link": true @@ -1620,6 +1999,11 @@ "node": ">=16.17.0" } }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, "node_modules/import-lazy": { "version": "4.0.0", "dev": true, @@ -1729,6 +2113,22 @@ "version": "4.0.0", "license": "MIT" }, + "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==", + "dependencies": { + "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/jsesc": { "version": "2.5.2", "license": "MIT", @@ -1743,6 +2143,14 @@ "version": "2.3.1", "license": "MIT" }, + "node_modules/json-pointer": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", + "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", + "dependencies": { + "foreach": "^2.0.4" + } + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "dev": true, @@ -1812,6 +2220,14 @@ "dev": true, "license": "MIT" }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "license": "MIT" @@ -1831,6 +2247,14 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "dependencies": { + "lie": "3.1.1" + } + }, "node_modules/locate-path": { "version": "5.0.0", "license": "MIT", @@ -1853,6 +2277,11 @@ "version": "4.5.0", "license": "MIT" }, + "node_modules/lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==" + }, "node_modules/loupe": { "version": "2.3.7", "dev": true, @@ -1998,6 +2427,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "1.1.1", "dev": true, @@ -2423,6 +2860,10 @@ "node": ">=0.10.0" } }, + "node_modules/spl-ts": { + "resolved": "packages/spl-ts", + "link": true + }, "node_modules/sprintf-js": { "version": "1.0.3", "dev": true, @@ -2438,6 +2879,14 @@ "dev": true, "license": "MIT" }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/string-argv": { "version": "0.3.2", "dev": true, @@ -2528,6 +2977,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tiny-lru": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.2.5.tgz", + "integrity": "sha512-JpqM0K33lG6iQGKiigcwuURAKZlq6rHXfrgeL4/I8/REoyJTGU+tEMszvT/oTRVHG2OiylhGDjqPp1jWMlr3bw==", + "engines": { + "node": ">=12" + } + }, "node_modules/tinybench": { "version": "2.6.0", "dev": true, @@ -2652,6 +3109,11 @@ "punycode": "^2.1.0" } }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==" + }, "node_modules/validator": { "version": "13.11.0", "dev": true, @@ -2660,6 +3122,14 @@ "node": ">= 0.10" } }, + "node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "engines": { + "node": ">=12" + } + }, "node_modules/vite": { "version": "5.1.3", "dev": true, @@ -2971,7 +3441,6 @@ "packages/graphql-mesh": { "hasInstallScript": true, "dependencies": { - "@bytel/spl-ts": "*", "@graphql-mesh/cache-localforage": "^0.96.2", "@graphql-mesh/cli": "^0.88.4", "@graphql-mesh/graphql": "^0.96.2", @@ -2984,7 +3453,8 @@ "@graphql-tools/schema": "^10.0.2", "@graphql-tools/utils": "^10.0.12", "glob": "^10.3.10", - "graphql": "^16.8.1" + "graphql": "^16.8.1", + "spl-ts": "*" }, "devDependencies": { "@graphql-mesh/types": "^0.96.3", @@ -3988,21 +4458,6 @@ "version": "2.5.3", "license": "0BSD" }, - "packages/graphql-mesh/node_modules/@graphql-inspector/core": { - "version": "5.0.2", - "license": "MIT", - "dependencies": { - "dependency-graph": "0.11.0", - "object-inspect": "1.12.3", - "tslib": "2.6.2" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, "packages/graphql-mesh/node_modules/@graphql-mesh/cache-localforage": { "version": "0.96.3", "license": "MIT", @@ -4103,20 +4558,6 @@ "tslib": "^2.4.0" } }, - "packages/graphql-mesh/node_modules/@graphql-mesh/cross-helpers": { - "version": "0.4.1", - "license": "MIT", - "dependencies": { - "path-browserify": "1.0.1" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "@graphql-tools/utils": "^9.2.1 || ^10.0.0", - "graphql": "*" - } - }, "packages/graphql-mesh/node_modules/@graphql-mesh/graphql": { "version": "0.96.3", "license": "MIT", @@ -4242,36 +4683,20 @@ "tslib": "^2.4.0" } }, - "packages/graphql-mesh/node_modules/@graphql-mesh/store": { - "version": "0.96.3", - "license": "MIT", - "dependencies": { - "@graphql-inspector/core": "5.0.2" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "@graphql-mesh/cross-helpers": "^0.4.1", - "@graphql-mesh/types": "^0.96.3", - "@graphql-mesh/utils": "^0.96.3", - "@graphql-tools/utils": "^9.2.1 || ^10.0.0", - "graphql": "*", - "tslib": "^2.4.0" - } - }, - "packages/graphql-mesh/node_modules/@graphql-mesh/string-interpolation": { - "version": "0.5.3", + "packages/graphql-mesh/node_modules/@graphql-mesh/store": { + "version": "0.96.3", "license": "MIT", "dependencies": { - "dayjs": "1.11.10", - "json-pointer": "0.6.2", - "lodash.get": "4.4.2" + "@graphql-inspector/core": "5.0.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", "graphql": "*", "tslib": "^2.4.0" } @@ -4395,39 +4820,6 @@ "tslib": "^2.4.0" } }, - "packages/graphql-mesh/node_modules/@graphql-tools/batch-delegate": { - "version": "9.0.0", - "license": "MIT", - "dependencies": { - "@graphql-tools/delegate": "^10.0.0", - "@graphql-tools/utils": "^10.0.0", - "dataloader": "2.2.2", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "packages/graphql-mesh/node_modules/@graphql-tools/batch-execute": { - "version": "9.0.2", - "license": "MIT", - "dependencies": { - "@graphql-tools/utils": "^10.0.5", - "dataloader": "^2.2.2", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, "packages/graphql-mesh/node_modules/@graphql-tools/code-file-loader": { "version": "8.1.0", "license": "MIT", @@ -4445,41 +4837,6 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "packages/graphql-mesh/node_modules/@graphql-tools/delegate": { - "version": "10.0.3", - "license": "MIT", - "dependencies": { - "@graphql-tools/batch-execute": "^9.0.1", - "@graphql-tools/executor": "^1.0.0", - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.5", - "dataloader": "^2.2.2", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "packages/graphql-mesh/node_modules/@graphql-tools/executor": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "@graphql-tools/utils": "^10.0.0", - "@graphql-typed-document-node/core": "3.2.0", - "@repeaterjs/repeater": "^3.0.4", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, "packages/graphql-mesh/node_modules/@graphql-tools/executor-graphql-ws": { "version": "1.1.0", "license": "MIT", @@ -4625,20 +4982,6 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "packages/graphql-mesh/node_modules/@graphql-tools/merge": { - "version": "9.0.1", - "license": "MIT", - "dependencies": { - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, "packages/graphql-mesh/node_modules/@graphql-tools/optimize": { "version": "2.0.0", "license": "MIT", @@ -4744,22 +5087,6 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "packages/graphql-mesh/node_modules/@graphql-tools/utils": { - "version": "10.0.13", - "license": "MIT", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-inspect": "1.0.0", - "dset": "^3.1.2", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, "packages/graphql-mesh/node_modules/@graphql-tools/wrap": { "version": "10.0.1", "license": "MIT", @@ -4777,13 +5104,6 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "packages/graphql-mesh/node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "license": "MIT", - "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 || ^17.0.0" - } - }, "packages/graphql-mesh/node_modules/@graphql-yoga/logger": { "version": "2.0.0", "license": "MIT", @@ -4916,10 +5236,6 @@ "version": "1.7.0", "license": "Apache-2.0" }, - "packages/graphql-mesh/node_modules/@kamilkisiela/fast-url-parser": { - "version": "1.1.4", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", "license": "BSD-3-Clause", @@ -5244,10 +5560,6 @@ "node": ">=14" } }, - "packages/graphql-mesh/node_modules/@repeaterjs/repeater": { - "version": "3.0.5", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/@tsconfig/node10": { "version": "1.0.9", "license": "MIT" @@ -5271,38 +5583,6 @@ "@types/node": "*" } }, - "packages/graphql-mesh/node_modules/@whatwg-node/events": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, - "packages/graphql-mesh/node_modules/@whatwg-node/fetch": { - "version": "0.9.16", - "license": "MIT", - "dependencies": { - "@whatwg-node/node-fetch": "^0.5.5", - "urlpattern-polyfill": "^10.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "packages/graphql-mesh/node_modules/@whatwg-node/node-fetch": { - "version": "0.5.5", - "license": "MIT", - "dependencies": { - "@kamilkisiela/fast-url-parser": "^1.1.4", - "@whatwg-node/events": "^0.1.0", - "busboy": "^1.6.0", - "fast-querystring": "^1.1.1", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, "packages/graphql-mesh/node_modules/@whatwg-node/server": { "version": "0.9.24", "license": "MIT", @@ -5432,10 +5712,6 @@ "version": "4.1.3", "license": "MIT" }, - "packages/graphql-mesh/node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" - }, "packages/graphql-mesh/node_modules/array-union": { "version": "2.1.0", "license": "MIT", @@ -5504,15 +5780,6 @@ "balanced-match": "^1.0.0" } }, - "packages/graphql-mesh/node_modules/busboy": { - "version": "1.6.0", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, "packages/graphql-mesh/node_modules/cacache": { "version": "18.0.2", "license": "ISC", @@ -5674,24 +5941,6 @@ "node-fetch": "^2.6.12" } }, - "packages/graphql-mesh/node_modules/cross-inspect": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "packages/graphql-mesh/node_modules/dataloader": { - "version": "2.2.2", - "license": "MIT" - }, - "packages/graphql-mesh/node_modules/dayjs": { - "version": "1.11.10", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/decamelize": { "version": "1.2.0", "license": "MIT", @@ -5704,13 +5953,6 @@ "license": "MIT", "optional": true }, - "packages/graphql-mesh/node_modules/dependency-graph": { - "version": "0.11.0", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, "packages/graphql-mesh/node_modules/detect-libc": { "version": "2.0.2", "license": "Apache-2.0", @@ -5754,13 +5996,6 @@ "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, - "packages/graphql-mesh/node_modules/dset": { - "version": "3.1.3", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "packages/graphql-mesh/node_modules/eastasianwidth": { "version": "0.2.0", "license": "MIT" @@ -5800,10 +6035,6 @@ "url": "https://github.com/sponsors/jaydenseric" } }, - "packages/graphql-mesh/node_modules/fast-decode-uri-component": { - "version": "1.0.1", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/fast-glob": { "version": "3.3.2", "license": "MIT", @@ -5845,13 +6076,6 @@ "version": "0.4.1", "license": "MIT" }, - "packages/graphql-mesh/node_modules/fast-querystring": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "fast-decode-uri-component": "^1.0.1" - } - }, "packages/graphql-mesh/node_modules/fastq": { "version": "1.17.0", "license": "ISC", @@ -5876,10 +6100,6 @@ "version": "1.0.2", "license": "MIT" }, - "packages/graphql-mesh/node_modules/foreach": { - "version": "2.0.6", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/foreground-child": { "version": "3.1.1", "license": "ISC", @@ -5978,13 +6198,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/graphql-mesh/node_modules/graphql": { - "version": "16.8.1", - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, "packages/graphql-mesh/node_modules/graphql-compose": { "version": "9.0.10", "license": "MIT", @@ -6167,10 +6380,6 @@ "node": ">= 4" } }, - "packages/graphql-mesh/node_modules/immediate": { - "version": "3.0.6", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/immutable": { "version": "3.7.6", "license": "BSD-3-Clause", @@ -6338,16 +6547,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "packages/graphql-mesh/node_modules/js-yaml": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "packages/graphql-mesh/node_modules/json-bigint-patch": { "version": "0.0.8", "license": "MIT" @@ -6369,13 +6568,6 @@ "tslib": "^2.4.0" } }, - "packages/graphql-mesh/node_modules/json-pointer": { - "version": "0.6.2", - "license": "MIT", - "dependencies": { - "foreach": "^2.0.4" - } - }, "packages/graphql-mesh/node_modules/json-schema": { "version": "0.4.0", "license": "(AFL-2.1 OR BSD-3-Clause)" @@ -6384,20 +6576,6 @@ "version": "1.0.0", "license": "MIT" }, - "packages/graphql-mesh/node_modules/lie": { - "version": "3.1.1", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "packages/graphql-mesh/node_modules/localforage": { - "version": "1.10.0", - "license": "Apache-2.0", - "dependencies": { - "lie": "3.1.1" - } - }, "packages/graphql-mesh/node_modules/lodash.keys": { "version": "4.2.0", "license": "MIT" @@ -6418,10 +6596,6 @@ "version": "4.5.0", "license": "MIT" }, - "packages/graphql-mesh/node_modules/lodash.topath": { - "version": "4.5.2", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/lodash.without": { "version": "4.4.0", "license": "MIT" @@ -6880,13 +7054,6 @@ "node": ">=0.10.0" } }, - "packages/graphql-mesh/node_modules/object-inspect": { - "version": "1.12.3", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "packages/graphql-mesh/node_modules/openapi-types": { "version": "12.1.3", "license": "MIT" @@ -7336,12 +7503,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "packages/graphql-mesh/node_modules/streamsearch": { - "version": "1.1.0", - "engines": { - "node": ">=10.0.0" - } - }, "packages/graphql-mesh/node_modules/string_decoder": { "version": "1.3.0", "license": "MIT", @@ -7462,13 +7623,6 @@ "license": "ISC", "optional": true }, - "packages/graphql-mesh/node_modules/tiny-lru": { - "version": "11.2.5", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, "packages/graphql-mesh/node_modules/title-case": { "version": "3.0.3", "license": "MIT", @@ -7634,10 +7788,6 @@ "version": "4.0.1", "license": "MIT" }, - "packages/graphql-mesh/node_modules/urlpattern-polyfill": { - "version": "10.0.0", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/util-deprecate": { "version": "1.0.2", "license": "MIT", @@ -7645,19 +7795,13 @@ }, "packages/graphql-mesh/node_modules/uWebSockets.js": { "version": "20.41.0", + "resolved": "git+ssh://git@github.com/uNetworking/uWebSockets.js.git#105d9ec47126cb82e4a6f3a08aa2ac78b4bb14f1", "license": "Apache-2.0" }, "packages/graphql-mesh/node_modules/v8-compile-cache-lib": { "version": "3.0.1", "license": "MIT" }, - "packages/graphql-mesh/node_modules/value-or-promise": { - "version": "1.0.12", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, "packages/graphql-mesh/node_modules/webidl-conversions": { "version": "3.0.1", "license": "BSD-2-Clause" @@ -7779,8 +7923,7 @@ } }, "packages/spl-ts": { - "name": "@bytel/spl-ts", - "version": "1.0.0", + "version": "0.0.1", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" }, @@ -7792,6 +7935,13 @@ "vite": "^5.1.0", "vite-plugin-dts": "^3.7.2", "vitest": "^1.3.0" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" } } } diff --git a/package.json b/package.json index de3d098..e9902ba 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,13 @@ "packages": ["packages/*"] }, "scripts": { - "postinstall": "npm run postinstall -w graphql-mesh", + "postinstall": "npm run postinstall -w graphql-mesh && patch-package", "start": "npm start -w graphql-mesh", - "prepare": "npm run build -w @bytel/spl-ts" + "prepare": "npm run build -w spl-ts", + "test": "npm test -w spl-ts" + }, + "devDependencies": { + "patch-package": "^8.0.0" }, "engines": { "node": "18" diff --git a/packages/graphql-mesh/.meshrc.ts b/packages/graphql-mesh/.meshrc.ts index a6daba5..cbe737d 100644 --- a/packages/graphql-mesh/.meshrc.ts +++ b/packages/graphql-mesh/.meshrc.ts @@ -6,9 +6,7 @@ export default { additionalTypeDefs: [additionalTypeDefs], additionalResolvers: [resolvers], transforms: [ - { - transforms: {} // '@bytel/spl-ts': {} - } + { "spl-ts": {} } ], serve: { cors: { diff --git a/packages/graphql-mesh/package.json b/packages/graphql-mesh/package.json index 0addf0c..c9c03f2 100644 --- a/packages/graphql-mesh/package.json +++ b/packages/graphql-mesh/package.json @@ -19,7 +19,7 @@ "@graphql-tools/utils": "^10.0.12", "glob": "^10.3.10", "graphql": "^16.8.1", - "@bytel/spl-ts": "*" + "spl-ts": "*" }, "devDependencies": { "@graphql-mesh/types": "^0.96.3", diff --git a/packages/graphql-mesh/transforms/index.ts b/packages/graphql-mesh/transforms/index.ts deleted file mode 100644 index 02bb5a8..0000000 --- a/packages/graphql-mesh/transforms/index.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { defaultFieldResolver, GraphQLSchema } from 'graphql' -import { MeshTransform } from '@graphql-mesh/types' -import { MapperKind, mapSchema } from '@graphql-tools/utils' -import { splListFilterer } from '@bytel/spl-ts' - -export default class DirectivesTransform implements MeshTransform { - noWrap = true - - transformSchema(schema: GraphQLSchema) { - return mapSchema(schema, { - [MapperKind.OBJECT_FIELD]: (fieldConfig) => { - const originalResolver = - fieldConfig.resolve != null ? fieldConfig.resolve : defaultFieldResolver - - const resolver = async (next, source, args, context, info) => { - const { directives } = info.fieldNodes[0] - const upperDirective = directives.find((directive) => directive.name.value === 'upper') - const splDirective = directives.find((directive) => directive.name.value === 'SPL') - - const result = await next() - - if (splDirective) { - const { value } = splDirective.arguments[0] - - let data = splListFilterer.filter_no_variables( - value.value, - splListFilterer.formatInput(result) - ) - return splListFilterer.formatOutput(data) - } - - if (upperDirective) { - if (typeof result === 'string') { - return result.toUpperCase() - } - return result - } - - return result - } - - fieldConfig.resolve = (source, originalArgs, context, info) => { - return resolver( - () => - new Promise((resolve, reject) => { - const result = originalResolver(source, originalArgs, context, info) - if (result instanceof Error) { - reject(result) - } - resolve(result) - }), - source, - originalArgs, - context, - info - ) - } - return fieldConfig - } - }) - } -} diff --git a/packages/spl-ts/package.json b/packages/spl-ts/package.json index 2b820c7..9aaadaf 100644 --- a/packages/spl-ts/package.json +++ b/packages/spl-ts/package.json @@ -1,6 +1,6 @@ { - "name": "@bytel/spl-ts", - "version": "1.0.0", + "name": "spl-ts", + "version": "0.0.1", "type": "module", "main": "_build/cjs/index.js", "module": "_build/esm/index.js", @@ -16,7 +16,6 @@ ], "scripts": { "dev": "vite", - "// build": "tsc && vite build", "build": "rm -rf _build && npm run build:esm && npm run build:cjs && node ./scripts/prepare-package-json", "build:esm": "tsc --project tsconfig-esm.json", "build:cjs": "tsc --project tsconfig-cjs.json", @@ -33,6 +32,13 @@ "vite-plugin-dts": "^3.7.2", "vitest": "^1.3.0" }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-tools/utils": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "graphql": "*" + }, "dependencies": { "antlr4ts": "^0.5.0-alpha.4" } diff --git a/packages/spl-ts/src/index.ts b/packages/spl-ts/src/index.ts new file mode 100644 index 0000000..ef3ad39 --- /dev/null +++ b/packages/spl-ts/src/index.ts @@ -0,0 +1,89 @@ +import { defaultFieldResolver, GraphQLSchema } from 'graphql' +import { MeshTransform } from '@graphql-mesh/types' +import { MapperKind, mapSchema } from '@graphql-tools/utils' +import { splListFilterer } from './main' + +export default class DirectivesTransform implements MeshTransform { + noWrap = true + + transformSchema(schema: GraphQLSchema) { + return mapSchema(schema, { + [MapperKind.OBJECT_FIELD]: (fieldConfig) => { + const originalResolver = + fieldConfig.resolve != null ? fieldConfig.resolve : defaultFieldResolver + + const resolver = async (next: any , _source: any, _args: any, context: any, info: any) => { + const { directives } = info.fieldNodes[0] + const upperDirective = directives.find((directive: { name: { value: string } }) => directive.name.value === 'upper') + const splDirective = directives.find((directive: { name: { value: string } }) => directive.name.value === 'SPL') + const noAuthDirective = directives.find((directive: { name: { value: string } }) => directive.name.value === 'noAuth') + const headersDirective = directives.find( + (directive: { name: { value: string } }) => directive.name.value === 'headers' + ) + + if (noAuthDirective) { + context = { ...context, headers: { ...context.headers, authorization: '' } } + } + + if (headersDirective) { + const { value } = headersDirective.arguments[0] + + value?.values?.forEach((item: { fields: [any, any] }) => { + const [headerName, headerValue] = item.fields + context = { + ...context, + headers: { + ...context.headers, + [headerName.value.value.toLowerCase()]: headerValue.value.value + } + } + }) + } + + /** + * In order to set headers for the request, we need override authorization headers + * an pass it to execute function + */ + let result = await next(context) + + if (splDirective) { + const { value } = splDirective.arguments[0] + + let data = splListFilterer.filter( + value.value, + splListFilterer.formatInput(result), + splListFilterer.formatVariables(context.params.variables || {}) + ) + result = splListFilterer.formatOutput(data) + } + + if (upperDirective) { + if (typeof result === 'string') { + result = result.toUpperCase() + } + } + + return result + } + + fieldConfig.resolve = (source, originalArgs, context, info) => { + return resolver( + (context: unknown) => + new Promise((resolve, reject) => { + const result = originalResolver(source, originalArgs, context, info) + if (result instanceof Error) { + reject(result) + } + resolve(result) + }), + source, + originalArgs, + context, + info + ) + } + return fieldConfig + } + }) + } +} diff --git a/packages/spl-ts/src/main/index.ts b/packages/spl-ts/src/main/index.ts index 5ad0b74..bae5c5d 100644 --- a/packages/spl-ts/src/main/index.ts +++ b/packages/spl-ts/src/main/index.ts @@ -2,16 +2,10 @@ import { OperandReader } from './OperandReader' import { PropertyWalker } from './PropertyWalker' import { SPLQueryToTreeConverter } from './antlr/SPLQueryToTreeConverter' import { SPLLimitExtractor } from './limiter/SPLLimitExtractor' -import { PredicateOperation } from './predicate/PredicateOperation' import { SPLPredicateFilter } from './predicate/SPLPredicateFilter' import { SPLComparatorFactory } from './sorter/SPLComparatorFactory' import { SPLListFilterer } from './sorter/SPLListFilterer' -import { StringOperations } from './predicate/StringOperations' -import { NumberOperations } from './predicate/NumberOperations' -import { BooleanOperations } from './predicate/BooleanOperations' -import { DateOperations } from './predicate/DateOperations' -import { StringListStringOperations } from './predicate/StringListStringOperations' -import { BooleanListBooleansOperations } from './predicate/BooleanListBooleansOperations' +import { StringOperations, StringListStringOperations, DateOperations, NumberOperations, BooleanOperations, BooleanListBooleansOperations, PredicateOperation } from './predicate/operations' const operations: PredicateOperation[] = [ new StringOperations(), diff --git a/packages/spl-ts/src/main/predicate/SPLPredicateFilter.ts b/packages/spl-ts/src/main/predicate/SPLPredicateFilter.ts index 327d226..4491ea4 100644 --- a/packages/spl-ts/src/main/predicate/SPLPredicateFilter.ts +++ b/packages/spl-ts/src/main/predicate/SPLPredicateFilter.ts @@ -1,6 +1,6 @@ import { PredicateContext, Predicate_memberContext, QueryContext } from '../antlr/SPLParser' import { OperandReader } from '../OperandReader' -import { PredicateOperation } from './PredicateOperation' +import { PredicateOperation } from './operations' export class SPLPredicateFilter { private operandReader: OperandReader diff --git a/packages/spl-ts/src/main/predicate/BooleanListBooleansOperations.ts b/packages/spl-ts/src/main/predicate/operations/BooleanListBooleansOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/BooleanListBooleansOperations.ts rename to packages/spl-ts/src/main/predicate/operations/BooleanListBooleansOperations.ts diff --git a/packages/spl-ts/src/main/predicate/BooleanOperations.ts b/packages/spl-ts/src/main/predicate/operations/BooleanOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/BooleanOperations.ts rename to packages/spl-ts/src/main/predicate/operations/BooleanOperations.ts diff --git a/packages/spl-ts/src/main/predicate/DateOperations.ts b/packages/spl-ts/src/main/predicate/operations/DateOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/DateOperations.ts rename to packages/spl-ts/src/main/predicate/operations/DateOperations.ts diff --git a/packages/spl-ts/src/main/predicate/NumberOperations.ts b/packages/spl-ts/src/main/predicate/operations/NumberOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/NumberOperations.ts rename to packages/spl-ts/src/main/predicate/operations/NumberOperations.ts diff --git a/packages/spl-ts/src/main/predicate/PredicateOperation.ts b/packages/spl-ts/src/main/predicate/operations/PredicateOperation.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/PredicateOperation.ts rename to packages/spl-ts/src/main/predicate/operations/PredicateOperation.ts diff --git a/packages/spl-ts/src/main/predicate/StringListStringOperations.ts b/packages/spl-ts/src/main/predicate/operations/StringListStringOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/StringListStringOperations.ts rename to packages/spl-ts/src/main/predicate/operations/StringListStringOperations.ts diff --git a/packages/spl-ts/src/main/predicate/StringOperations.ts b/packages/spl-ts/src/main/predicate/operations/StringOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/StringOperations.ts rename to packages/spl-ts/src/main/predicate/operations/StringOperations.ts diff --git a/packages/spl-ts/src/main/predicate/operations/index.ts b/packages/spl-ts/src/main/predicate/operations/index.ts new file mode 100644 index 0000000..7fd961a --- /dev/null +++ b/packages/spl-ts/src/main/predicate/operations/index.ts @@ -0,0 +1,17 @@ +import { BooleanListBooleansOperations } from './BooleanListBooleansOperations' +import { BooleanOperations } from './BooleanOperations' +import { DateOperations } from './DateOperations' +import { NumberOperations } from './NumberOperations' +import { StringListStringOperations } from './StringListStringOperations' +import { StringOperations } from './StringOperations' +import { PredicateOperation } from './PredicateOperation' + +export { + BooleanListBooleansOperations, + BooleanOperations, + DateOperations, + NumberOperations, + StringListStringOperations, + StringOperations, + PredicateOperation +} diff --git a/packages/spl-ts/src/main/sorter/SPLListFilterer.ts b/packages/spl-ts/src/main/sorter/SPLListFilterer.ts index f646dfc..f0e3a8c 100644 --- a/packages/spl-ts/src/main/sorter/SPLListFilterer.ts +++ b/packages/spl-ts/src/main/sorter/SPLListFilterer.ts @@ -26,7 +26,7 @@ export class SPLListFilterer { public filter( query: string, input: Map[], - variables: Map + variables: Map = new Map() ): Map[] { const queryContext: QueryContext = this.splQueryToTreeConverter.createTree(query) const limitObj: Limit = this.splLimitExtractor.fetchLimit(queryContext, variables) @@ -39,20 +39,15 @@ export class SPLListFilterer { .sort(this.splComparatorFactory.createComparator(queryContext)) } - public filter_no_variables(query: string, input: Map[]) { - return this.filter(query, input, new Map()) - } - public formatInput(input: any): Map[] { const parsedJsonInput = JSON.parse(JSON.stringify(input)) - const inputMap: Map[] = [] parsedJsonInput.forEach((item: Map) => { const newItem: Map = new Map() Object.entries(item).forEach(([key, value]) => { - if (typeof value === 'object') { + if (value && typeof value === 'object') { newItem.set(key, new Map(Object.entries(value))) } else { newItem.set(key, value) @@ -64,6 +59,20 @@ export class SPLListFilterer { return inputMap } + public formatVariables(variables: any): Map { + const newItem: Map = new Map() + if (!Array.isArray(variables)) { + Object.entries(variables).forEach(([key, value]) => { + if (value && typeof value === 'object') { + newItem.set(key, new Map(Object.entries(value))) + } else { + newItem.set(key, value as Object) + } + }) + } + return newItem + } + public formatOutput(output: Map[]): any[] { const reversedInput: any[] = [] diff --git a/packages/spl-ts/src/test/SPLListFilter.test.ts b/packages/spl-ts/src/test/SPLListFilter.test.ts index a258d9a..5b98f8c 100644 --- a/packages/spl-ts/src/test/SPLListFilter.test.ts +++ b/packages/spl-ts/src/test/SPLListFilter.test.ts @@ -3,16 +3,18 @@ import { OperandReader } from '../main/OperandReader' import { PropertyWalker } from '../main/PropertyWalker' import { SPLQueryToTreeConverter } from '../main/antlr/SPLQueryToTreeConverter' import { SPLLimitExtractor } from '../main/limiter/SPLLimitExtractor' -import { PredicateOperation } from '../main/predicate/PredicateOperation' import { SPLPredicateFilter } from '../main/predicate/SPLPredicateFilter' import { SPLComparatorFactory } from '../main/sorter/SPLComparatorFactory' import { SPLListFilterer } from '../main/sorter/SPLListFilterer' -import { StringOperations } from '../main/predicate/StringOperations' -import { NumberOperations } from '../main/predicate/NumberOperations' -import { BooleanOperations } from '../main/predicate/BooleanOperations' -import { DateOperations } from '../main/predicate/DateOperations' -import { StringListStringOperations } from '../main/predicate/StringListStringOperations' -import { BooleanListBooleansOperations } from '../main/predicate/BooleanListBooleansOperations' +import { + StringOperations, + StringListStringOperations, + DateOperations, + NumberOperations, + BooleanOperations, + BooleanListBooleansOperations, + PredicateOperation +} from '../main/predicate/operations' type ArrayMapDataset = Map[] @@ -210,45 +212,65 @@ const dataSet7 = [ } ] +const dataSet8 = [ + { + id: 'RESTITEQUIP_RL_202212_9082362800079400000000000100', + codeMotif: 'RESTITEQUIP_RL', + type: 'BON_RETOUR', + libelle: 'bon de retour relais-colis', + dateDemandeClient: '2022-12-28', + dateDernierDelaiRetrait: '2023-04-07' + }, + { + id: 'RESTITEQUIP_RL_202212_9082362800079400000000000101', + codeMotif: 'RESTITEQUIP_RL', + type: 'BON_RETOUR', + libelle: 'bon de retour relais-colis', + dateDemandeClient: '2022-12-28', + dateDernierDelaiRetrait: '2023-04-07' + }, + { + id: 'RESTITEQUIP_RL_202212_9082362800079400000000000102', + codeMotif: 'RESTITEQUIP_RL', + type: 'BON_RETOUR', + libelle: 'bon de retour relais-colis', + dateDemandeClient: '2022-12-28', + dateDernierDelaiRetrait: '2023-04-07' + } +] // TESTS test('Simple Dataset [string check]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - "lastName = 'Dupont'", - dataSet1 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter("lastName = 'Dupont'", dataSet1) expect(filteredDataset.length).toBe(2) }) test('Simple Dataset [number check]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables('age = 23', dataSet1) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('age = 23', dataSet1) expect(filteredDataset.length).toBe(1) }) test('Simple Dataset [boolean check]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'isStudent = false', - dataSet1 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('isStudent = false', dataSet1) expect(filteredDataset.length).toBe(2) }) test('Simple Dataset [OR]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( "(lastName = 'Dupont') OR (lastName = 'Dupond')", dataSet1 ) expect(filteredDataset.length).toBe(3) }) test('Simple Dataset [XOR]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( "(lastName = 'Dupont') XOR (lastName = 'Dupond')", dataSet1 ) expect(filteredDataset.length).toBe(3) }) test('Simple Dataset [Two Conditions]', () => { - const filteredDataset18plus: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset18plus: ArrayMapDataset = splListFilterer.filter( "(lastName = 'Dupont') AND (age >= 18)", dataSet2 ) - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( "(lastName = 'Dupont') AND (age >= 0)", dataSet2 ) @@ -257,11 +279,11 @@ test('Simple Dataset [Two Conditions]', () => { expect(filteredDataset.length).toBe(2) }) test('Simple Dataset [Filter List on List]', () => { - const filteredDataset18plus: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset18plus: ArrayMapDataset = splListFilterer.filter( "(lastName = 'Dupont') AND (age >= 18)", dataSet2 ) - const filteredDataset20plus: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset20plus: ArrayMapDataset = splListFilterer.filter( 'age >= 20', filteredDataset18plus ) @@ -269,142 +291,115 @@ test('Simple Dataset [Filter List on List]', () => { expect(filteredDataset20plus.length).toBe(1) }) test('Simple Dataset [With List Conditions [AND]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( "(lastName IN ['Dupont', 'Dupond']) AND (age >= 18)", dataSet2 ) expect(filteredDataset.length).toBe(2) }) test('Simple Dataset [With List Conditions [AND] [none]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( "(lastName IN ['Duponx']) AND (age >= 18)", dataSet2 ) expect(filteredDataset.length).toBe(0) }) test('Simple Dataset [With List Conditions [OR]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( "(lastName IN ['Duponx']) OR (age >= 18)", dataSet2 ) expect(filteredDataset.length).toBe(2) }) test('Simple Dataset [With List Conditions [Itself]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( 'lastName IN [lastName]', dataSet2 ) expect(filteredDataset.length).toBe(3) }) test('Simple Dataset [With List Conditions [Itself] [none]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( 'lastName IN [firstName]', dataSet2 ) expect(filteredDataset.length).toBe(0) }) test('Simple Dataset [With List Conditions [Itself] [2nd example]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( 'givenName IN [firstName, secondName]', dataSet3 ) expect(filteredDataset.length).toBe(1) }) test('Simple Dataset [Comparison String In Value]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - "'M' IN firstName", - dataSet2 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter("'M' IN firstName", dataSet2) expect(filteredDataset.length).toBe(2) }) test('Simple Dataset [Comparison String In Value [parenthesis]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( "(('a' IN firstName) OR ('i' IN firstName)) AND ('M' IN firstName)", dataSet2 ) expect(filteredDataset.length).toBe(2) }) test('Simple Dataset [Comparison String In Value [none]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - "'m' IN firstName", - dataSet2 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter("'m' IN firstName", dataSet2) expect(filteredDataset.length).toBe(0) }) test('Simple Dataset [With Deep Comparision]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( 'givenName IN [names.firstName, names.secondName]', dataSet4 ) expect(filteredDataset.length).toBe(1) }) test('Simple Dataset [Limit 0]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables('LIMIT 0', dataSet2) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('LIMIT 0', dataSet2) expect(filteredDataset.length).toBe(0) }) test('Simple Dataset [Limit 4]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables('LIMIT 4', dataSet2) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('LIMIT 4', dataSet2) expect(filteredDataset.length).toBe(3) }) test('Simple Dataset [Negative Limit [ko]]', () => { - expect(() => splListFilterer.filter_no_variables('LIMIT -1', dataSet2)).toThrow(Error) + expect(() => splListFilterer.filter('LIMIT -1', dataSet2)).toThrow(Error) }) test('Simple Dataset [String as Limit [ko]]', () => { - expect(() => splListFilterer.filter_no_variables('LIMIT TEN', dataSet2)).toThrow(Error) + expect(() => splListFilterer.filter('LIMIT TEN', dataSet2)).toThrow(Error) }) test('Simple Dataset [Limit Offset]', () => { - const ss_test_1: number = splListFilterer - .filter_no_variables('LIMIT 1, 0', dataSet2)[0] - .get('age') as number - const ss_test_2: number = splListFilterer - .filter_no_variables('LIMIT 1, 1', dataSet2)[0] - .get('age') as number - const ss_test_3: number = splListFilterer - .filter_no_variables('LIMIT 1, 2', dataSet2)[0] - .get('age') as number + const ss_test_1: number = splListFilterer.filter('LIMIT 1, 0', dataSet2)[0].get('age') as number + const ss_test_2: number = splListFilterer.filter('LIMIT 1, 1', dataSet2)[0].get('age') as number + const ss_test_3: number = splListFilterer.filter('LIMIT 1, 2', dataSet2)[0].get('age') as number expect(ss_test_1).toBe(21) expect(ss_test_2).toBe(17) expect(ss_test_3).toBe(19) }) test('Simple Dataset [Limit [multiplication]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'LIMIT (20 * 1)', - dataSet2 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('LIMIT (20 * 1)', dataSet2) expect(filteredDataset.length).toBe(3) }) test('Simple Dataset [Limit [multiplication] [no parenthesis]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'LIMIT 1 * 2', - dataSet2 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('LIMIT 1 * 2', dataSet2) expect(filteredDataset.length).toBe(2) }) test('Simple Dataset [Limit Offset [multiplication]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'LIMIT (1*1), (1*2)', - dataSet2 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('LIMIT (1*1), (1*2)', dataSet2) expect(filteredDataset[0].get('age')).toBe(19) }) test('Simple Dataset [Limit Offset [multiplication] [no parenthesis]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'LIMIT 1*1, 1*2', - dataSet2 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('LIMIT 1*1, 1*2', dataSet2) expect(filteredDataset[0].get('age')).toBe(19) }) test('Simple Dataset [Sort by First Name [asc]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'SORT BY firstName', - dataSet2 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('SORT BY firstName', dataSet2) expect(filteredDataset[0].get('firstName')).toBe('Bertrand') expect(filteredDataset[1].get('firstName')).toBe('Martin') expect(filteredDataset[2].get('firstName')).toBe('Michel') }) test('Simple Dataset [Sort by First Name [desc]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( 'SORT BY firstName DESC', dataSet2 ) @@ -413,7 +408,7 @@ test('Simple Dataset [Sort by First Name [desc]]', () => { expect(filteredDataset[2].get('firstName')).toBe('Bertrand') }) test('Simple Dataset [Sort by Last Name [asc] and First Name [desc]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( 'SORT BY lastName ASC, firstName ASC', dataSet2 ) @@ -422,7 +417,7 @@ test('Simple Dataset [Sort by Last Name [asc] and First Name [desc]]', () => { expect(filteredDataset[2].get('firstName')).toBe('Martin') }) test('Simple Dataset [Sort by First Name [asc] and First Name [desc]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( 'SORT BY firstName ASC, firstName DESC', dataSet2 ) @@ -431,7 +426,7 @@ test('Simple Dataset [Sort by First Name [asc] and First Name [desc]]', () => { expect(filteredDataset[2].get('firstName')).toBe('Michel') }) test('Simple Dataset [Sort by Last Name [asc] and Age [asc]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( 'SORT BY lastName ASC, age ASC', dataSet1 ) @@ -440,37 +435,25 @@ test('Simple Dataset [Sort by Last Name [asc] and Age [asc]]', () => { expect(filteredDataset[2].get('firstName')).toBe('Bertrand') }) test('Simple Dataset [Sort by Age [asc]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'SORT BY age ASC', - dataSet5 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('SORT BY age ASC', dataSet5) expect(filteredDataset[0].get('firstName')).toBe('Michel') expect(filteredDataset[1].get('firstName')).toBe('Bertrand') expect(filteredDataset[2].get('firstName')).toBe('Martin') }) test('Simple Dataset [Sort by Age [desc]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'SORT BY age DESC', - dataSet5 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('SORT BY age DESC', dataSet5) expect(filteredDataset[0].get('firstName')).toBe('Martin') expect(filteredDataset[1].get('firstName')).toBe('Bertrand') expect(filteredDataset[2].get('firstName')).toBe('Michel') }) test('Simple Dataset [Sort by Date [asc]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'SORT BY date ASC', - dataSet6 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('SORT BY date ASC', dataSet6) expect(filteredDataset[0].get('name')).toBe('Apollo11') expect(filteredDataset[1].get('name')).toBe('Tchernobyl') expect(filteredDataset[2].get('name')).toBe('BerlinWall') }) test('Simple Dataset [Sort by Date [desc]]', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( - 'SORT BY date DESC', - dataSet6 - ) + const filteredDataset: ArrayMapDataset = splListFilterer.filter('SORT BY date DESC', dataSet6) expect(filteredDataset[0].get('name')).toBe('BerlinWall') expect(filteredDataset[1].get('name')).toBe('Tchernobyl') expect(filteredDataset[2].get('name')).toBe('Apollo11') @@ -493,15 +476,25 @@ test('Complex Request', () => { const splQuery: string = "(statut != 'RESILIE') AND ((abonnement.offreDataMobile = null) OR (abonnement.offreDataMobile = false) OR (contratsAppaireDataPartagee = null))" - const output: ArrayMapDataset = splListFilterer.filter_no_variables(splQuery, inputMap) + const output: ArrayMapDataset = splListFilterer.filter(splQuery, inputMap) expect(output.length).toBe(2) }) - test('Simple Dataset [With Deep Comparision] 2', () => { - const filteredDataset: ArrayMapDataset = splListFilterer.filter_no_variables( + const filteredDataset: ArrayMapDataset = splListFilterer.filter( "idFacture IN ['11014099830124']", splListFilterer.formatInput(dataSet7) ) expect(filteredDataset.length).toBe(1) }) + +test('Simple Dataset [With variables] 2', () => { + const filteredDataset: ArrayMapDataset = splListFilterer.filter( + 'id = :brId', + splListFilterer.formatInput(dataSet8), + splListFilterer.formatVariables({ + brId: 'RESTITEQUIP_RL_202212_9082362800079400000000000100' + }) + ) + expect(filteredDataset.length).toBe(1) +}) diff --git a/packages/spl-ts/src/test/SPLPredicateFilter.test.ts b/packages/spl-ts/src/test/SPLPredicateFilter.test.ts index d253ebf..8f987bc 100644 --- a/packages/spl-ts/src/test/SPLPredicateFilter.test.ts +++ b/packages/spl-ts/src/test/SPLPredicateFilter.test.ts @@ -2,14 +2,16 @@ import { test, expect } from 'vitest' import { OperandReader } from '../main/OperandReader' import { PropertyWalker } from '../main/PropertyWalker' import { SPLPredicateFilter } from '../main/predicate/SPLPredicateFilter' -import { StringOperations } from '../main/predicate/StringOperations' -import { NumberOperations } from '../main/predicate/NumberOperations' -import { BooleanOperations } from '../main/predicate/BooleanOperations' -import { DateOperations } from '../main/predicate/DateOperations' -import { StringListStringOperations } from '../main/predicate/StringListStringOperations' -import { BooleanListBooleansOperations } from '../main/predicate/BooleanListBooleansOperations' import { SPLQueryToTreeConverter } from '../main/antlr/SPLQueryToTreeConverter' import { QueryContext } from '../main/antlr/SPLParser' +import { + StringOperations, + StringListStringOperations, + DateOperations, + NumberOperations, + BooleanOperations, + BooleanListBooleansOperations +} from '../main/predicate/operations' type MapDataset = Map diff --git a/packages/spl-ts/vite.config.ts b/packages/spl-ts/vite.config.ts index fc595d6..2abcb3e 100644 --- a/packages/spl-ts/vite.config.ts +++ b/packages/spl-ts/vite.config.ts @@ -7,7 +7,7 @@ import dts from 'vite-plugin-dts' export default defineConfig({ build: { lib: { - entry: resolve(__dirname, 'src/main/index.ts'), + entry: resolve(__dirname, 'src/index.ts'), name: 'my-lib', fileName: 'my-lib' } diff --git a/packages/graphql-mesh/patches/@graphql-tools+batch-execute+9.0.2.patch b/patches/@graphql-tools+batch-execute+9.0.2.patch similarity index 100% rename from packages/graphql-mesh/patches/@graphql-tools+batch-execute+9.0.2.patch rename to patches/@graphql-tools+batch-execute+9.0.2.patch diff --git a/packages/graphql-mesh/patches/@graphql-tools+executor+1.2.0.patch b/patches/@graphql-tools+executor+1.2.0.patch similarity index 100% rename from packages/graphql-mesh/patches/@graphql-tools+executor+1.2.0.patch rename to patches/@graphql-tools+executor+1.2.0.patch diff --git a/packages/graphql-mesh/patches/graphql+16.8.1.patch b/patches/graphql+16.8.1.patch similarity index 100% rename from packages/graphql-mesh/patches/graphql+16.8.1.patch rename to patches/graphql+16.8.1.patch From 72de1033000d1e33584605840bd0dfd52ccc2cca Mon Sep 17 00:00:00 2001 From: Mbaye THIAM Date: Wed, 27 Mar 2024 14:58:08 +0100 Subject: [PATCH 2/9] =?UTF-8?q?=E2=9C=A8=20publish=20docker=20image?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-image.yml | 46 + package-lock.json | 614 +- package.json | 3 +- packages/graphql-mesh/.dockerignore | 2 + packages/graphql-mesh/.gitignore | 4 +- packages/graphql-mesh/.meshrc.ts | 32 +- packages/graphql-mesh/Dockerfile | 34 + packages/graphql-mesh/config.ts | 29 +- packages/graphql-mesh/config.yaml | 23 + packages/graphql-mesh/helpers/index.ts | 81 + .../{specs => local-pkg}/.gitkeep | 0 packages/graphql-mesh/package-lock.json | 6812 +++++++++++++++++ packages/graphql-mesh/package.json | 14 +- .../graphql-mesh/scripts/downloadSources.ts | 53 + packages/graphql-mesh/serve.ts | 7 +- packages/graphql-mesh/setup.ts | 353 + packages/graphql-mesh/types.d.ts | 2 +- packages/spl-ts/package.json | 14 +- 18 files changed, 7817 insertions(+), 306 deletions(-) create mode 100644 .github/workflows/docker-image.yml create mode 100644 packages/graphql-mesh/.dockerignore create mode 100644 packages/graphql-mesh/Dockerfile create mode 100644 packages/graphql-mesh/config.yaml create mode 100644 packages/graphql-mesh/helpers/index.ts rename packages/graphql-mesh/{specs => local-pkg}/.gitkeep (100%) create mode 100644 packages/graphql-mesh/package-lock.json create mode 100644 packages/graphql-mesh/scripts/downloadSources.ts create mode 100644 packages/graphql-mesh/setup.ts diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..22f2a95 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,46 @@ +name: Docker Image CI + +on: + # release: + # types: [published] + push: + tags: + - '*' + +jobs: + docker-build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + registry-url: https://registry.npmjs.org/ + + - name: Install dependencies + run: npm install + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Extract version from tag + id: get_version + run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) + + - name: Build and push image to Docker Hub + uses: docker/build-push-action@v2 + with: + context: ./packages/graphql-mesh + push: true + tags: bouyguestelecom/graphql-mesh:${{ steps.get_version.outputs.VERSION }},bouyguestelecom/graphql-mesh:latest + platforms: linux/amd64,linux/arm64 diff --git a/package-lock.json b/package-lock.json index d154937..057b0d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -730,6 +730,95 @@ "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 || ^17.0.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "dev": true, @@ -844,6 +933,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@repeaterjs/repeater": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", @@ -1206,7 +1304,6 @@ }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", - "dev": true, "license": "BSD-2-Clause" }, "node_modules/acorn": { @@ -1273,6 +1370,11 @@ "antlr4ts": "antlr4ts" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, "node_modules/argparse": { "version": "1.0.10", "dev": true, @@ -1291,7 +1393,6 @@ }, "node_modules/at-least-node": { "version": "1.0.0", - "dev": true, "license": "ISC", "engines": { "node": ">= 4.0.0" @@ -1303,7 +1404,6 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -1439,7 +1539,6 @@ }, "node_modules/chalk": { "version": "4.1.2", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -1465,7 +1564,6 @@ }, "node_modules/ci-info": { "version": "3.9.0", - "dev": true, "funding": [ { "type": "github", @@ -1640,6 +1738,11 @@ "node": ">=4" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/electron-to-chromium": { "version": "1.4.651", "license": "ISC" @@ -1788,7 +1891,6 @@ }, "node_modules/find-yarn-workspace-root": { "version": "2.0.0", - "dev": true, "license": "Apache-2.0", "dependencies": { "micromatch": "^4.0.2" @@ -1799,9 +1901,23 @@ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==" }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fs-extra": { "version": "9.1.0", - "dev": true, "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", @@ -1884,7 +2000,6 @@ }, "node_modules/glob": { "version": "7.2.3", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -1920,7 +2035,6 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "devOptional": true, "license": "ISC" }, "node_modules/graphql": { @@ -1937,7 +2051,6 @@ }, "node_modules/has-flag": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2097,13 +2210,29 @@ }, "node_modules/isarray": { "version": "2.0.5", - "dev": true, "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "license": "ISC" }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jju": { "version": "1.4.0", "dev": true, @@ -2158,7 +2287,6 @@ }, "node_modules/json-stable-stringify": { "version": "1.1.1", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -2190,7 +2318,6 @@ }, "node_modules/jsonfile": { "version": "6.1.0", - "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -2201,7 +2328,6 @@ }, "node_modules/jsonify": { "version": "0.0.1", - "dev": true, "license": "Public Domain", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2209,7 +2335,6 @@ }, "node_modules/klaw-sync": { "version": "6.0.0", - "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.1.11" @@ -2292,7 +2417,6 @@ }, "node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -2341,7 +2465,6 @@ }, "node_modules/minimatch": { "version": "3.1.2", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -2357,6 +2480,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mlly": { "version": "1.5.0", "dev": true, @@ -2377,6 +2508,16 @@ "dev": true, "license": "MIT" }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.7", "dev": true, @@ -2427,6 +2568,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -2437,7 +2586,6 @@ }, "node_modules/object-keys": { "version": "1.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2480,7 +2628,6 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -2547,7 +2694,6 @@ }, "node_modules/patch-package": { "version": "8.0.0", - "dev": true, "license": "MIT", "dependencies": { "@yarnpkg/lockfile": "^1.1.0", @@ -2604,6 +2750,29 @@ "dev": true, "license": "MIT" }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/pathe": { "version": "1.1.2", "dev": true, @@ -2631,6 +2800,14 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-types": { "version": "1.0.3", "dev": true, @@ -2736,7 +2913,6 @@ }, "node_modules/rimraf": { "version": "2.7.1", - "dev": true, "license": "ISC", "dependencies": { "glob": "^7.1.3" @@ -2778,7 +2954,6 @@ }, "node_modules/semver": { "version": "7.5.4", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -2838,7 +3013,6 @@ }, "node_modules/slash": { "version": "2.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -2907,6 +3081,20 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "license": "MIT", @@ -2917,6 +3105,18 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "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/strip-final-newline": { "version": "3.0.0", "dev": true, @@ -2955,9 +3155,80 @@ "dev": true, "license": "MIT" }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "7.2.0", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -2977,6 +3248,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/tiny-lru": { "version": "11.2.5", "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.2.5.tgz", @@ -3008,7 +3298,6 @@ }, "node_modules/tmp": { "version": "0.0.33", - "dev": true, "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" @@ -3034,6 +3323,11 @@ "node": ">=8.0" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, "node_modules/tslib": { "version": "2.6.2", "license": "0BSD" @@ -3068,7 +3362,6 @@ }, "node_modules/universalify": { "version": "2.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -3362,6 +3655,23 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "license": "ISC" @@ -3375,12 +3685,10 @@ }, "node_modules/yallist": { "version": "4.0.0", - "dev": true, "license": "ISC" }, "node_modules/yaml": { "version": "2.3.4", - "dev": true, "license": "ISC", "engines": { "node": ">= 14" @@ -3454,12 +3762,13 @@ "@graphql-tools/utils": "^10.0.12", "glob": "^10.3.10", "graphql": "^16.8.1", - "spl-ts": "*" + "patch-package": "^8.0.0", + "spl-ts": "file:./local-pkg/spl-ts-1.0.0.tgz", + "sucrase": "^3.35.0" }, "devDependencies": { "@graphql-mesh/types": "^0.96.3", - "antlr4ts": "^0.5.0-alpha.4", - "patch-package": "^8.0.0" + "antlr4ts": "^0.5.0-alpha.4" } }, "packages/graphql-mesh/node_modules/@apollo/client": { @@ -5150,88 +5459,6 @@ "node": ">=18.0.0" } }, - "packages/graphql-mesh/node_modules/@isaacs/cliui": { - "version": "8.0.2", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "packages/graphql-mesh/node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "packages/graphql-mesh/node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "packages/graphql-mesh/node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "license": "MIT" - }, - "packages/graphql-mesh/node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/graphql-mesh/node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "packages/graphql-mesh/node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "packages/graphql-mesh/node_modules/@json-schema-tools/meta-schema": { "version": "1.7.0", "license": "Apache-2.0" @@ -5552,14 +5779,6 @@ "tslib": "^2.4.0" } }, - "packages/graphql-mesh/node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "packages/graphql-mesh/node_modules/@tsconfig/node10": { "version": "1.0.9", "license": "MIT" @@ -5996,10 +6215,6 @@ "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, - "packages/graphql-mesh/node_modules/eastasianwidth": { - "version": "0.2.0", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/encoding": { "version": "0.1.13", "license": "MIT", @@ -6100,20 +6315,6 @@ "version": "1.0.2", "license": "MIT" }, - "packages/graphql-mesh/node_modules/foreground-child": { - "version": "3.1.1", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "packages/graphql-mesh/node_modules/fs-minipass": { "version": "3.0.3", "license": "ISC", @@ -6531,22 +6732,6 @@ "ws": "*" } }, - "packages/graphql-mesh/node_modules/jackspeak": { - "version": "2.3.6", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "packages/graphql-mesh/node_modules/json-bigint-patch": { "version": "0.0.8", "license": "MIT" @@ -6709,13 +6894,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "packages/graphql-mesh/node_modules/minipass": { - "version": "7.0.4", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "packages/graphql-mesh/node_modules/minipass-collect": { "version": "2.0.1", "license": "ISC", @@ -7047,13 +7225,6 @@ "version": "1.1.1", "license": "MIT" }, - "packages/graphql-mesh/node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "packages/graphql-mesh/node_modules/openapi-types": { "version": "12.1.3", "license": "MIT" @@ -7157,27 +7328,6 @@ "node": ">=0.10.0" } }, - "packages/graphql-mesh/node_modules/path-scurry": { - "version": "1.10.1", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages/graphql-mesh/node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, "packages/graphql-mesh/node_modules/path-type": { "version": "4.0.0", "license": "MIT", @@ -7485,6 +7635,21 @@ "node": ">= 14" } }, + "packages/graphql-mesh/node_modules/spl-ts": { + "version": "1.0.0", + "resolved": "file:packages/graphql-mesh/local-pkg/spl-ts-1.0.0.tgz", + "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, "packages/graphql-mesh/node_modules/sponge-case": { "version": "1.0.1", "license": "MIT", @@ -7515,30 +7680,6 @@ "version": "4.0.4", "license": "ISC" }, - "packages/graphql-mesh/node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "packages/graphql-mesh/node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "packages/graphql-mesh/node_modules/strip-bom": { "version": "3.0.0", "license": "MIT", @@ -7840,49 +7981,6 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "packages/graphql-mesh/node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "packages/graphql-mesh/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "packages/graphql-mesh/node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "packages/graphql-mesh/node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/ws": { "version": "8.16.0", "license": "MIT", @@ -7923,7 +8021,7 @@ } }, "packages/spl-ts": { - "version": "0.0.1", + "version": "1.0.0", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" }, diff --git a/package.json b/package.json index e9902ba..c5e4ac9 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,10 @@ "packages": ["packages/*"] }, "scripts": { + "generate:mesh:lock": "cd packages/graphql-mesh && npm i --package-lock-only --workspaces=false", "postinstall": "npm run postinstall -w graphql-mesh && patch-package", + "prepare": "npm run pack -w spl-ts", "start": "npm start -w graphql-mesh", - "prepare": "npm run build -w spl-ts", "test": "npm test -w spl-ts" }, "devDependencies": { diff --git a/packages/graphql-mesh/.dockerignore b/packages/graphql-mesh/.dockerignore new file mode 100644 index 0000000..22debd1 --- /dev/null +++ b/packages/graphql-mesh/.dockerignore @@ -0,0 +1,2 @@ +.mesh +sources diff --git a/packages/graphql-mesh/.gitignore b/packages/graphql-mesh/.gitignore index 10822a3..22debd1 100644 --- a/packages/graphql-mesh/.gitignore +++ b/packages/graphql-mesh/.gitignore @@ -1,4 +1,2 @@ -.env .mesh -specs -/transforms/spl +sources diff --git a/packages/graphql-mesh/.meshrc.ts b/packages/graphql-mesh/.meshrc.ts index cbe737d..a000bd7 100644 --- a/packages/graphql-mesh/.meshrc.ts +++ b/packages/graphql-mesh/.meshrc.ts @@ -1,20 +1,18 @@ import type { Config } from '@graphql-mesh/types/typings/config' -import { sources, additionalTypeDefs, resolvers } from './config' +import { + openapiSources, + additionalTypeDefs, + resolvers, + defaultConfig, + othersSources +} from './setup' -export default { - sources, - additionalTypeDefs: [additionalTypeDefs], - additionalResolvers: [resolvers], - transforms: [ - { "spl-ts": {} } - ], - serve: { - cors: { - origin: process.env.CORS_ORIGIN ?? '*' - }, - fork: 1, - playground: true, - playgroundTitle: 'Console GraphQL', - browser: false - } +const config = { + ...defaultConfig, + transforms: [{ "spl-ts": {} }, ...(defaultConfig.transforms || [])], + sources: [...openapiSources, ...othersSources], + additionalTypeDefs: [...(defaultConfig.additionalTypeDefs || []), additionalTypeDefs], + additionalResolvers: [...(defaultConfig.additionalResolvers || []), resolvers] } + +export default config diff --git a/packages/graphql-mesh/Dockerfile b/packages/graphql-mesh/Dockerfile new file mode 100644 index 0000000..d1881b6 --- /dev/null +++ b/packages/graphql-mesh/Dockerfile @@ -0,0 +1,34 @@ +FROM node:18-alpine AS builder + +WORKDIR /build + +COPY package*.json ./ +ADD local-pkg ./local-pkg +ADD patches ./patches +ADD ../../patches ./patches +RUN npm ci --omit=dev --omit=optional --omit=peer +RUN rm -rf node_modules/uWebSockets.js/*.node +RUN cd node_modules/typescript/lib && rm -rf cs de es fr it ja ko pl pt-br ru tr zh-cn zh-tw +COPY . ./ +RUN rm ./config.yaml + +FROM node:18-alpine AS runner + +LABEL org.opencontainers.image.description="GraphQL Mesh Gateway" +LABEL org.opencontainers.image.vendor="Bouygues Telecom" + +WORKDIR /app + +COPY --from=builder --chown=node:node /build /app + +ENV DEBUG=$DEBUG +ENV ENDPOINT=$ENDPOINT +ENV NODE_TLS_REJECT_UNAUTHORIZED=0 +ENV TS_NODE_FILES=true +ENV TS_NODE_TRANSPILE_ONLY=true + +# swaggers sources +VOLUME /app/sources +VOLUME /app/config.yaml + +CMD [ "npm", "run", "serve" ] diff --git a/packages/graphql-mesh/config.ts b/packages/graphql-mesh/config.ts index dd617a2..1af2ba0 100644 --- a/packages/graphql-mesh/config.ts +++ b/packages/graphql-mesh/config.ts @@ -39,8 +39,7 @@ specsRaw.forEach((s) => { ) if (interfacesWithChildren[schemaKey] === undefined) { interfacesWithChildren[schemaKey] = mappingTypes - } - else { + } else { mappingTypes.forEach((type) => { if (!interfacesWithChildren[schemaKey].includes(type)) { interfacesWithChildren[schemaKey].push(type) @@ -125,7 +124,9 @@ function createTypeDefsAndResolversFromOneSwagger( .filter(isKeyXlink) .forEach(([, schema]) => { const trimedSchemaKey = trimLinks(schemaKey) - const objToExtend = Object.keys(interfacesWithChildren).includes(trimedSchemaKey) ? 'interface' : 'type' + const objToExtend = Object.keys(interfacesWithChildren).includes(trimedSchemaKey) + ? 'interface' + : 'type' typeDefs += `extend ${objToExtend} ${trimedSchemaKey} {\n` @@ -244,7 +245,11 @@ function createTypeDefsAndResolversFromOneSwagger( resolvers[trimedSchemaKey] = objResolver } - if (objToExtend === 'interface' && typeDefs !== '' && resolvers[trimedSchemaKey] !== undefined) { + if ( + objToExtend === 'interface' && + typeDefs !== '' && + resolvers[trimedSchemaKey] !== undefined + ) { let varToCompare = trimedSchemaKey interfacesWithChildren[trimedSchemaKey].forEach((type) => { const regex = new RegExp(` ${varToCompare} `, 'g') @@ -272,8 +277,7 @@ function createTypeDefsAndResolversFromOneSwagger( resolvers[t][key] = resolvers[type][key] } }) - } - else { + } else { typeDefs += typeDefs .match(/[\s\S]*(^[\s\S]*{[\s\S]*)/m)![1] .replace('interface', 'type') @@ -290,13 +294,16 @@ function createTypeDefsAndResolversFromOneSwagger( resolvers[trimedSchemaKey].__resolveType = (res, _, schema) => { if (res.__typename !== undefined) { return res.__typename - } - else { + } else { if (schema.parentType._fields[schema.fieldName] !== undefined) { //TODO: - return interfacesWithChildren[schema.parentType._fields[schema.fieldName].type.name][interfacesWithChildren[schema.parentType._fields[schema.fieldName].type.name].length-1] - } - else { + return interfacesWithChildren[ + schema.parentType._fields[schema.fieldName].type.name + ][ + interfacesWithChildren[schema.parentType._fields[schema.fieldName].type.name] + .length - 1 + ] + } else { return interfacesWithChildren[schema.fieldName][0] } } diff --git a/packages/graphql-mesh/config.yaml b/packages/graphql-mesh/config.yaml new file mode 100644 index 0000000..b19ee09 --- /dev/null +++ b/packages/graphql-mesh/config.yaml @@ -0,0 +1,23 @@ +sources: + - name: CheckMail + handler: + openapi: + source: https://swap.int.nbyt.fr/ihm-bytel/R-CHECKEMAIL/ADRESSE-MAIL/checkMail@1.2.10/ADRESSE-MAIL-checkMail-consumer-swagger.json + + - name: FeatureToggles + handler: + openapi: + source: https://swap.int.nbyt.fr/ihm-bytel/CONFEATURE/FEATURE-TOGGLES-PROJECT/getFeatureToggles@1.0.2/FEATURE-TOGGLES-PROJECT-getFeatureToggles-consumer-swagger.json + +#transforms: [{ "@bytel/spl-ts": {} }] +serve: + port: 4000 + hostname: "0.0.0.0" + cors: + origin: "*" + fork: 1 + playground: true + playgroundTitle: Console GraphQL Test + browser: false + +skipSSLValidation: true diff --git a/packages/graphql-mesh/helpers/index.ts b/packages/graphql-mesh/helpers/index.ts new file mode 100644 index 0000000..a06f937 --- /dev/null +++ b/packages/graphql-mesh/helpers/index.ts @@ -0,0 +1,81 @@ +import { Config } from '@graphql-mesh/types/typings/config' +import { DefaultLogger } from '@graphql-mesh/utils' +import { load } from 'js-yaml' +import { readFileSync } from 'node:fs' +import { resolve } from 'node:path' +import { Spec } from '../types' + +const logger = new DefaultLogger() + +export const mergeObjects = (obj1: any, obj2: any) => { + for (const key in obj2) { + if (key in obj1 && typeof obj1[key] === 'object') { + obj1[key] = mergeObjects(obj1[key], obj2[key]) + } else { + obj1[key] = obj2[key] + } + } + return obj1 +} + +export const trimLinks = (str: string) => str.replace(/Links$/, '') + +/** + * Anonymize path and get params + * @param path {string} + * @returns + */ +export const anonymizePathAndGetParams = (path: string) => { + const params: string[] = path.match(/\{(.*?)\}/g) ?? [] + + return { + anonymizedPath: path.replace(/\/(\{[^}]+\})/g, '/{}'), + params: params.map((param) => param.replace(/[{}]/g, '')) + } +} + + +/** + * Load config file from yaml or ts + * @returns Config + */ +export const getConfig = (): Config => { + logger.info('Loading config file') + let config: Config + // Load yaml config file + try { + const configPath = resolve('./config.yaml') + config = load(readFileSync(configPath, { encoding: 'utf-8' })) + } catch (e) {} + + // Load ts config file + try { + if (!config) { + config = require('../config').default + } + } catch (e) {} + + if (!config) { + throw new Error('No config file found') + } + + logger.info('Config file loaded successfully') + return config +} + + +export const getAvailableTypes = (specs: Spec[]) => + specs.flatMap((spec) => Object.keys(spec.components?.schemas ?? {})) + +/** + * Get endpoint from openapi source in config + * @param source {string} + * @param config + * @returns + */ +export const getOpenapiEnpoint = (source: string, config: Config): string | undefined => { + const data = config.sources?.find((item) => + item?.handler?.openapi?.source?.includes(source.split('/').pop()) + ) + return data?.handler.openapi?.endpoint +} diff --git a/packages/graphql-mesh/specs/.gitkeep b/packages/graphql-mesh/local-pkg/.gitkeep similarity index 100% rename from packages/graphql-mesh/specs/.gitkeep rename to packages/graphql-mesh/local-pkg/.gitkeep diff --git a/packages/graphql-mesh/package-lock.json b/packages/graphql-mesh/package-lock.json new file mode 100644 index 0000000..155b148 --- /dev/null +++ b/packages/graphql-mesh/package-lock.json @@ -0,0 +1,6812 @@ +{ + "name": "graphql-mesh", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "hasInstallScript": true, + "dependencies": { + "@graphql-mesh/cache-localforage": "^0.96.2", + "@graphql-mesh/cli": "^0.88.4", + "@graphql-mesh/graphql": "^0.96.2", + "@graphql-mesh/merger-stitching": "^0.96.2", + "@graphql-mesh/openapi": "^0.97.4", + "@graphql-mesh/transform-filter-schema": "^0.96.2", + "@graphql-mesh/transform-naming-convention": "^0.96.2", + "@graphql-mesh/transform-prefix": "^0.96.2", + "@graphql-mesh/transform-type-merging": "^0.96.2", + "@graphql-tools/schema": "^10.0.2", + "@graphql-tools/utils": "^10.0.12", + "glob": "^10.3.10", + "graphql": "^16.8.1", + "patch-package": "^8.0.0", + "spl-ts": "file:./local-pkg/spl-ts-1.0.0.tgz", + "sucrase": "^3.35.0" + }, + "devDependencies": { + "@graphql-mesh/types": "^0.96.3", + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@apollo/client": { + "version": "3.8.10", + "license": "MIT", + "optional": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/equality": "^0.5.6", + "@wry/trie": "^0.5.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.18.0", + "prop-types": "^15.7.2", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0", + "graphql-ws": "^5.5.5", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "subscriptions-transport-ws": "^0.9.0 || ^0.11.0" + }, + "peerDependenciesMeta": { + "graphql-ws": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "subscriptions-transport-ws": { + "optional": true + } + } + }, + "node_modules/@ardatan/relay-compiler": { + "version": "12.0.0", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.4.0", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "fbjs": "^3.0.0", + "glob": "^7.1.1", + "immutable": "~3.7.6", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "relay-runtime": "12.0.0", + "signedsource": "^1.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "relay-compiler": "bin/relay-compiler" + }, + "peerDependencies": { + "graphql": "*" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/brace-expansion": { + "version": "1.1.11", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/cliui": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@ardatan/relay-compiler/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/minimatch": { + "version": "3.1.2", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/wrap-ansi": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/y18n": { + "version": "4.0.3", + "license": "ISC" + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs": { + "version": "15.4.1", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs-parser": { + "version": "18.1.3", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@ardatan/sync-fetch": { + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", + "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", + "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.1", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.1", + "@babel/parser": "^7.24.1", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", + "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "dependencies": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.9", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", + "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-flow": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.9", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@envelop/core": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@envelop/types": "5.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@envelop/extended-validation": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@envelop/core": "^5.0.0", + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@envelop/graphql-jit": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "graphql-jit": "0.8.2", + "tslib": "^2.5.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@envelop/core": "^5.0.0", + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@envelop/types": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@graphql-codegen/core": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/tslib": { + "version": "2.5.3", + "license": "0BSD" + }, + "node_modules/@graphql-codegen/plugin-helpers": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { + "version": "2.5.3", + "license": "0BSD" + }, + "node_modules/@graphql-codegen/schema-ast": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/tslib": { + "version": "2.5.3", + "license": "0BSD" + }, + "node_modules/@graphql-codegen/typed-document-node": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-codegen/visitor-plugin-common": "4.0.1", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typed-document-node/node_modules/tslib": { + "version": "2.5.3", + "license": "0BSD" + }, + "node_modules/@graphql-codegen/typescript": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-codegen/schema-ast": "^4.0.0", + "@graphql-codegen/visitor-plugin-common": "4.0.1", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.0.0", + "@graphql-codegen/visitor-plugin-common": "2.13.1", + "auto-bind": "~4.0.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", + "graphql-tag": "^2.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk/node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "2.13.1", + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.7.2", + "@graphql-tools/optimize": "^1.3.0", + "@graphql-tools/relay-operation-optimizer": "^6.5.0", + "@graphql-tools/utils": "^8.8.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.14", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-codegen/plugin-helpers": { + "version": "2.7.2", + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^8.8.0", + "change-case-all": "1.0.14", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/utils": { + "version": "8.13.1", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/change-case-all": { + "version": "1.0.14", + "license": "MIT", + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk/node_modules/@graphql-tools/optimize": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk/node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "6.5.18", + "license": "MIT", + "dependencies": { + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-generic-sdk/node_modules/tslib": { + "version": "2.4.1", + "license": "0BSD" + }, + "node_modules/@graphql-codegen/typescript-operations": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/visitor-plugin-common": "4.0.1", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-operations/node_modules/tslib": { + "version": "2.5.3", + "license": "0BSD" + }, + "node_modules/@graphql-codegen/typescript-resolvers": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/visitor-plugin-common": "4.0.1", + "@graphql-tools/utils": "^10.0.0", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-resolvers/node_modules/tslib": { + "version": "2.5.3", + "license": "0BSD" + }, + "node_modules/@graphql-codegen/typescript/node_modules/tslib": { + "version": "2.5.3", + "license": "0BSD" + }, + "node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-tools/optimize": "^2.0.0", + "@graphql-tools/relay-operation-optimizer": "^7.0.0", + "@graphql-tools/utils": "^10.0.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { + "version": "2.5.3", + "license": "0BSD" + }, + "node_modules/@graphql-inspector/core": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@graphql-inspector/core/-/core-5.0.2.tgz", + "integrity": "sha512-pXHPCggwLmgi5NACPPV4qyf2xW/sQONnu6ZqCAid3k/S2APmVYN4Z3OvxvLA12NFhzby5Sz5K4fRsId43cK8ww==", + "dependencies": { + "dependency-graph": "0.11.0", + "object-inspect": "1.12.3", + "tslib": "2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-mesh/cache-localforage": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "localforage": "1.10.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/cli": { + "version": "0.88.5", + "license": "MIT", + "dependencies": { + "@graphql-codegen/core": "^4.0.0", + "@graphql-codegen/typed-document-node": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.0", + "@graphql-codegen/typescript-generic-sdk": "^3.1.0", + "@graphql-codegen/typescript-operations": "^4.0.0", + "@graphql-codegen/typescript-resolvers": "^4.0.0", + "@graphql-mesh/config": "^0.98.4", + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/http": "^0.97.4", + "@graphql-mesh/runtime": "^0.97.4", + "@graphql-mesh/store": "^0.96.3", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^10.0.1", + "ajv": "^8.12.0", + "change-case": "^4.1.2", + "cosmiconfig": "^9.0.0", + "dotenv": "^16.0.3", + "graphql-import-node": "^0.0.5", + "graphql-ws": "^5.12.1", + "json-bigint-patch": "^0.0.8", + "json5": "^2.2.3", + "mkdirp": "^3.0.0", + "open": "^7.4.2", + "pascal-case": "^3.1.2", + "rimraf": "^5.0.0", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.2.0", + "tslib": "^2.4.0", + "typescript": "^5.0.4", + "uWebSockets.js": "uNetworking/uWebSockets.js#semver:^20", + "yargs": "^17.7.1" + }, + "bin": { + "gql-mesh": "cjs/bin.js", + "graphql-mesh": "cjs/bin.js", + "graphql-mesh-esm": "esm/bin.js", + "mesh": "cjs/bin.js" + }, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "node-libcurl": "3.0.1-0" + }, + "peerDependencies": { + "graphql": "*" + } + }, + "node_modules/@graphql-mesh/config": { + "version": "0.98.4", + "license": "MIT", + "dependencies": { + "@envelop/core": "^5.0.0", + "@graphql-mesh/cache-localforage": "^0.96.3", + "@graphql-mesh/merger-bare": "^0.96.3", + "@graphql-mesh/merger-stitching": "^0.96.3", + "@graphql-tools/code-file-loader": "^8.0.0", + "@graphql-tools/graphql-file-loader": "^8.0.0", + "@graphql-tools/load": "^8.0.0", + "@graphql-yoga/plugin-persisted-operations": "^3.0.0", + "@whatwg-node/fetch": "^0.9.0", + "camel-case": "^4.1.2", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/runtime": "^0.97.4", + "@graphql-mesh/store": "^0.96.3", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/cross-helpers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@graphql-mesh/cross-helpers/-/cross-helpers-0.4.1.tgz", + "integrity": "sha512-NkLzFuY72tmmKO7gKWoDzoYcRVf3lLoCdlw30fSNKFKEWDAV3Tyh4v0fPvU3SEmoTJio7v0TIYZqtVt3dBBDFw==", + "dependencies": { + "path-browserify": "1.0.1" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*" + } + }, + "node_modules/@graphql-mesh/graphql": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-mesh/string-interpolation": "^0.5.3", + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/federation": "^1.1.0", + "@graphql-tools/url-loader": "^8.0.0", + "lodash.get": "^4.4.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/store": "^0.96.3", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/http": { + "version": "0.97.4", + "license": "MIT", + "dependencies": { + "@whatwg-node/server": "^0.9.0", + "graphql-yoga": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/runtime": "^0.97.4", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/merger-bare": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-mesh/merger-stitching": "0.96.3", + "@graphql-tools/schema": "10.0.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/merger-stitching": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/stitch": "^9.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/store": "^0.96.3", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/openapi": { + "version": "0.97.5", + "license": "MIT", + "dependencies": { + "@graphql-mesh/string-interpolation": "0.5.3", + "@omnigraph/openapi": "0.97.5" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/store": "^0.96.3", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/runtime": { + "version": "0.97.4", + "license": "MIT", + "dependencies": { + "@envelop/core": "^5.0.0", + "@envelop/extended-validation": "^4.0.0", + "@envelop/graphql-jit": "^8.0.0", + "@graphql-mesh/string-interpolation": "^0.5.3", + "@graphql-tools/batch-delegate": "^9.0.0", + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/executor": "^1.2.0", + "@graphql-tools/wrap": "^10.0.0", + "@whatwg-node/fetch": "^0.9.0", + "graphql-jit": "0.8.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/store": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-inspector/core": "5.0.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/string-interpolation": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@graphql-mesh/string-interpolation/-/string-interpolation-0.5.3.tgz", + "integrity": "sha512-/R4kj3M1uqUie/7RZ58zgRrT8RBrDsCCR6ii00s62DbLsl+jZYOZFyTqHGsFbP7L7aHnl0fo1dwhEJIs+rjCLg==", + "dependencies": { + "dayjs": "1.11.10", + "json-pointer": "0.6.2", + "lodash.get": "4.4.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/transform-filter-schema": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/wrap": "^10.0.0", + "minimatch": "^9.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/transform-naming-convention": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/wrap": "^10.0.0", + "change-case": "^4.1.2", + "graphql-scalars": "^1.22.4", + "lower-case": "^2.0.2", + "upper-case": "^2.0.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.5.0" + } + }, + "node_modules/@graphql-mesh/transform-prefix": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/wrap": "^10.0.0", + "graphql-scalars": "^1.22.4" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/transform-type-merging": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/stitching-directives": "^3.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/types": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-tools/batch-delegate": "^9.0.0", + "@graphql-tools/delegate": "^10.0.0", + "@graphql-typed-document-node/core": "^3.2.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/store": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-mesh/utils": { + "version": "0.96.3", + "license": "MIT", + "dependencies": { + "@graphql-mesh/string-interpolation": "^0.5.3", + "@graphql-tools/delegate": "^10.0.0", + "@whatwg-node/fetch": "^0.9.13", + "dset": "^3.1.2", + "js-yaml": "^4.1.0", + "lodash.get": "^4.4.2", + "lodash.topath": "^4.5.2", + "tiny-lru": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/types": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@graphql-tools/batch-delegate": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-delegate/-/batch-delegate-9.0.1.tgz", + "integrity": "sha512-a5DWcrjPLvLCT1PvDetWfwxWHAxupGW9xDesMJOcM7NvBktBWMDheD0qHHvEBLmCL4dimWpvilmQaowQx7oJJw==", + "dependencies": { + "@graphql-tools/delegate": "^10.0.4", + "@graphql-tools/utils": "^10.0.13", + "dataloader": "2.2.2", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/batch-execute": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.4.tgz", + "integrity": "sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w==", + "dependencies": { + "@graphql-tools/utils": "^10.0.13", + "dataloader": "^2.2.2", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/code-file-loader": { + "version": "8.1.0", + "license": "MIT", + "dependencies": { + "@graphql-tools/graphql-tag-pluck": "8.2.0", + "@graphql-tools/utils": "^10.0.13", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/delegate": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.4.tgz", + "integrity": "sha512-WswZRbQZMh/ebhc8zSomK9DIh6Pd5KbuiMsyiKkKz37TWTrlCOe+4C/fyrBFez30ksq6oFyCeSKMwfrCbeGo0Q==", + "dependencies": { + "@graphql-tools/batch-execute": "^9.0.4", + "@graphql-tools/executor": "^1.2.1", + "@graphql-tools/schema": "^10.0.3", + "@graphql-tools/utils": "^10.0.13", + "dataloader": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/schema": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.3.tgz", + "integrity": "sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==", + "dependencies": { + "@graphql-tools/merge": "^9.0.3", + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.4.tgz", + "integrity": "sha512-aCO/5LEAwyTWObAAfpLlwAjaOjTxRX6YNXcGW62mglQhPBy+j0fTc4desci/4nJ49l8FWETaTG0MZ1G/PqQslg==", + "dependencies": { + "@graphql-tools/utils": "^10.1.1", + "@graphql-typed-document-node/core": "3.2.0", + "@repeaterjs/repeater": "^3.0.4", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.0.2", + "@types/ws": "^8.0.0", + "graphql-ws": "^5.14.0", + "isomorphic-ws": "^5.0.0", + "tslib": "^2.4.0", + "ws": "^8.13.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-http": { + "version": "1.0.7", + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.0.2", + "@repeaterjs/repeater": "^3.0.4", + "@whatwg-node/fetch": "^0.9.0", + "extract-files": "^11.0.0", + "meros": "^1.2.1", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-legacy-ws": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "@types/ws": "^8.0.0", + "isomorphic-ws": "^5.0.0", + "tslib": "^2.4.0", + "ws": "^8.15.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/federation": { + "version": "1.1.13", + "license": "MIT", + "dependencies": { + "@graphql-tools/delegate": "^10.0.1", + "@graphql-tools/executor-http": "^1.0.6", + "@graphql-tools/merge": "^9.0.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/stitch": "^9.0.2", + "@graphql-tools/utils": "^10.0.0", + "@graphql-tools/wrap": "^10.0.0", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "@apollo/client": "~3.2.5 || ~3.3.0 || ~3.4.0 || ~3.5.0 || ~3.6.0 || ~3.7.0 || ~3.8.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/graphql-file-loader": { + "version": "8.0.0", + "license": "MIT", + "dependencies": { + "@graphql-tools/import": "7.0.0", + "@graphql-tools/utils": "^10.0.0", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck": { + "version": "8.2.0", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.22.9", + "@babel/parser": "^7.16.8", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8", + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/import": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "resolve-from": "5.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/load": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.11", + "p-limit": "3.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/merge": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.3.tgz", + "integrity": "sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==", + "dependencies": { + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/optimize": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema": { + "version": "10.0.2", + "license": "MIT", + "dependencies": { + "@graphql-tools/merge": "^9.0.1", + "@graphql-tools/utils": "^10.0.10", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/stitch": { + "version": "9.0.3", + "license": "MIT", + "dependencies": { + "@graphql-tools/batch-delegate": "^9.0.0", + "@graphql-tools/delegate": "^10.0.1", + "@graphql-tools/executor": "^1.0.0", + "@graphql-tools/merge": "^9.0.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "@graphql-tools/wrap": "^10.0.0", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.11" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/stitching-directives": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/url-loader": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/executor-graphql-ws": "^1.0.0", + "@graphql-tools/executor-http": "^1.0.5", + "@graphql-tools/executor-legacy-ws": "^1.0.0", + "@graphql-tools/utils": "^10.0.0", + "@graphql-tools/wrap": "^10.0.0", + "@types/ws": "^8.0.0", + "@whatwg-node/fetch": "^0.9.0", + "isomorphic-ws": "^5.0.0", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.11", + "ws": "^8.12.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/utils": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.1.2.tgz", + "integrity": "sha512-fX13CYsDnX4yifIyNdiN0cVygz/muvkreWWem6BBw130+ODbRRgfiVveL0NizCEnKXkpvdeTy9Bxvo9LIKlhrw==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/wrap": { + "version": "10.0.1", + "license": "MIT", + "dependencies": { + "@graphql-tools/delegate": "^10.0.3", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "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 || ^17.0.0" + } + }, + "node_modules/@graphql-yoga/logger": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "tslib": "^2.5.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@graphql-yoga/plugin-persisted-operations": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@graphql-tools/utils": "^10.0.0", + "graphql": "^15.2.0 || ^16.0.0", + "graphql-yoga": "^5.1.1" + } + }, + "node_modules/@graphql-yoga/subscription": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@graphql-yoga/typed-event-target": "^3.0.0", + "@repeaterjs/repeater": "^3.0.4", + "@whatwg-node/events": "^0.1.0", + "tslib": "^2.5.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@graphql-yoga/typed-event-target": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@repeaterjs/repeater": "^3.0.4", + "tslib": "^2.5.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@json-schema-tools/meta-schema": { + "version": "1.7.0", + "license": "Apache-2.0" + }, + "node_modules/@kamilkisiela/fast-url-parser": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz", + "integrity": "sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==" + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/are-we-there-yet": { + "version": "2.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/brace-expansion": { + "version": "1.1.11", + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/gauge": { + "version": "3.0.2", + "license": "ISC", + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/minimatch": { + "version": "3.1.2", + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/npmlog": { + "version": "5.0.1", + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": { + "version": "3.0.2", + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/signal-exit": { + "version": "3.0.7", + "license": "ISC", + "optional": true + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC", + "optional": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.0", + "license": "ISC", + "optional": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/agent-base": { + "version": "7.1.0", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { + "version": "7.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.2.0", + "license": "ISC", + "optional": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "license": "ISC", + "optional": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/fs/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC", + "optional": true + }, + "node_modules/@omnigraph/json-schema": { + "version": "0.97.4", + "license": "MIT", + "dependencies": { + "@graphql-mesh/string-interpolation": "0.5.3", + "@json-schema-tools/meta-schema": "1.7.0", + "@whatwg-node/fetch": "^0.9.0", + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "dset": "3.1.3", + "graphql-compose": "9.0.10", + "graphql-scalars": "^1.22.4", + "json-machete": "0.97.1", + "pascal-case": "3.1.2", + "qs": "6.11.2", + "to-json-schema": "0.2.5", + "url-join": "4.0.1" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "@graphql-tools/utils": "^9.2.1 || ^10.0.0", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@omnigraph/openapi": { + "version": "0.97.5", + "license": "MIT", + "dependencies": { + "@graphql-mesh/string-interpolation": "^0.5.3", + "@omnigraph/json-schema": "^0.97.4", + "change-case": "^4.1.2", + "json-machete": "^0.97.1", + "openapi-types": "^12.1.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@graphql-mesh/cross-helpers": "^0.4.1", + "@graphql-mesh/types": "^0.96.3", + "@graphql-mesh/utils": "^0.96.3", + "graphql": "*", + "tslib": "^2.4.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@repeaterjs/repeater": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", + "integrity": "sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.11.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", + "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/fetch": { + "version": "0.9.17", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.17.tgz", + "integrity": "sha512-TDYP3CpCrxwxpiNY0UMNf096H5Ihf67BK1iKGegQl5u9SlpEDYrvnV71gWBGJm+Xm31qOy8ATgma9rm8Pe7/5Q==", + "dependencies": { + "@whatwg-node/node-fetch": "^0.5.7", + "urlpattern-polyfill": "^10.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/node-fetch": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.10.tgz", + "integrity": "sha512-KIAHepie/T1PRkUfze4t+bPlyvpxlWiXTPtcGlbIZ0vWkBJMdRmCg4ZrJ2y4XaO1eTPo1HlWYUuj1WvoIpumqg==", + "dependencies": { + "@kamilkisiela/fast-url-parser": "^1.1.4", + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@whatwg-node/server": { + "version": "0.9.24", + "license": "MIT", + "dependencies": { + "@whatwg-node/fetch": "^0.9.10", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@wry/caches": { + "version": "1.0.1", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wry/context": { + "version": "0.7.4", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wry/equality": { + "version": "0.5.7", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wry/trie": { + "version": "0.5.0", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "license": "ISC", + "optional": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "license": "MIT", + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==" + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/aproba": { + "version": "2.0.0", + "license": "ISC", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "4.0.2", + "license": "ISC", + "optional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "license": "MIT" + }, + "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/array-union": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/auto-bind": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "license": "MIT" + }, + "node_modules/babel-preset-fbjs": { + "version": "3.4.0", + "license": "MIT", + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/cacache": { + "version": "18.0.2", + "license": "ISC", + "optional": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.2.0", + "license": "ISC", + "optional": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001600", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", + "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/capital-case": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all": { + "version": "1.0.15", + "license": "MIT", + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "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/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/color-support": { + "version": "1.1.3", + "license": "ISC", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "license": "ISC", + "optional": true + }, + "node_modules/constant-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-inspect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", + "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/dataloader": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "license": "MIT", + "optional": true + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/detect-libc": { + "version": "2.0.2", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.4.1", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/dset": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", + "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.717", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.717.tgz", + "integrity": "sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encoding": { + "version": "0.1.13", + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "license": "MIT", + "optional": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "license": "Apache-2.0", + "optional": true + }, + "node_modules/extract-files": { + "version": "11.0.0", + "license": "MIT", + "engines": { + "node": "^12.20 || >= 14.13" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + } + }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-json-stringify": { + "version": "1.21.0", + "license": "MIT", + "dependencies": { + "ajv": "^6.11.0", + "deepmerge": "^4.2.2", + "string-similarity": "^4.0.1" + } + }, + "node_modules/fast-json-stringify/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/fast-json-stringify/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "node_modules/fastq": { + "version": "1.17.0", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "3.0.5", + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^1.0.35" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "dependencies": { + "micromatch": "^4.0.2" + } + }, + "node_modules/foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==" + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "5.0.1", + "license": "ISC", + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^4.0.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "license": "MIT", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-compose": { + "version": "9.0.10", + "license": "MIT", + "dependencies": { + "graphql-type-json": "0.3.2" + } + }, + "node_modules/graphql-import-node": { + "version": "0.0.5", + "license": "MIT", + "peerDependencies": { + "graphql": "*" + } + }, + "node_modules/graphql-jit": { + "version": "0.8.2", + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "fast-json-stringify": "^1.21.0", + "generate-function": "^2.3.1", + "json-schema": "^0.4.0", + "lodash.memoize": "^4.1.2", + "lodash.merge": "4.6.2", + "lodash.mergewith": "4.6.2" + }, + "peerDependencies": { + "graphql": ">=15" + } + }, + "node_modules/graphql-scalars": { + "version": "1.22.4", + "license": "MIT", + "dependencies": { + "tslib": "^2.5.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-tag": { + "version": "2.12.6", + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/graphql-type-json": { + "version": "0.3.2", + "license": "MIT", + "peerDependencies": { + "graphql": ">=0.8.0" + } + }, + "node_modules/graphql-ws": { + "version": "5.14.3", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": ">=0.11 <=16" + } + }, + "node_modules/graphql-yoga": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "@envelop/core": "^5.0.0", + "@graphql-tools/executor": "^1.0.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "@graphql-yoga/logger": "^2.0.0", + "@graphql-yoga/subscription": "^5.0.0", + "@whatwg-node/fetch": "^0.9.7", + "@whatwg-node/server": "^0.9.1", + "dset": "^3.1.1", + "lru-cache": "^10.0.0", + "tslib": "^2.5.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "graphql": "^15.2.0 || ^16.0.0" + } + }, + "node_modules/graphql-yoga/node_modules/lru-cache": { + "version": "10.2.0", + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "license": "ISC", + "optional": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "license": "BSD-2-Clause", + "optional": true + }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.0", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/immutable": { + "version": "3.7.6", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=12.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "optional": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "license": "MIT", + "optional": true + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "license": "MIT", + "optional": true + }, + "node_modules/is-lower-case": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/is-relative": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-upper-case": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "3.1.1", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/isomorphic-ws": { + "version": "5.0.0", + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "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==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-bigint-patch": { + "version": "0.0.8", + "license": "MIT" + }, + "node_modules/json-machete": { + "version": "0.97.1", + "license": "MIT", + "dependencies": { + "@json-schema-tools/meta-schema": "1.7.0", + "cross-inspect": "1.0.0", + "json-pointer": "0.6.2", + "to-json-schema": "0.2.5", + "url-join": "4.0.1" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "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-pointer": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", + "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", + "dependencies": { + "foreach": "^2.0.4" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/json-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "dependencies": { + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "dependencies": { + "graceful-fs": "^4.1.11" + } + }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.keys": { + "version": "4.2.0", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "license": "MIT" + }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==" + }, + "node_modules/lodash.without": { + "version": "4.4.0", + "license": "MIT" + }, + "node_modules/lodash.xor": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lower-case-first": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "license": "MIT", + "optional": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "license": "ISC" + }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/meros": { + "version": "1.3.0", + "license": "MIT", + "engines": { + "node": ">=13" + }, + "peerDependencies": { + "@types/node": ">=13" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC", + "optional": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC", + "optional": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC", + "optional": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC", + "optional": true + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nan": { + "version": "2.18.0", + "license": "MIT", + "optional": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp": { + "version": "10.0.1", + "license": "MIT", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/abbrev": { + "version": "2.0.0", + "license": "ISC", + "optional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/nopt": { + "version": "7.2.0", + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC", + "optional": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-libcurl": { + "version": "3.0.1-0", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "1.0.11", + "env-paths": "2.2.0", + "nan": "2.18.0", + "node-gyp": "10.0.1", + "npmlog": "7.0.1", + "rimraf": "5.0.5", + "tslib": "2.6.2" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/node-libcurl/node_modules/env-paths": { + "version": "2.2.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/nopt": { + "version": "5.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npmlog": { + "version": "7.0.1", + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "^4.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^5.0.0", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "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", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openapi-types": { + "version": "12.1.3", + "license": "MIT" + }, + "node_modules/optimism": { + "version": "0.18.0", + "license": "MIT", + "optional": true, + "dependencies": { + "@wry/caches": "^1.0.0", + "@wry/context": "^0.7.0", + "@wry/trie": "^0.4.3", + "tslib": "^2.3.0" + } + }, + "node_modules/optimism/node_modules/@wry/trie": { + "version": "0.4.3", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "license": "MIT", + "optional": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/patch-package": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", + "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", + "dependencies": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^4.1.2", + "ci-info": "^3.7.0", + "cross-spawn": "^7.0.3", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^9.0.0", + "json-stable-stringify": "^1.0.2", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.6", + "open": "^7.4.2", + "rimraf": "^2.6.3", + "semver": "^7.5.3", + "slash": "^2.0.0", + "tmp": "^0.0.33", + "yaml": "^2.2.2" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": ">=14", + "npm": ">5" + } + }, + "node_modules/patch-package/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/patch-package/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/patch-package/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/patch-package/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/patch-package/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/patch-package/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/patch-package/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/patch-package/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/patch-package/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/patch-package/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/patch-package/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/patch-package/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/patch-package/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-root": { + "version": "0.1.1", + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "license": "ISC", + "optional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "license": "MIT", + "optional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "license": "MIT", + "optional": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.2", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "16.13.1", + "license": "MIT", + "optional": true + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "license": "MIT" + }, + "node_modules/relay-runtime": { + "version": "12.0.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0", + "invariant": "^2.2.4" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/response-iterator": { + "version": "0.2.6", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "5.0.5", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT", + "optional": true + }, + "node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/signedsource": { + "version": "1.0.0", + "license": "BSD-3-Clause" + }, + "node_modules/slash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "license": "MIT", + "optional": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/spl-ts": { + "version": "1.0.0", + "resolved": "file:local-pkg/spl-ts-1.0.0.tgz", + "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, + "node_modules/sponge-case": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/ssri": { + "version": "10.0.5", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-similarity": { + "version": "4.0.4", + "license": "ISC" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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/strip-ansi-cjs": { + "name": "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/strip-bom": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/swap-case": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "license": "ISC", + "optional": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "license": "MIT", + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC", + "optional": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-lru": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.2.5.tgz", + "integrity": "sha512-JpqM0K33lG6iQGKiigcwuURAKZlq6rHXfrgeL4/I8/REoyJTGU+tEMszvT/oTRVHG2OiylhGDjqPp1jWMlr3bw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/title-case": { + "version": "3.0.3", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-json-schema": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "lodash.isequal": "^4.5.0", + "lodash.keys": "^4.2.0", + "lodash.merge": "^4.6.2", + "lodash.omit": "^4.5.0", + "lodash.without": "^4.4.0", + "lodash.xor": "^4.5.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/ts-invariant": { + "version": "0.10.3", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/typescript": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", + "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.37", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unixify": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT", + "optional": true + }, + "node_modules/uWebSockets.js": { + "version": "20.43.0", + "resolved": "git+ssh://git@github.com/uNetworking/uWebSockets.js.git#1977b5039938ad863d42fc4958d48c17e5a1fa06", + "license": "Apache-2.0" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "license": "MIT" + }, + "node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "engines": { + "node": ">=12" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "4.0.0", + "license": "ISC", + "optional": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "license": "ISC" + }, + "node_modules/wide-align": { + "version": "1.1.5", + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.16.0", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "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/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/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/yn": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "license": "MIT", + "optional": true + }, + "node_modules/zen-observable-ts": { + "version": "1.2.5", + "license": "MIT", + "optional": true, + "dependencies": { + "zen-observable": "0.8.15" + } + } + } +} diff --git a/packages/graphql-mesh/package.json b/packages/graphql-mesh/package.json index c9c03f2..7e25734 100644 --- a/packages/graphql-mesh/package.json +++ b/packages/graphql-mesh/package.json @@ -1,9 +1,10 @@ { "scripts": { + "build": "npm run downloadswaggers && mesh build", + "downloadswaggers": "NODE_TLS_REJECT_UNAUTHORIZED='0' sucrase-node ./scripts/downloadSources.ts", "postinstall": "patch-package", - "start": "mesh dev", - "build": "mesh build", - "serve": "sucrase-node serve.ts" + "serve": "npm run build && sucrase-node serve.ts", + "start": "npm run downloadswaggers && mesh dev" }, "dependencies": { "@graphql-mesh/cache-localforage": "^0.96.2", @@ -19,11 +20,12 @@ "@graphql-tools/utils": "^10.0.12", "glob": "^10.3.10", "graphql": "^16.8.1", - "spl-ts": "*" + "patch-package": "^8.0.0", + "spl-ts": "file:./local-pkg/spl-ts-1.0.0.tgz", + "sucrase": "^3.35.0" }, "devDependencies": { "@graphql-mesh/types": "^0.96.3", - "antlr4ts": "^0.5.0-alpha.4", - "patch-package": "^8.0.0" + "antlr4ts": "^0.5.0-alpha.4" } } diff --git a/packages/graphql-mesh/scripts/downloadSources.ts b/packages/graphql-mesh/scripts/downloadSources.ts new file mode 100644 index 0000000..7236fd8 --- /dev/null +++ b/packages/graphql-mesh/scripts/downloadSources.ts @@ -0,0 +1,53 @@ +import { readFileOrUrl, DefaultLogger } from '@graphql-mesh/utils' +import { getConfig } from '../helpers' +import { writeFileSync, existsSync, mkdirSync } from 'node:fs' +import { fetch } from '@whatwg-node/fetch' +const logger = new DefaultLogger() + +// Load the config file and retrieve the sources with an OpenAPI handler +let config = getConfig() + +const sources = config?.sources?.filter((source) => source?.handler?.openapi) || [] +const swaggers = sources.map((source) => source?.handler?.openapi?.source) || [] + +/** + * Download the swagger from the given URL and save it to the sources folder + * @param {string} url + */ +const downSwaggerFromUrl = async (url: string): Promise => { + try { + const content: Record = await readFileOrUrl(url, { + allowUnknownExtensions: true, + cwd: '.', + fetch: fetch, + importFn: null, + logger: logger + }) + const fileName = url.split('/').pop() + if (fileName) { + const filePath = `./sources/${fileName}` + writeFileSync(filePath, JSON.stringify(content, null, 2), 'utf8') + } + } catch (error) { + logger.error(`Failed to load ${url}`, error) + } +} + +/** + * Download all the swaggers from the given URLs + * @param {string[]} swaggers + */ +const downloadSwaggers = (swaggers: string[]) => { + logger.info(`Downloading ${swaggers.length} swaggers sources...`) + + // Create the sources folder if it doesn't exist + if (!existsSync('./sources')) { + mkdirSync('./sources') + } + + if (swaggers.length) { + swaggers.forEach(downSwaggerFromUrl) + } +} + +downloadSwaggers(swaggers) diff --git a/packages/graphql-mesh/serve.ts b/packages/graphql-mesh/serve.ts index 1678054..cc7b236 100644 --- a/packages/graphql-mesh/serve.ts +++ b/packages/graphql-mesh/serve.ts @@ -1,8 +1,11 @@ import { createServer } from 'node:http' import { createBuiltMeshHTTPHandler } from './.mesh' +import { getConfig } from './helpers' +const config = getConfig() || {} -const PORT = process.env.PORT ?? 4000 +const PORT = config.serve?.port ?? 4000 +const HOSTNAME = config.serve?.hostname ?? 'http://0.0.0.0' const server = createServer(createBuiltMeshHTTPHandler()) -console.log(`🚀 Server ready at http://0.0.0.0:${PORT}/graphql`) +console.log(`🚀 Server ready at ${HOSTNAME}:${PORT}/graphql`) server.listen(PORT) diff --git a/packages/graphql-mesh/setup.ts b/packages/graphql-mesh/setup.ts new file mode 100644 index 0000000..0d45c75 --- /dev/null +++ b/packages/graphql-mesh/setup.ts @@ -0,0 +1,353 @@ +import { globSync } from 'glob' +import { readFileSync } from 'node:fs' +import type { Catalog, Spec, SwaggerName, Resolvers, ConfigExtension } from './types' +import { + getConfig, + mergeObjects, + trimLinks, + anonymizePathAndGetParams, + getOpenapiEnpoint, + getAvailableTypes +} from './helpers' + +// Load the config file +const config = getConfig() + +const SWAGGERS: SwaggerName[] = globSync('./sources/**/*.json').sort((a, b) => a.localeCompare(b)) + +const specsRaw = SWAGGERS.map( + (swagger) => JSON.parse(readFileSync(swagger, { encoding: 'utf-8' })) +) + +const catalog = specsRaw.reduce((acc, spec, i) => { + Object.keys(spec.paths).forEach((path) => { + const query = spec.paths[path]?.get + const content = query?.responses['200']?.['content'] + const ref = content?.['application/json']?.schema['$ref'] ?? content?.['*/*']?.schema['$ref'] + const schema = ref?.replace('#/components/schemas/', '') + if (schema) { + acc[path] = [query?.operationId, schema, SWAGGERS[i]] + } + }) + return acc +}, {} as Catalog) + +let interfacesWithChildren = {} +specsRaw.forEach((s) => { + const { schemas } = s.components + const entries = Object.entries(schemas).filter(([_, value]) => + Object.keys(value).includes('discriminator') + ) + for (const [schemaKey, schemaValue] of entries) { + const mapping = schemaValue['discriminator']['mapping'] ?? {} + const mappingTypes = [] + mappingTypes.push( + ...Object.keys(mapping) + .filter((k) => k !== schemaKey) + .map((k) => mapping[k].replace('#/components/schemas/', '')) + ) + if (interfacesWithChildren[schemaKey] === undefined) { + interfacesWithChildren[schemaKey] = mappingTypes + } else { + mappingTypes.forEach((type) => { + if (!interfacesWithChildren[schemaKey].includes(type)) { + interfacesWithChildren[schemaKey].push(type) + } + }) + } + } +}) + +export const openapiSources = + SWAGGERS.map((source) => ({ + name: source, + handler: { + openapi: { + source, + endpoint: getOpenapiEnpoint(source, config) || '{env.ENDPOINT}', + ignoreErrorResponses: true, + operationHeaders: { + Authorization: `{context.headers["authorization"]}` + } + } + } + })) || [] + +/** + * This function creates, for a Swagger file, the additional typeDefs for each schema having at least one x-link, and one resolver for each x-link + * @param swagger, one unique Swagger file + * @param availableTypes, a list of the types that can be extended via additionalTypeDefs + * @returns an object with two elements: the additional typeDefs and resolvers of the Swagger file + */ +function createTypeDefsAndResolversFromOneSwagger( + spec: Spec, + availableTypes: string[] +): ConfigExtension { + if (!spec.components) { + return { + typeDefs: '', + resolvers: {} + } + } + + const { schemas } = spec.components + + if (!schemas) { + console.warn('No schemas found in the swagger files') + + return { + typeDefs: '', + resolvers: {} + } + } + + let typeDefs = '' + + const resolvers: Resolvers = {} + + const isKeyXlink = ([key, _value]) => key === 'x-links' + + Object.entries(schemas).forEach(([schemaKey, schemaValue]) => { + Object.entries(schemaValue) + .filter(isKeyXlink) + .forEach(([, schema]) => { + const trimedSchemaKey = trimLinks(schemaKey) + const objToExtend = Object.keys(interfacesWithChildren).includes(trimedSchemaKey) + ? 'interface' + : 'type' + + typeDefs += `extend ${objToExtend} ${trimedSchemaKey} {\n` + + const xLinksList: { + rel: string + type: string + hrefPattern: string + }[] = schema + let targetedSwaggerName = 'SWAGGER_NOT_FOUND' + + let objResolver: object = {} + let _linksItems = '' + for (let x = 0; x < xLinksList.length; x++) { + const xLink = xLinksList[x] + const xLinkName = xLink.rel.replaceAll('-', '_').replaceAll(' ', '') + const xLinkPath = xLink.hrefPattern + let targetedOperationName = 'NAME_NOT_FOUND' + let targetedOperationType = 'TYPE_NOT_FOUND' + + const { params: paramsFromLink, anonymizedPath: anonymizedPathFromLink } = + anonymizePathAndGetParams(xLinkPath) + + const matchedPathsForLinks = Object.keys(catalog).filter( + (key) => anonymizePathAndGetParams(key).anonymizedPath === anonymizedPathFromLink + ) + + if (matchedPathsForLinks.length) { + ;[targetedOperationName, targetedOperationType, targetedSwaggerName] = + catalog[matchedPathsForLinks[0]] + if (!availableTypes.includes(targetedOperationType)) { + targetedOperationType = 'TYPE_NOT_FOUND' + } + } + + const paramsToSend: string[] = [] + matchedPathsForLinks.forEach((key) => + paramsToSend.push(...anonymizePathAndGetParams(key).params) + ) + + const query = targetedOperationName + const type = targetedOperationType + const source = targetedSwaggerName + + if ( + targetedOperationType !== 'TYPE_NOT_FOUND' && + !(trimedSchemaKey !== targetedOperationType && xLinkName === 'self') + ) { + typeDefs += `${xLinkName}: ${targetedOperationType}\n` + + _linksItems += /* GraphQL */ ` + ${xLinkName} + { + href + } + ` + objResolver[xLinkName] = { + selectionSet: /* GraphQL */ ` + { + _links { + ${_linksItems} + } + } + `, + resolve: (root: any, args: any, context: any, info: any) => { + const hateoasLink: any = Object.entries(root._links).find( + (item) => item[0] === xLinkName + )?.[1] + + if (hateoasLink?.href) { + root = { ...root, followLink: hateoasLink.href } + } + + if (paramsToSend.length) { + paramsToSend.forEach((param, i) => { + args[param] = root[param] || root[paramsFromLink[i]] || '' + }) + } + + return context[source].Query[query]({ + root, + args, + context, + info + }) + } + } + } + } + + /** Resolver for _linksList */ + if (Object.keys(objResolver).length) { + typeDefs += /* GraphQL */ `_linksList: [LinkItem]\n` + objResolver['_linksList'] = { + selectionSet: /* GraphQL */ ` + { + _links { + ${_linksItems} + } + } + `, + resolve: (root: any) => { + return Object.keys(root._links) + .filter((key) => root._links[key]?.href) + .map((key) => ({ + rel: key, + href: root._links[key]?.href + })) + } + } + } + + typeDefs += '}\n' + typeDefs = typeDefs.replace(`extend ${objToExtend} ${trimedSchemaKey} {\n}\n`, '') + + if (targetedSwaggerName !== 'SWAGGER_NOT_FOUND') { + resolvers[trimedSchemaKey] = objResolver + } + + if ( + objToExtend === 'interface' && + typeDefs !== '' && + resolvers[trimedSchemaKey] !== undefined + ) { + let varToCompare = trimedSchemaKey + interfacesWithChildren[trimedSchemaKey].forEach((type) => { + const regex = new RegExp(` ${varToCompare} `, 'g') + if (Object.keys(interfacesWithChildren).includes(type)) { + typeDefs += typeDefs + .match(/[\s\S]*(^[\s\S]*{[\s\S]*)/m)![1] + .replace('type', 'interface') + .replace(regex, ` ${type} `) + varToCompare = type + resolvers[type] ??= {} + for (const key in resolvers[trimedSchemaKey]) { + resolvers[type][key] = resolvers[trimedSchemaKey][key] + } + + interfacesWithChildren[type].forEach((t) => { + const regex2 = new RegExp(` ${varToCompare} `, 'g') + typeDefs += typeDefs + .match(/[\s\S]*(^[\s\S]*{[\s\S]*)/m)![1] + .replace('interface', 'type') + .replace(regex2, ` ${t} `) + varToCompare = t + + resolvers[t] ??= {} + for (const key in resolvers[type]) { + resolvers[t][key] = resolvers[type][key] + } + }) + } else { + typeDefs += typeDefs + .match(/[\s\S]*(^[\s\S]*{[\s\S]*)/m)![1] + .replace('interface', 'type') + .replace(regex, ` ${type} `) + varToCompare = type + + resolvers[type] ??= {} + for (const key in resolvers[trimedSchemaKey]) { + resolvers[type][key] = resolvers[trimedSchemaKey][key] + } + } + }) + + resolvers[trimedSchemaKey].__resolveType = (res, _, schema) => { + if (res.__typename !== undefined) { + return res.__typename + } else { + if (schema.parentType._fields[schema.fieldName] !== undefined) { + //TODO: + return interfacesWithChildren[ + schema.parentType._fields[schema.fieldName].type.name + ][ + interfacesWithChildren[schema.parentType._fields[schema.fieldName].type.name] + .length - 1 + ] + } else { + return interfacesWithChildren[schema.fieldName][0] + } + } + } + } + }) + }) + + return { typeDefs, resolvers } +} + +/** + * This function merges the additional typeDefs and resolvers of each Swagger file into one + * @param specsList, a list of Swagger files + * @returns an object with two elements: the merged typeDefs and the merged resolvers + */ +function createTypeDefsAndResolvers(specs: Spec[]) { + const availableTypes = getAvailableTypes(specs) + return specs.reduce( + (acc, spec) => { + const { typeDefs, resolvers } = createTypeDefsAndResolversFromOneSwagger(spec, availableTypes) + acc.typeDefs += typeDefs + acc.resolvers = mergeObjects(acc.resolvers, resolvers) + return acc + }, + { typeDefs: '', resolvers: {} } as ConfigExtension + ) +} + +const typeDefsAndResolvers = createTypeDefsAndResolvers(specsRaw) + +typeDefsAndResolvers.typeDefs += /* GraphQL */ ` + directive @SPL(query: String) on FIELD +` + +typeDefsAndResolvers.typeDefs += /* GraphQL */ ` + directive @upper on FIELD +` + +typeDefsAndResolvers.typeDefs += /* GraphQL */ ` + type LinkItem { + rel: String + href: String + } +` +typeDefsAndResolvers.typeDefs += /* GraphQL */ ` + input Header { + key: String + value: String + } + + directive @headers(input: [Header]) on FIELD +` + +export const additionalTypeDefs = typeDefsAndResolvers.typeDefs +export const resolvers = typeDefsAndResolvers.resolvers +export const defaultConfig = config +export const othersSources = + config.sources?.filter((source: { handler: { openapi: any } }) => !source?.handler?.openapi) || [] diff --git a/packages/graphql-mesh/types.d.ts b/packages/graphql-mesh/types.d.ts index 3fb37b7..277de64 100644 --- a/packages/graphql-mesh/types.d.ts +++ b/packages/graphql-mesh/types.d.ts @@ -1,5 +1,4 @@ import { type OpenAPIV3 } from 'openapi-types' -// import { Resolvers as _Resolvers } from './.mesh' import { AdditionalStitchingResolverObject, @@ -12,6 +11,7 @@ type Resolvers = | AdditionalStitchingResolverObject | AdditionalStitchingBatchResolverObject | AdditionalSubscriptionObject + | {} type SwaggerName = string type Spec = OpenAPIV3.Document diff --git a/packages/spl-ts/package.json b/packages/spl-ts/package.json index 9aaadaf..574f887 100644 --- a/packages/spl-ts/package.json +++ b/packages/spl-ts/package.json @@ -1,6 +1,6 @@ { "name": "spl-ts", - "version": "0.0.1", + "version": "1.0.0", "type": "module", "main": "_build/cjs/index.js", "module": "_build/esm/index.js", @@ -15,13 +15,13 @@ "_build/**/*" ], "scripts": { - "dev": "vite", - "build": "rm -rf _build && npm run build:esm && npm run build:cjs && node ./scripts/prepare-package-json", - "build:esm": "tsc --project tsconfig-esm.json", + "antlr4ts": "antlr4ts -visitor src/main/antlr/SPL.g4", "build:cjs": "tsc --project tsconfig-cjs.json", - "preview": "vite preview", - "test": "vitest", - "antlr4ts": "antlr4ts -visitor src/main/antlr/SPL.g4" + "build:esm": "tsc --project tsconfig-esm.json", + "build": "rm -rf _build && npm run build:esm && npm run build:cjs && node ./scripts/prepare-package-json", + "dev": "vite", + "pack": "npm run build && npm pack --pack-destination ../graphql-mesh/local-pkg", + "test": "vitest" }, "devDependencies": { "@types/node": "^20.11.19", From 3d9cc7c0ecf970a12c7fd3595cf52e9ae002b715 Mon Sep 17 00:00:00 2001 From: Mbaye THIAM Date: Wed, 27 Mar 2024 15:01:50 +0100 Subject: [PATCH 3/9] =?UTF-8?q?=F0=9F=97=91=EF=B8=8F=20remove=20publish=20?= =?UTF-8?q?library=20action?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/npm-publish.yml | 37 ------------------------------- 1 file changed, 37 deletions(-) delete mode 100644 .github/workflows/npm-publish.yml diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml deleted file mode 100644 index 8fb0d25..0000000 --- a/.github/workflows/npm-publish.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: npm publish - -on: - # release: - # types: [published] - push: - tags: - - '*' - -jobs: - publish: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: 18 - registry-url: https://registry.npmjs.org/ - - - name: Install dependencies - run: npm install - - - name: Build library - run: npm run build -w spl-ts - - - name: Determine version from tag - id: determine_version - run: echo "::set-output name=VERSION::${GITHUB_REF#refs/tags/spl-ts@}" - - - name: Publish to npm - # run: npm version "${{ steps.determine_version.outputs.VERSION }}" -w spl-ts && npm publish -w spl-ts - run: echo "Published version ${{ steps.determine_version.outputs.VERSION }}" - env: - NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }} From 57a4060eefdbffebad629c253144ddefdf720a0e Mon Sep 17 00:00:00 2001 From: Mbaye THIAM Date: Thu, 28 Mar 2024 16:11:39 +0100 Subject: [PATCH 4/9] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E2=99=BB=EF=B8=8F=20s?= =?UTF-8?q?plit=20directive=20into=20packages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/unit-tests.yml | 30 +++ .gitignore | 4 + package-lock.json | 198 ++++++++++++++++-- package.json | 8 +- packages/graphql-mesh/.gitignore | 1 + packages/graphql-mesh/.meshrc.ts | 7 +- packages/graphql-mesh/config.yaml | 12 -- packages/graphql-mesh/package-lock.json | 32 ++- packages/graphql-mesh/package.json | 4 +- packages/graphql-mesh/setup.ts | 4 + packages/headers-directive/.gitignore | 8 + packages/headers-directive/package.json | 35 ++++ .../scripts/prepare-package-json.js | 0 packages/headers-directive/src/index.ts | 58 +++++ .../tsconfig-cjs.json | 0 .../tsconfig-esm.json | 0 .../tsconfig.json | 0 packages/no-auth-directive/.gitignore | 8 + packages/no-auth-directive/package.json | 35 ++++ .../scripts/prepare-package-json.js | 29 +++ .../src/index.ts | 39 +--- packages/no-auth-directive/tsconfig-cjs.json | 7 + packages/no-auth-directive/tsconfig-esm.json | 7 + packages/no-auth-directive/tsconfig.json | 30 +++ packages/spl-directive/.gitignore | 8 + .../{spl-ts => spl-directive}/package.json | 2 +- .../scripts/prepare-package-json.js | 29 +++ packages/spl-directive/src/index.ts | 54 +++++ .../src/main/OperandReader.ts | 0 .../src/main/PropertyWalker.ts | 0 .../src/main/antlr/SPL.g4 | 0 .../src/main/antlr/SPL.interp | 0 .../src/main/antlr/SPL.tokens | 0 .../src/main/antlr/SPLLexer.interp | 0 .../src/main/antlr/SPLLexer.tokens | 0 .../src/main/antlr/SPLLexer.ts | 0 .../src/main/antlr/SPLListener.ts | 0 .../src/main/antlr/SPLParser.ts | 0 .../src/main/antlr/SPLQueryToTreeConverter.ts | 0 .../src/main/antlr/SPLVisitor.ts | 0 .../src/main/functions/Concat.ts | 0 .../src/main/functions/Day.ts | 0 .../src/main/functions/EvaluateDate.ts | 0 .../main/functions/EvaluateFunctionOperand.ts | 0 .../src/main/functions/Intersection.ts | 0 .../src/main/functions/Keys.ts | 0 .../src/main/functions/Len.ts | 0 .../src/main/functions/Month.ts | 0 .../src/main/functions/Now.ts | 0 .../src/main/functions/Reverse.ts | 0 .../src/main/functions/Split.ts | 0 .../src/main/functions/Year.ts | 0 .../src/main/index.ts | 0 .../src/main/limiter/Limit.ts | 0 .../src/main/limiter/SPLLimitExtractor.ts | 0 .../src/main/predicate/SPLPredicateFilter.ts | 0 .../BooleanListBooleansOperations.ts | 0 .../predicate/operations/BooleanOperations.ts | 0 .../predicate/operations/DateOperations.ts | 0 .../predicate/operations/NumberOperations.ts | 0 .../operations/PredicateOperation.ts | 0 .../operations/StringListStringOperations.ts | 0 .../predicate/operations/StringOperations.ts | 0 .../src/main/predicate/operations/index.ts | 0 .../src/main/sorter/SPLComparatorFactory.ts | 0 .../src/main/sorter/SPLListFilterer.ts | 0 .../src/test/SPLListFilter.test.ts | 0 .../src/test/SPLPredicateFilter.test.ts | 0 packages/spl-directive/tsconfig-cjs.json | 7 + packages/spl-directive/tsconfig-esm.json | 7 + packages/spl-directive/tsconfig.json | 30 +++ .../{spl-ts => spl-directive}/vite.config.ts | 0 packages/spl-ts/.gitignore | 25 --- 73 files changed, 616 insertions(+), 102 deletions(-) create mode 100644 .github/workflows/unit-tests.yml create mode 100644 packages/headers-directive/.gitignore create mode 100644 packages/headers-directive/package.json rename packages/{spl-ts => headers-directive}/scripts/prepare-package-json.js (100%) create mode 100644 packages/headers-directive/src/index.ts rename packages/{spl-ts => headers-directive}/tsconfig-cjs.json (100%) rename packages/{spl-ts => headers-directive}/tsconfig-esm.json (100%) rename packages/{spl-ts => headers-directive}/tsconfig.json (100%) create mode 100644 packages/no-auth-directive/.gitignore create mode 100644 packages/no-auth-directive/package.json create mode 100644 packages/no-auth-directive/scripts/prepare-package-json.js rename packages/{spl-ts => no-auth-directive}/src/index.ts (60%) create mode 100644 packages/no-auth-directive/tsconfig-cjs.json create mode 100644 packages/no-auth-directive/tsconfig-esm.json create mode 100644 packages/no-auth-directive/tsconfig.json create mode 100644 packages/spl-directive/.gitignore rename packages/{spl-ts => spl-directive}/package.json (97%) create mode 100644 packages/spl-directive/scripts/prepare-package-json.js create mode 100644 packages/spl-directive/src/index.ts rename packages/{spl-ts => spl-directive}/src/main/OperandReader.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/PropertyWalker.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPL.g4 (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPL.interp (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPL.tokens (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPLLexer.interp (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPLLexer.tokens (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPLLexer.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPLListener.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPLParser.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPLQueryToTreeConverter.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/antlr/SPLVisitor.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Concat.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Day.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/EvaluateDate.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/EvaluateFunctionOperand.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Intersection.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Keys.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Len.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Month.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Now.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Reverse.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Split.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/functions/Year.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/index.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/limiter/Limit.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/limiter/SPLLimitExtractor.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/predicate/SPLPredicateFilter.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/predicate/operations/BooleanListBooleansOperations.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/predicate/operations/BooleanOperations.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/predicate/operations/DateOperations.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/predicate/operations/NumberOperations.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/predicate/operations/PredicateOperation.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/predicate/operations/StringListStringOperations.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/predicate/operations/StringOperations.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/predicate/operations/index.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/sorter/SPLComparatorFactory.ts (100%) rename packages/{spl-ts => spl-directive}/src/main/sorter/SPLListFilterer.ts (100%) rename packages/{spl-ts => spl-directive}/src/test/SPLListFilter.test.ts (100%) rename packages/{spl-ts => spl-directive}/src/test/SPLPredicateFilter.test.ts (100%) create mode 100644 packages/spl-directive/tsconfig-cjs.json create mode 100644 packages/spl-directive/tsconfig-esm.json create mode 100644 packages/spl-directive/tsconfig.json rename packages/{spl-ts => spl-directive}/vite.config.ts (100%) delete mode 100644 packages/spl-ts/.gitignore diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml new file mode 100644 index 0000000..ffd543d --- /dev/null +++ b/.github/workflows/unit-tests.yml @@ -0,0 +1,30 @@ +name: Run Unit Tests for spl-directive library + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + unit-tests: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.x] + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: npm install + + - name: Run tests + run: npm test -w spl-directive diff --git a/.gitignore b/.gitignore index 9daa824..a79d3d8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ .DS_Store node_modules +# Logs +logs +*.log +npm-debug.log* diff --git a/package-lock.json b/package-lock.json index 057b0d5..fe0c2ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,7 @@ "name": "graphql-mesh", "hasInstallScript": true, "devDependencies": { + "concurrently": "^8.2.2", "patch-package": "^8.0.0" }, "engines": { @@ -411,6 +412,17 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/runtime": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/template": { "version": "7.23.9", "license": "MIT", @@ -1627,6 +1639,48 @@ "version": "0.0.1", "license": "MIT" }, + "node_modules/concurrently": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "license": "MIT" @@ -1659,6 +1713,22 @@ "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/dayjs": { "version": "1.11.10", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", @@ -2104,6 +2174,10 @@ "he": "bin/he" } }, + "node_modules/headers-directive": { + "resolved": "packages/headers-directive", + "link": true + }, "node_modules/human-signals": { "version": "5.0.0", "dev": true, @@ -2535,6 +2609,10 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/no-auth-directive": { + "resolved": "packages/no-auth-directive", + "link": true + }, "node_modules/node-int64": { "version": "0.4.0", "license": "MIT" @@ -2881,6 +2959,11 @@ "dev": true, "license": "MIT" }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, "node_modules/require-directory": { "version": "2.1.1", "license": "MIT", @@ -2952,6 +3035,15 @@ "fsevents": "~2.3.2" } }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/semver": { "version": "7.5.4", "license": "ISC", @@ -2996,6 +3088,15 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/siginfo": { "version": "2.0.0", "dev": true, @@ -3034,8 +3135,14 @@ "node": ">=0.10.0" } }, - "node_modules/spl-ts": { - "resolved": "packages/spl-ts", + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, + "node_modules/spl-directive": { + "resolved": "packages/spl-directive", "link": true }, "node_modules/sprintf-js": { @@ -3323,6 +3430,15 @@ "node": ">=8.0" } }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -3762,8 +3878,10 @@ "@graphql-tools/utils": "^10.0.12", "glob": "^10.3.10", "graphql": "^16.8.1", + "headers-directive": "file:./local-pkg/headers-directive-1.0.0.tgz", + "no-auth-directive": "file:./local-pkg/no-auth-directive-1.0.0.tgz", "patch-package": "^8.0.0", - "spl-ts": "file:./local-pkg/spl-ts-1.0.0.tgz", + "spl-directive": "file:./local-pkg/spl-directive-1.0.0.tgz", "sucrase": "^3.35.0" }, "devDependencies": { @@ -4413,16 +4531,6 @@ "@babel/core": "^7.0.0-0" } }, - "packages/graphql-mesh/node_modules/@babel/runtime": { - "version": "7.23.9", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "packages/graphql-mesh/node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "license": "MIT", @@ -6515,6 +6623,18 @@ "tslib": "^2.0.3" } }, + "packages/graphql-mesh/node_modules/headers-directive": { + "version": "1.0.0", + "resolved": "file:packages/graphql-mesh/local-pkg/headers-directive-1.0.0.tgz", + "integrity": "sha512-iCxJ5MOi1bbb+2ebFn5n4a3ZDE7CDDMNT4moSksQrAVSxYYTXR6K6Bs1OuFD6O67FnX9IMi6cVmaLFIHmxOvWg==", + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, "packages/graphql-mesh/node_modules/hoist-non-react-statics": { "version": "3.3.2", "license": "BSD-3-Clause", @@ -7056,6 +7176,18 @@ "node": ">= 0.6" } }, + "packages/graphql-mesh/node_modules/no-auth-directive": { + "version": "1.0.0", + "resolved": "file:packages/graphql-mesh/local-pkg/no-auth-directive-1.0.0.tgz", + "integrity": "sha512-H1lWlaIUKu9Ul0M1ZpjDqGrPj6VQsJvlRwCyCsrPVCgKDKB7VW72P9B0l5ZgQUTSGxe6ZKAk351wBmbojKMsgQ==", + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, "packages/graphql-mesh/node_modules/no-case": { "version": "3.0.4", "license": "MIT", @@ -7421,10 +7553,6 @@ "node": ">= 6" } }, - "packages/graphql-mesh/node_modules/regenerator-runtime": { - "version": "0.14.1", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/relay-runtime": { "version": "12.0.0", "license": "MIT", @@ -7635,9 +7763,9 @@ "node": ">= 14" } }, - "packages/graphql-mesh/node_modules/spl-ts": { + "packages/graphql-mesh/node_modules/spl-directive": { "version": "1.0.0", - "resolved": "file:packages/graphql-mesh/local-pkg/spl-ts-1.0.0.tgz", + "resolved": "file:packages/graphql-mesh/local-pkg/spl-directive-1.0.0.tgz", "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" @@ -8020,7 +8148,37 @@ "zen-observable": "0.8.15" } }, - "packages/spl-ts": { + "packages/headers-directive": { + "version": "1.0.0", + "devDependencies": { + "@types/node": "^20.11.19", + "tslib": "^2.6.2", + "typescript": "^5.2.2" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, + "packages/no-auth-directive": { + "version": "1.0.0", + "devDependencies": { + "@types/node": "^20.11.19", + "tslib": "^2.6.2", + "typescript": "^5.2.2" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, + "packages/spl-directive": { "version": "1.0.0", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" diff --git a/package.json b/package.json index c5e4ac9..e6348ff 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,12 @@ }, "scripts": { "generate:mesh:lock": "cd packages/graphql-mesh && npm i --package-lock-only --workspaces=false", - "postinstall": "npm run postinstall -w graphql-mesh && patch-package", - "prepare": "npm run pack -w spl-ts", - "start": "npm start -w graphql-mesh", - "test": "npm test -w spl-ts" + "postinstall": "npm run postinstall -w graphql-mesh && patch-package && npm run generate:mesh:lock", + "prepare": "concurrently \"npm run pack -w spl-directive\" \"npm run pack -w headers-directive\" \"npm run pack -w no-auth-directive\"", + "start": "npm start -w graphql-mesh" }, "devDependencies": { + "concurrently": "^8.2.2", "patch-package": "^8.0.0" }, "engines": { diff --git a/packages/graphql-mesh/.gitignore b/packages/graphql-mesh/.gitignore index 22debd1..47d4976 100644 --- a/packages/graphql-mesh/.gitignore +++ b/packages/graphql-mesh/.gitignore @@ -1,2 +1,3 @@ .mesh sources +local-pkg diff --git a/packages/graphql-mesh/.meshrc.ts b/packages/graphql-mesh/.meshrc.ts index a000bd7..deb02e4 100644 --- a/packages/graphql-mesh/.meshrc.ts +++ b/packages/graphql-mesh/.meshrc.ts @@ -9,7 +9,12 @@ import { const config = { ...defaultConfig, - transforms: [{ "spl-ts": {} }, ...(defaultConfig.transforms || [])], + transforms: [ + { 'spl-directive': {} }, + { 'headers-directive': {} }, + { 'no-auth-directive': {} }, + ...(defaultConfig.transforms || []) + ], sources: [...openapiSources, ...othersSources], additionalTypeDefs: [...(defaultConfig.additionalTypeDefs || []), additionalTypeDefs], additionalResolvers: [...(defaultConfig.additionalResolvers || []), resolvers] diff --git a/packages/graphql-mesh/config.yaml b/packages/graphql-mesh/config.yaml index b19ee09..87534d5 100644 --- a/packages/graphql-mesh/config.yaml +++ b/packages/graphql-mesh/config.yaml @@ -1,15 +1,3 @@ -sources: - - name: CheckMail - handler: - openapi: - source: https://swap.int.nbyt.fr/ihm-bytel/R-CHECKEMAIL/ADRESSE-MAIL/checkMail@1.2.10/ADRESSE-MAIL-checkMail-consumer-swagger.json - - - name: FeatureToggles - handler: - openapi: - source: https://swap.int.nbyt.fr/ihm-bytel/CONFEATURE/FEATURE-TOGGLES-PROJECT/getFeatureToggles@1.0.2/FEATURE-TOGGLES-PROJECT-getFeatureToggles-consumer-swagger.json - -#transforms: [{ "@bytel/spl-ts": {} }] serve: port: 4000 hostname: "0.0.0.0" diff --git a/packages/graphql-mesh/package-lock.json b/packages/graphql-mesh/package-lock.json index 155b148..5042da9 100644 --- a/packages/graphql-mesh/package-lock.json +++ b/packages/graphql-mesh/package-lock.json @@ -19,8 +19,10 @@ "@graphql-tools/utils": "^10.0.12", "glob": "^10.3.10", "graphql": "^16.8.1", + "headers-directive": "file:./local-pkg/headers-directive-1.0.0.tgz", + "no-auth-directive": "file:./local-pkg/no-auth-directive-1.0.0.tgz", "patch-package": "^8.0.0", - "spl-ts": "file:./local-pkg/spl-ts-1.0.0.tgz", + "spl-directive": "file:./local-pkg/spl-directive-1.0.0.tgz", "sucrase": "^3.35.0" }, "devDependencies": { @@ -4136,6 +4138,18 @@ "tslib": "^2.0.3" } }, + "node_modules/headers-directive": { + "version": "1.0.0", + "resolved": "file:local-pkg/headers-directive-1.0.0.tgz", + "integrity": "sha512-iCxJ5MOi1bbb+2ebFn5n4a3ZDE7CDDMNT4moSksQrAVSxYYTXR6K6Bs1OuFD6O67FnX9IMi6cVmaLFIHmxOvWg==", + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "license": "BSD-3-Clause", @@ -4971,6 +4985,18 @@ "node": ">= 0.6" } }, + "node_modules/no-auth-directive": { + "version": "1.0.0", + "resolved": "file:local-pkg/no-auth-directive-1.0.0.tgz", + "integrity": "sha512-H1lWlaIUKu9Ul0M1ZpjDqGrPj6VQsJvlRwCyCsrPVCgKDKB7VW72P9B0l5ZgQUTSGxe6ZKAk351wBmbojKMsgQ==", + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, "node_modules/no-case": { "version": "3.0.4", "license": "MIT", @@ -6006,9 +6032,9 @@ "node": ">= 14" } }, - "node_modules/spl-ts": { + "node_modules/spl-directive": { "version": "1.0.0", - "resolved": "file:local-pkg/spl-ts-1.0.0.tgz", + "resolved": "file:local-pkg/spl-directive-1.0.0.tgz", "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" diff --git a/packages/graphql-mesh/package.json b/packages/graphql-mesh/package.json index 7e25734..3440a06 100644 --- a/packages/graphql-mesh/package.json +++ b/packages/graphql-mesh/package.json @@ -20,8 +20,10 @@ "@graphql-tools/utils": "^10.0.12", "glob": "^10.3.10", "graphql": "^16.8.1", + "headers-directive": "file:./local-pkg/headers-directive-1.0.0.tgz", + "no-auth-directive": "file:./local-pkg/no-auth-directive-1.0.0.tgz", "patch-package": "^8.0.0", - "spl-ts": "file:./local-pkg/spl-ts-1.0.0.tgz", + "spl-directive": "file:./local-pkg/spl-directive-1.0.0.tgz", "sucrase": "^3.35.0" }, "devDependencies": { diff --git a/packages/graphql-mesh/setup.ts b/packages/graphql-mesh/setup.ts index 0d45c75..fd1f4d7 100644 --- a/packages/graphql-mesh/setup.ts +++ b/packages/graphql-mesh/setup.ts @@ -327,6 +327,10 @@ typeDefsAndResolvers.typeDefs += /* GraphQL */ ` directive @SPL(query: String) on FIELD ` +typeDefsAndResolvers.typeDefs += /* GraphQL */ ` + directive @noAuth on FIELD +` + typeDefsAndResolvers.typeDefs += /* GraphQL */ ` directive @upper on FIELD ` diff --git a/packages/headers-directive/.gitignore b/packages/headers-directive/.gitignore new file mode 100644 index 0000000..7e47726 --- /dev/null +++ b/packages/headers-directive/.gitignore @@ -0,0 +1,8 @@ +# Logs +logs +*.log +npm-debug.log* + +node_modules +_build +.DS_Store diff --git a/packages/headers-directive/package.json b/packages/headers-directive/package.json new file mode 100644 index 0000000..af68638 --- /dev/null +++ b/packages/headers-directive/package.json @@ -0,0 +1,35 @@ +{ + "name": "headers-directive", + "version": "1.0.0", + "type": "module", + "main": "_build/cjs/index.js", + "module": "_build/esm/index.js", + "types": "_build/esm/index.d.ts", + "exports": { + ".": { + "import": "./_build/esm/index.js", + "require": "./_build/cjs/index.js" + } + }, + "files": [ + "_build/**/*" + ], + "scripts": { + "build:cjs": "tsc --project tsconfig-cjs.json", + "build:esm": "tsc --project tsconfig-esm.json", + "build": "rm -rf _build && npm run build:esm && npm run build:cjs && node ./scripts/prepare-package-json", + "pack": "npm run build && npm pack --pack-destination ../graphql-mesh/local-pkg" + }, + "devDependencies": { + "@types/node": "^20.11.19", + "tslib": "^2.6.2", + "typescript": "^5.2.2" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-tools/utils": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "graphql": "*" + } +} diff --git a/packages/spl-ts/scripts/prepare-package-json.js b/packages/headers-directive/scripts/prepare-package-json.js similarity index 100% rename from packages/spl-ts/scripts/prepare-package-json.js rename to packages/headers-directive/scripts/prepare-package-json.js diff --git a/packages/headers-directive/src/index.ts b/packages/headers-directive/src/index.ts new file mode 100644 index 0000000..cab6ce1 --- /dev/null +++ b/packages/headers-directive/src/index.ts @@ -0,0 +1,58 @@ +import { defaultFieldResolver, GraphQLSchema } from 'graphql' +import { MeshTransform } from '@graphql-mesh/types' +import { MapperKind, mapSchema } from '@graphql-tools/utils' + +export default class HeadersDirectiveTransform implements MeshTransform { + noWrap = true + + transformSchema(schema: GraphQLSchema) { + return mapSchema(schema, { + [MapperKind.OBJECT_FIELD]: (fieldConfig) => { + const originalResolver = + fieldConfig.resolve != null ? fieldConfig.resolve : defaultFieldResolver + + const resolver = async (next: any, _source: any, _args: any, context: any, info: any) => { + const { directives } = info.fieldNodes[0] + const headersDirective = directives.find( + (directive: { name: { value: string } }) => directive.name.value === 'headers' + ) + + if (headersDirective) { + const { value } = headersDirective.arguments[0] + + value?.values?.forEach((item: { fields: [any, any] }) => { + const [headerName, headerValue] = item.fields + context = { + ...context, + headers: { + ...context.headers, + [headerName.value.value.toLowerCase()]: headerValue.value.value + } + } + }) + } + + return await next(context) + } + + fieldConfig.resolve = (source, originalArgs, context, info) => { + return resolver( + (context: unknown) => + new Promise((resolve, reject) => { + const result = originalResolver(source, originalArgs, context, info) + if (result instanceof Error) { + reject(result) + } + resolve(result) + }), + source, + originalArgs, + context, + info + ) + } + return fieldConfig + } + }) + } +} diff --git a/packages/spl-ts/tsconfig-cjs.json b/packages/headers-directive/tsconfig-cjs.json similarity index 100% rename from packages/spl-ts/tsconfig-cjs.json rename to packages/headers-directive/tsconfig-cjs.json diff --git a/packages/spl-ts/tsconfig-esm.json b/packages/headers-directive/tsconfig-esm.json similarity index 100% rename from packages/spl-ts/tsconfig-esm.json rename to packages/headers-directive/tsconfig-esm.json diff --git a/packages/spl-ts/tsconfig.json b/packages/headers-directive/tsconfig.json similarity index 100% rename from packages/spl-ts/tsconfig.json rename to packages/headers-directive/tsconfig.json diff --git a/packages/no-auth-directive/.gitignore b/packages/no-auth-directive/.gitignore new file mode 100644 index 0000000..7e47726 --- /dev/null +++ b/packages/no-auth-directive/.gitignore @@ -0,0 +1,8 @@ +# Logs +logs +*.log +npm-debug.log* + +node_modules +_build +.DS_Store diff --git a/packages/no-auth-directive/package.json b/packages/no-auth-directive/package.json new file mode 100644 index 0000000..bd0ad8a --- /dev/null +++ b/packages/no-auth-directive/package.json @@ -0,0 +1,35 @@ +{ + "name": "no-auth-directive", + "version": "1.0.0", + "type": "module", + "main": "_build/cjs/index.js", + "module": "_build/esm/index.js", + "types": "_build/esm/index.d.ts", + "exports": { + ".": { + "import": "./_build/esm/index.js", + "require": "./_build/cjs/index.js" + } + }, + "files": [ + "_build/**/*" + ], + "scripts": { + "build:cjs": "tsc --project tsconfig-cjs.json", + "build:esm": "tsc --project tsconfig-esm.json", + "build": "rm -rf _build && npm run build:esm && npm run build:cjs && node ./scripts/prepare-package-json", + "pack": "npm run build && npm pack --pack-destination ../graphql-mesh/local-pkg" + }, + "devDependencies": { + "@types/node": "^20.11.19", + "tslib": "^2.6.2", + "typescript": "^5.2.2" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-tools/utils": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "graphql": "*" + } +} diff --git a/packages/no-auth-directive/scripts/prepare-package-json.js b/packages/no-auth-directive/scripts/prepare-package-json.js new file mode 100644 index 0000000..1fc7cc5 --- /dev/null +++ b/packages/no-auth-directive/scripts/prepare-package-json.js @@ -0,0 +1,29 @@ +import fs from 'fs' +import path from 'path' + +const buildDir = './_build' +function createModulePackageJson() { + fs.readdir(buildDir, function (err, dirs) { + if (err) { + throw err + } + dirs.forEach(function (dir) { + if (dir === 'cjs') { + var packageJsonFile = path.join(buildDir, dir, '/package.json') + if (!fs.existsSync(packageJsonFile)) { + fs.writeFile( + packageJsonFile, + new Uint8Array(Buffer.from('{"type": "commonjs"}')), + function (err) { + if (err) { + throw err + } + } + ) + } + } + }) + }) +} + +createModulePackageJson() diff --git a/packages/spl-ts/src/index.ts b/packages/no-auth-directive/src/index.ts similarity index 60% rename from packages/spl-ts/src/index.ts rename to packages/no-auth-directive/src/index.ts index ef3ad39..2c9b28c 100644 --- a/packages/spl-ts/src/index.ts +++ b/packages/no-auth-directive/src/index.ts @@ -1,9 +1,8 @@ import { defaultFieldResolver, GraphQLSchema } from 'graphql' import { MeshTransform } from '@graphql-mesh/types' import { MapperKind, mapSchema } from '@graphql-tools/utils' -import { splListFilterer } from './main' -export default class DirectivesTransform implements MeshTransform { +export default class NoAuthDirectiveTransform implements MeshTransform { noWrap = true transformSchema(schema: GraphQLSchema) { @@ -15,47 +14,17 @@ export default class DirectivesTransform implements MeshTransform { const resolver = async (next: any , _source: any, _args: any, context: any, info: any) => { const { directives } = info.fieldNodes[0] const upperDirective = directives.find((directive: { name: { value: string } }) => directive.name.value === 'upper') - const splDirective = directives.find((directive: { name: { value: string } }) => directive.name.value === 'SPL') const noAuthDirective = directives.find((directive: { name: { value: string } }) => directive.name.value === 'noAuth') - const headersDirective = directives.find( - (directive: { name: { value: string } }) => directive.name.value === 'headers' - ) - - if (noAuthDirective) { - context = { ...context, headers: { ...context.headers, authorization: '' } } - } - - if (headersDirective) { - const { value } = headersDirective.arguments[0] - - value?.values?.forEach((item: { fields: [any, any] }) => { - const [headerName, headerValue] = item.fields - context = { - ...context, - headers: { - ...context.headers, - [headerName.value.value.toLowerCase()]: headerValue.value.value - } - } - }) - } /** * In order to set headers for the request, we need override authorization headers * an pass it to execute function */ + if (noAuthDirective) { + context = { ...context, headers: { ...context.headers, authorization: '' } } + } let result = await next(context) - if (splDirective) { - const { value } = splDirective.arguments[0] - - let data = splListFilterer.filter( - value.value, - splListFilterer.formatInput(result), - splListFilterer.formatVariables(context.params.variables || {}) - ) - result = splListFilterer.formatOutput(data) - } if (upperDirective) { if (typeof result === 'string') { diff --git a/packages/no-auth-directive/tsconfig-cjs.json b/packages/no-auth-directive/tsconfig-cjs.json new file mode 100644 index 0000000..b17b7ab --- /dev/null +++ b/packages/no-auth-directive/tsconfig-cjs.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "commonjs", + "outDir": "./_build/cjs/" + } +} diff --git a/packages/no-auth-directive/tsconfig-esm.json b/packages/no-auth-directive/tsconfig-esm.json new file mode 100644 index 0000000..963cb1f --- /dev/null +++ b/packages/no-auth-directive/tsconfig-esm.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "esnext", + "outDir": "./_build/esm/" + } +} diff --git a/packages/no-auth-directive/tsconfig.json b/packages/no-auth-directive/tsconfig.json new file mode 100644 index 0000000..58f550d --- /dev/null +++ b/packages/no-auth-directive/tsconfig.json @@ -0,0 +1,30 @@ +{ + "exclude": ["node_modules", "**/*.test.ts"], + "include": ["src/**/*"], + "compilerOptions": { + "allowJs": false, + "allowSyntheticDefaultImports": true, + "baseUrl": ".", + "declaration": true, + "experimentalDecorators": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "importHelpers": true, + "isolatedModules": false, + "lib": ["ESNext"], + "moduleResolution": "node", + "noEmit": false, + "noImplicitAny": true, + "noImplicitThis": true, + "noUnusedParameters": true, + "paths": { + "src/*": ["src/*"], + "typings": ["src/typings.ts"] + }, + "resolveJsonModule": true, + "strict": true, + "skipLibCheck": true, + "sourceMap": true, + "target": "es2020" + } +} diff --git a/packages/spl-directive/.gitignore b/packages/spl-directive/.gitignore new file mode 100644 index 0000000..7e47726 --- /dev/null +++ b/packages/spl-directive/.gitignore @@ -0,0 +1,8 @@ +# Logs +logs +*.log +npm-debug.log* + +node_modules +_build +.DS_Store diff --git a/packages/spl-ts/package.json b/packages/spl-directive/package.json similarity index 97% rename from packages/spl-ts/package.json rename to packages/spl-directive/package.json index 574f887..6d6d8c7 100644 --- a/packages/spl-ts/package.json +++ b/packages/spl-directive/package.json @@ -1,5 +1,5 @@ { - "name": "spl-ts", + "name": "spl-directive", "version": "1.0.0", "type": "module", "main": "_build/cjs/index.js", diff --git a/packages/spl-directive/scripts/prepare-package-json.js b/packages/spl-directive/scripts/prepare-package-json.js new file mode 100644 index 0000000..1fc7cc5 --- /dev/null +++ b/packages/spl-directive/scripts/prepare-package-json.js @@ -0,0 +1,29 @@ +import fs from 'fs' +import path from 'path' + +const buildDir = './_build' +function createModulePackageJson() { + fs.readdir(buildDir, function (err, dirs) { + if (err) { + throw err + } + dirs.forEach(function (dir) { + if (dir === 'cjs') { + var packageJsonFile = path.join(buildDir, dir, '/package.json') + if (!fs.existsSync(packageJsonFile)) { + fs.writeFile( + packageJsonFile, + new Uint8Array(Buffer.from('{"type": "commonjs"}')), + function (err) { + if (err) { + throw err + } + } + ) + } + } + }) + }) +} + +createModulePackageJson() diff --git a/packages/spl-directive/src/index.ts b/packages/spl-directive/src/index.ts new file mode 100644 index 0000000..400455d --- /dev/null +++ b/packages/spl-directive/src/index.ts @@ -0,0 +1,54 @@ +import { defaultFieldResolver, GraphQLSchema } from 'graphql' +import { MeshTransform } from '@graphql-mesh/types' +import { MapperKind, mapSchema } from '@graphql-tools/utils' +import { splListFilterer } from './main' + +export default class SplDirectiveTransform implements MeshTransform { + noWrap = true + + transformSchema(schema: GraphQLSchema) { + return mapSchema(schema, { + [MapperKind.OBJECT_FIELD]: (fieldConfig) => { + const originalResolver = + fieldConfig.resolve != null ? fieldConfig.resolve : defaultFieldResolver + + const resolver = async (next: any , _source: any, _args: any, context: any, info: any) => { + const { directives } = info.fieldNodes[0] + const splDirective = directives.find((directive: { name: { value: string } }) => directive.name.value === 'SPL') + let result = await next(context) + + if (splDirective) { + const { value } = splDirective.arguments[0] + + let data = splListFilterer.filter( + value.value, + splListFilterer.formatInput(result), + splListFilterer.formatVariables(context.params.variables || {}) + ) + result = splListFilterer.formatOutput(data) + } + + return result + } + + fieldConfig.resolve = (source, originalArgs, context, info) => { + return resolver( + (context: unknown) => + new Promise((resolve, reject) => { + const result = originalResolver(source, originalArgs, context, info) + if (result instanceof Error) { + reject(result) + } + resolve(result) + }), + source, + originalArgs, + context, + info + ) + } + return fieldConfig + } + }) + } +} diff --git a/packages/spl-ts/src/main/OperandReader.ts b/packages/spl-directive/src/main/OperandReader.ts similarity index 100% rename from packages/spl-ts/src/main/OperandReader.ts rename to packages/spl-directive/src/main/OperandReader.ts diff --git a/packages/spl-ts/src/main/PropertyWalker.ts b/packages/spl-directive/src/main/PropertyWalker.ts similarity index 100% rename from packages/spl-ts/src/main/PropertyWalker.ts rename to packages/spl-directive/src/main/PropertyWalker.ts diff --git a/packages/spl-ts/src/main/antlr/SPL.g4 b/packages/spl-directive/src/main/antlr/SPL.g4 similarity index 100% rename from packages/spl-ts/src/main/antlr/SPL.g4 rename to packages/spl-directive/src/main/antlr/SPL.g4 diff --git a/packages/spl-ts/src/main/antlr/SPL.interp b/packages/spl-directive/src/main/antlr/SPL.interp similarity index 100% rename from packages/spl-ts/src/main/antlr/SPL.interp rename to packages/spl-directive/src/main/antlr/SPL.interp diff --git a/packages/spl-ts/src/main/antlr/SPL.tokens b/packages/spl-directive/src/main/antlr/SPL.tokens similarity index 100% rename from packages/spl-ts/src/main/antlr/SPL.tokens rename to packages/spl-directive/src/main/antlr/SPL.tokens diff --git a/packages/spl-ts/src/main/antlr/SPLLexer.interp b/packages/spl-directive/src/main/antlr/SPLLexer.interp similarity index 100% rename from packages/spl-ts/src/main/antlr/SPLLexer.interp rename to packages/spl-directive/src/main/antlr/SPLLexer.interp diff --git a/packages/spl-ts/src/main/antlr/SPLLexer.tokens b/packages/spl-directive/src/main/antlr/SPLLexer.tokens similarity index 100% rename from packages/spl-ts/src/main/antlr/SPLLexer.tokens rename to packages/spl-directive/src/main/antlr/SPLLexer.tokens diff --git a/packages/spl-ts/src/main/antlr/SPLLexer.ts b/packages/spl-directive/src/main/antlr/SPLLexer.ts similarity index 100% rename from packages/spl-ts/src/main/antlr/SPLLexer.ts rename to packages/spl-directive/src/main/antlr/SPLLexer.ts diff --git a/packages/spl-ts/src/main/antlr/SPLListener.ts b/packages/spl-directive/src/main/antlr/SPLListener.ts similarity index 100% rename from packages/spl-ts/src/main/antlr/SPLListener.ts rename to packages/spl-directive/src/main/antlr/SPLListener.ts diff --git a/packages/spl-ts/src/main/antlr/SPLParser.ts b/packages/spl-directive/src/main/antlr/SPLParser.ts similarity index 100% rename from packages/spl-ts/src/main/antlr/SPLParser.ts rename to packages/spl-directive/src/main/antlr/SPLParser.ts diff --git a/packages/spl-ts/src/main/antlr/SPLQueryToTreeConverter.ts b/packages/spl-directive/src/main/antlr/SPLQueryToTreeConverter.ts similarity index 100% rename from packages/spl-ts/src/main/antlr/SPLQueryToTreeConverter.ts rename to packages/spl-directive/src/main/antlr/SPLQueryToTreeConverter.ts diff --git a/packages/spl-ts/src/main/antlr/SPLVisitor.ts b/packages/spl-directive/src/main/antlr/SPLVisitor.ts similarity index 100% rename from packages/spl-ts/src/main/antlr/SPLVisitor.ts rename to packages/spl-directive/src/main/antlr/SPLVisitor.ts diff --git a/packages/spl-ts/src/main/functions/Concat.ts b/packages/spl-directive/src/main/functions/Concat.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Concat.ts rename to packages/spl-directive/src/main/functions/Concat.ts diff --git a/packages/spl-ts/src/main/functions/Day.ts b/packages/spl-directive/src/main/functions/Day.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Day.ts rename to packages/spl-directive/src/main/functions/Day.ts diff --git a/packages/spl-ts/src/main/functions/EvaluateDate.ts b/packages/spl-directive/src/main/functions/EvaluateDate.ts similarity index 100% rename from packages/spl-ts/src/main/functions/EvaluateDate.ts rename to packages/spl-directive/src/main/functions/EvaluateDate.ts diff --git a/packages/spl-ts/src/main/functions/EvaluateFunctionOperand.ts b/packages/spl-directive/src/main/functions/EvaluateFunctionOperand.ts similarity index 100% rename from packages/spl-ts/src/main/functions/EvaluateFunctionOperand.ts rename to packages/spl-directive/src/main/functions/EvaluateFunctionOperand.ts diff --git a/packages/spl-ts/src/main/functions/Intersection.ts b/packages/spl-directive/src/main/functions/Intersection.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Intersection.ts rename to packages/spl-directive/src/main/functions/Intersection.ts diff --git a/packages/spl-ts/src/main/functions/Keys.ts b/packages/spl-directive/src/main/functions/Keys.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Keys.ts rename to packages/spl-directive/src/main/functions/Keys.ts diff --git a/packages/spl-ts/src/main/functions/Len.ts b/packages/spl-directive/src/main/functions/Len.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Len.ts rename to packages/spl-directive/src/main/functions/Len.ts diff --git a/packages/spl-ts/src/main/functions/Month.ts b/packages/spl-directive/src/main/functions/Month.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Month.ts rename to packages/spl-directive/src/main/functions/Month.ts diff --git a/packages/spl-ts/src/main/functions/Now.ts b/packages/spl-directive/src/main/functions/Now.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Now.ts rename to packages/spl-directive/src/main/functions/Now.ts diff --git a/packages/spl-ts/src/main/functions/Reverse.ts b/packages/spl-directive/src/main/functions/Reverse.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Reverse.ts rename to packages/spl-directive/src/main/functions/Reverse.ts diff --git a/packages/spl-ts/src/main/functions/Split.ts b/packages/spl-directive/src/main/functions/Split.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Split.ts rename to packages/spl-directive/src/main/functions/Split.ts diff --git a/packages/spl-ts/src/main/functions/Year.ts b/packages/spl-directive/src/main/functions/Year.ts similarity index 100% rename from packages/spl-ts/src/main/functions/Year.ts rename to packages/spl-directive/src/main/functions/Year.ts diff --git a/packages/spl-ts/src/main/index.ts b/packages/spl-directive/src/main/index.ts similarity index 100% rename from packages/spl-ts/src/main/index.ts rename to packages/spl-directive/src/main/index.ts diff --git a/packages/spl-ts/src/main/limiter/Limit.ts b/packages/spl-directive/src/main/limiter/Limit.ts similarity index 100% rename from packages/spl-ts/src/main/limiter/Limit.ts rename to packages/spl-directive/src/main/limiter/Limit.ts diff --git a/packages/spl-ts/src/main/limiter/SPLLimitExtractor.ts b/packages/spl-directive/src/main/limiter/SPLLimitExtractor.ts similarity index 100% rename from packages/spl-ts/src/main/limiter/SPLLimitExtractor.ts rename to packages/spl-directive/src/main/limiter/SPLLimitExtractor.ts diff --git a/packages/spl-ts/src/main/predicate/SPLPredicateFilter.ts b/packages/spl-directive/src/main/predicate/SPLPredicateFilter.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/SPLPredicateFilter.ts rename to packages/spl-directive/src/main/predicate/SPLPredicateFilter.ts diff --git a/packages/spl-ts/src/main/predicate/operations/BooleanListBooleansOperations.ts b/packages/spl-directive/src/main/predicate/operations/BooleanListBooleansOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/operations/BooleanListBooleansOperations.ts rename to packages/spl-directive/src/main/predicate/operations/BooleanListBooleansOperations.ts diff --git a/packages/spl-ts/src/main/predicate/operations/BooleanOperations.ts b/packages/spl-directive/src/main/predicate/operations/BooleanOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/operations/BooleanOperations.ts rename to packages/spl-directive/src/main/predicate/operations/BooleanOperations.ts diff --git a/packages/spl-ts/src/main/predicate/operations/DateOperations.ts b/packages/spl-directive/src/main/predicate/operations/DateOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/operations/DateOperations.ts rename to packages/spl-directive/src/main/predicate/operations/DateOperations.ts diff --git a/packages/spl-ts/src/main/predicate/operations/NumberOperations.ts b/packages/spl-directive/src/main/predicate/operations/NumberOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/operations/NumberOperations.ts rename to packages/spl-directive/src/main/predicate/operations/NumberOperations.ts diff --git a/packages/spl-ts/src/main/predicate/operations/PredicateOperation.ts b/packages/spl-directive/src/main/predicate/operations/PredicateOperation.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/operations/PredicateOperation.ts rename to packages/spl-directive/src/main/predicate/operations/PredicateOperation.ts diff --git a/packages/spl-ts/src/main/predicate/operations/StringListStringOperations.ts b/packages/spl-directive/src/main/predicate/operations/StringListStringOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/operations/StringListStringOperations.ts rename to packages/spl-directive/src/main/predicate/operations/StringListStringOperations.ts diff --git a/packages/spl-ts/src/main/predicate/operations/StringOperations.ts b/packages/spl-directive/src/main/predicate/operations/StringOperations.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/operations/StringOperations.ts rename to packages/spl-directive/src/main/predicate/operations/StringOperations.ts diff --git a/packages/spl-ts/src/main/predicate/operations/index.ts b/packages/spl-directive/src/main/predicate/operations/index.ts similarity index 100% rename from packages/spl-ts/src/main/predicate/operations/index.ts rename to packages/spl-directive/src/main/predicate/operations/index.ts diff --git a/packages/spl-ts/src/main/sorter/SPLComparatorFactory.ts b/packages/spl-directive/src/main/sorter/SPLComparatorFactory.ts similarity index 100% rename from packages/spl-ts/src/main/sorter/SPLComparatorFactory.ts rename to packages/spl-directive/src/main/sorter/SPLComparatorFactory.ts diff --git a/packages/spl-ts/src/main/sorter/SPLListFilterer.ts b/packages/spl-directive/src/main/sorter/SPLListFilterer.ts similarity index 100% rename from packages/spl-ts/src/main/sorter/SPLListFilterer.ts rename to packages/spl-directive/src/main/sorter/SPLListFilterer.ts diff --git a/packages/spl-ts/src/test/SPLListFilter.test.ts b/packages/spl-directive/src/test/SPLListFilter.test.ts similarity index 100% rename from packages/spl-ts/src/test/SPLListFilter.test.ts rename to packages/spl-directive/src/test/SPLListFilter.test.ts diff --git a/packages/spl-ts/src/test/SPLPredicateFilter.test.ts b/packages/spl-directive/src/test/SPLPredicateFilter.test.ts similarity index 100% rename from packages/spl-ts/src/test/SPLPredicateFilter.test.ts rename to packages/spl-directive/src/test/SPLPredicateFilter.test.ts diff --git a/packages/spl-directive/tsconfig-cjs.json b/packages/spl-directive/tsconfig-cjs.json new file mode 100644 index 0000000..b17b7ab --- /dev/null +++ b/packages/spl-directive/tsconfig-cjs.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "commonjs", + "outDir": "./_build/cjs/" + } +} diff --git a/packages/spl-directive/tsconfig-esm.json b/packages/spl-directive/tsconfig-esm.json new file mode 100644 index 0000000..963cb1f --- /dev/null +++ b/packages/spl-directive/tsconfig-esm.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "esnext", + "outDir": "./_build/esm/" + } +} diff --git a/packages/spl-directive/tsconfig.json b/packages/spl-directive/tsconfig.json new file mode 100644 index 0000000..58f550d --- /dev/null +++ b/packages/spl-directive/tsconfig.json @@ -0,0 +1,30 @@ +{ + "exclude": ["node_modules", "**/*.test.ts"], + "include": ["src/**/*"], + "compilerOptions": { + "allowJs": false, + "allowSyntheticDefaultImports": true, + "baseUrl": ".", + "declaration": true, + "experimentalDecorators": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "importHelpers": true, + "isolatedModules": false, + "lib": ["ESNext"], + "moduleResolution": "node", + "noEmit": false, + "noImplicitAny": true, + "noImplicitThis": true, + "noUnusedParameters": true, + "paths": { + "src/*": ["src/*"], + "typings": ["src/typings.ts"] + }, + "resolveJsonModule": true, + "strict": true, + "skipLibCheck": true, + "sourceMap": true, + "target": "es2020" + } +} diff --git a/packages/spl-ts/vite.config.ts b/packages/spl-directive/vite.config.ts similarity index 100% rename from packages/spl-ts/vite.config.ts rename to packages/spl-directive/vite.config.ts diff --git a/packages/spl-ts/.gitignore b/packages/spl-ts/.gitignore deleted file mode 100644 index eca4e67..0000000 --- a/packages/spl-ts/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -_build -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? From 88928577cda5f0156f14e6ff3eb01028d52e401e Mon Sep 17 00:00:00 2001 From: Mbaye THIAM Date: Fri, 29 Mar 2024 10:33:26 +0100 Subject: [PATCH 5/9] =?UTF-8?q?=F0=9F=9A=9A=20rename=20directives?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/unit-tests.yml | 4 +- package-lock.json | 212 +++++++++--------- package.json | 7 +- .../.gitignore | 0 .../package.json | 2 +- .../scripts/prepare-package-json.js | 0 .../src/index.ts | 0 .../tsconfig-cjs.json | 0 .../tsconfig-esm.json | 0 .../tsconfig.json | 0 .../.gitignore | 0 .../package.json | 2 +- .../scripts/prepare-package-json.js | 0 .../src/index.ts | 0 .../tsconfig-cjs.json | 0 .../tsconfig-esm.json | 0 .../tsconfig.json | 0 .../.gitignore | 0 .../package.json | 2 +- .../scripts/prepare-package-json.js | 0 .../src/index.ts | 0 .../src/main/OperandReader.ts | 0 .../src/main/PropertyWalker.ts | 0 .../src/main/antlr/SPL.g4 | 0 .../src/main/antlr/SPL.interp | 0 .../src/main/antlr/SPL.tokens | 0 .../src/main/antlr/SPLLexer.interp | 0 .../src/main/antlr/SPLLexer.tokens | 0 .../src/main/antlr/SPLLexer.ts | 0 .../src/main/antlr/SPLListener.ts | 0 .../src/main/antlr/SPLParser.ts | 0 .../src/main/antlr/SPLQueryToTreeConverter.ts | 0 .../src/main/antlr/SPLVisitor.ts | 0 .../src/main/functions/Concat.ts | 0 .../src/main/functions/Day.ts | 0 .../src/main/functions/EvaluateDate.ts | 0 .../main/functions/EvaluateFunctionOperand.ts | 0 .../src/main/functions/Intersection.ts | 0 .../src/main/functions/Keys.ts | 0 .../src/main/functions/Len.ts | 0 .../src/main/functions/Month.ts | 0 .../src/main/functions/Now.ts | 0 .../src/main/functions/Reverse.ts | 0 .../src/main/functions/Split.ts | 0 .../src/main/functions/Year.ts | 0 .../src/main/index.ts | 0 .../src/main/limiter/Limit.ts | 0 .../src/main/limiter/SPLLimitExtractor.ts | 0 .../src/main/predicate/SPLPredicateFilter.ts | 0 .../BooleanListBooleansOperations.ts | 0 .../predicate/operations/BooleanOperations.ts | 0 .../predicate/operations/DateOperations.ts | 0 .../predicate/operations/NumberOperations.ts | 0 .../operations/PredicateOperation.ts | 0 .../operations/StringListStringOperations.ts | 0 .../predicate/operations/StringOperations.ts | 0 .../src/main/predicate/operations/index.ts | 0 .../src/main/sorter/SPLComparatorFactory.ts | 0 .../src/main/sorter/SPLListFilterer.ts | 0 .../src/test/SPLListFilter.test.ts | 0 .../src/test/SPLPredicateFilter.test.ts | 0 .../tsconfig-cjs.json | 0 .../tsconfig-esm.json | 0 .../tsconfig.json | 0 .../vite.config.ts | 0 packages/graphql-mesh/.meshrc.ts | 6 +- packages/graphql-mesh/package-lock.json | 84 +++---- packages/graphql-mesh/package.json | 8 +- ...downloadSources.ts => download-sources.ts} | 2 +- 69 files changed, 166 insertions(+), 163 deletions(-) rename packages/{headers-directive => directive-headers}/.gitignore (100%) rename packages/{headers-directive => directive-headers}/package.json (96%) rename packages/{headers-directive => directive-headers}/scripts/prepare-package-json.js (100%) rename packages/{headers-directive => directive-headers}/src/index.ts (100%) rename packages/{headers-directive => directive-headers}/tsconfig-cjs.json (100%) rename packages/{headers-directive => directive-headers}/tsconfig-esm.json (100%) rename packages/{headers-directive => directive-headers}/tsconfig.json (100%) rename packages/{no-auth-directive => directive-no-auth}/.gitignore (100%) rename packages/{no-auth-directive => directive-no-auth}/package.json (96%) rename packages/{no-auth-directive => directive-no-auth}/scripts/prepare-package-json.js (100%) rename packages/{no-auth-directive => directive-no-auth}/src/index.ts (100%) rename packages/{no-auth-directive => directive-no-auth}/tsconfig-cjs.json (100%) rename packages/{no-auth-directive => directive-no-auth}/tsconfig-esm.json (100%) rename packages/{no-auth-directive => directive-no-auth}/tsconfig.json (100%) rename packages/{spl-directive => directive-spl}/.gitignore (100%) rename packages/{spl-directive => directive-spl}/package.json (97%) rename packages/{spl-directive => directive-spl}/scripts/prepare-package-json.js (100%) rename packages/{spl-directive => directive-spl}/src/index.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/OperandReader.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/PropertyWalker.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPL.g4 (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPL.interp (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPL.tokens (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPLLexer.interp (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPLLexer.tokens (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPLLexer.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPLListener.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPLParser.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPLQueryToTreeConverter.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/antlr/SPLVisitor.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Concat.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Day.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/EvaluateDate.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/EvaluateFunctionOperand.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Intersection.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Keys.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Len.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Month.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Now.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Reverse.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Split.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/functions/Year.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/index.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/limiter/Limit.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/limiter/SPLLimitExtractor.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/predicate/SPLPredicateFilter.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/predicate/operations/BooleanListBooleansOperations.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/predicate/operations/BooleanOperations.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/predicate/operations/DateOperations.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/predicate/operations/NumberOperations.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/predicate/operations/PredicateOperation.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/predicate/operations/StringListStringOperations.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/predicate/operations/StringOperations.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/predicate/operations/index.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/sorter/SPLComparatorFactory.ts (100%) rename packages/{spl-directive => directive-spl}/src/main/sorter/SPLListFilterer.ts (100%) rename packages/{spl-directive => directive-spl}/src/test/SPLListFilter.test.ts (100%) rename packages/{spl-directive => directive-spl}/src/test/SPLPredicateFilter.test.ts (100%) rename packages/{spl-directive => directive-spl}/tsconfig-cjs.json (100%) rename packages/{spl-directive => directive-spl}/tsconfig-esm.json (100%) rename packages/{spl-directive => directive-spl}/tsconfig.json (100%) rename packages/{spl-directive => directive-spl}/vite.config.ts (100%) rename packages/graphql-mesh/scripts/{downloadSources.ts => download-sources.ts} (97%) diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index ffd543d..2dea47d 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -1,4 +1,4 @@ -name: Run Unit Tests for spl-directive library +name: Run Unit Tests for directive-spl library on: push: @@ -27,4 +27,4 @@ jobs: run: npm install - name: Run tests - run: npm test -w spl-directive + run: npm test -w directive-spl diff --git a/package-lock.json b/package-lock.json index fe0c2ba..7f11417 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1800,6 +1800,18 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/directive-headers": { + "resolved": "packages/directive-headers", + "link": true + }, + "node_modules/directive-no-auth": { + "resolved": "packages/directive-no-auth", + "link": true + }, + "node_modules/directive-spl": { + "resolved": "packages/directive-spl", + "link": true + }, "node_modules/dset": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", @@ -2174,10 +2186,6 @@ "he": "bin/he" } }, - "node_modules/headers-directive": { - "resolved": "packages/headers-directive", - "link": true - }, "node_modules/human-signals": { "version": "5.0.0", "dev": true, @@ -2609,10 +2617,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/no-auth-directive": { - "resolved": "packages/no-auth-directive", - "link": true - }, "node_modules/node-int64": { "version": "0.4.0", "license": "MIT" @@ -3141,10 +3145,6 @@ "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", "dev": true }, - "node_modules/spl-directive": { - "resolved": "packages/spl-directive", - "link": true - }, "node_modules/sprintf-js": { "version": "1.0.3", "dev": true, @@ -3862,6 +3862,58 @@ "commander": "^9.4.1" } }, + "packages/directive-headers": { + "version": "1.0.0", + "devDependencies": { + "@types/node": "^20.11.19", + "tslib": "^2.6.2", + "typescript": "^5.2.2" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, + "packages/directive-no-auth": { + "version": "1.0.0", + "devDependencies": { + "@types/node": "^20.11.19", + "tslib": "^2.6.2", + "typescript": "^5.2.2" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, + "packages/directive-spl": { + "version": "1.0.0", + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + }, + "devDependencies": { + "@types/node": "^20.11.19", + "antlr4ts-cli": "^0.5.0-alpha.4", + "tslib": "^2.6.2", + "typescript": "^5.2.2", + "vite": "^5.1.0", + "vite-plugin-dts": "^3.7.2", + "vitest": "^1.3.0" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, "packages/graphql-mesh": { "hasInstallScript": true, "dependencies": { @@ -3876,12 +3928,12 @@ "@graphql-mesh/transform-type-merging": "^0.96.2", "@graphql-tools/schema": "^10.0.2", "@graphql-tools/utils": "^10.0.12", + "directive-headers": "file:./local-pkg/directive-headers-1.0.0.tgz", + "directive-no-auth": "file:./local-pkg/directive-no-auth-1.0.0.tgz", + "directive-spl": "file:./local-pkg/directive-spl-1.0.0.tgz", "glob": "^10.3.10", "graphql": "^16.8.1", - "headers-directive": "file:./local-pkg/headers-directive-1.0.0.tgz", - "no-auth-directive": "file:./local-pkg/no-auth-directive-1.0.0.tgz", "patch-package": "^8.0.0", - "spl-directive": "file:./local-pkg/spl-directive-1.0.0.tgz", "sucrase": "^3.35.0" }, "devDependencies": { @@ -6305,6 +6357,45 @@ "node": ">=8" } }, + "packages/graphql-mesh/node_modules/directive-headers": { + "version": "1.0.0", + "resolved": "file:packages/graphql-mesh/local-pkg/directive-headers-1.0.0.tgz", + "integrity": "sha512-iCxJ5MOi1bbb+2ebFn5n4a3ZDE7CDDMNT4moSksQrAVSxYYTXR6K6Bs1OuFD6O67FnX9IMi6cVmaLFIHmxOvWg==", + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, + "packages/graphql-mesh/node_modules/directive-no-auth": { + "version": "1.0.0", + "resolved": "file:packages/graphql-mesh/local-pkg/directive-no-auth-1.0.0.tgz", + "integrity": "sha512-H1lWlaIUKu9Ul0M1ZpjDqGrPj6VQsJvlRwCyCsrPVCgKDKB7VW72P9B0l5ZgQUTSGxe6ZKAk351wBmbojKMsgQ==", + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, + "packages/graphql-mesh/node_modules/directive-spl": { + "version": "1.0.0", + "resolved": "file:packages/graphql-mesh/local-pkg/directive-spl-1.0.0.tgz", + "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, "packages/graphql-mesh/node_modules/dot-case": { "version": "3.0.4", "license": "MIT", @@ -6623,18 +6714,6 @@ "tslib": "^2.0.3" } }, - "packages/graphql-mesh/node_modules/headers-directive": { - "version": "1.0.0", - "resolved": "file:packages/graphql-mesh/local-pkg/headers-directive-1.0.0.tgz", - "integrity": "sha512-iCxJ5MOi1bbb+2ebFn5n4a3ZDE7CDDMNT4moSksQrAVSxYYTXR6K6Bs1OuFD6O67FnX9IMi6cVmaLFIHmxOvWg==", - "peerDependencies": { - "@graphql-mesh/cache-localforage": "*", - "@graphql-mesh/types": "*", - "@graphql-mesh/utils": "*", - "@graphql-tools/utils": "*", - "graphql": "*" - } - }, "packages/graphql-mesh/node_modules/hoist-non-react-statics": { "version": "3.3.2", "license": "BSD-3-Clause", @@ -7176,18 +7255,6 @@ "node": ">= 0.6" } }, - "packages/graphql-mesh/node_modules/no-auth-directive": { - "version": "1.0.0", - "resolved": "file:packages/graphql-mesh/local-pkg/no-auth-directive-1.0.0.tgz", - "integrity": "sha512-H1lWlaIUKu9Ul0M1ZpjDqGrPj6VQsJvlRwCyCsrPVCgKDKB7VW72P9B0l5ZgQUTSGxe6ZKAk351wBmbojKMsgQ==", - "peerDependencies": { - "@graphql-mesh/cache-localforage": "*", - "@graphql-mesh/types": "*", - "@graphql-mesh/utils": "*", - "@graphql-tools/utils": "*", - "graphql": "*" - } - }, "packages/graphql-mesh/node_modules/no-case": { "version": "3.0.4", "license": "MIT", @@ -7763,21 +7830,6 @@ "node": ">= 14" } }, - "packages/graphql-mesh/node_modules/spl-directive": { - "version": "1.0.0", - "resolved": "file:packages/graphql-mesh/local-pkg/spl-directive-1.0.0.tgz", - "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - }, - "peerDependencies": { - "@graphql-mesh/cache-localforage": "*", - "@graphql-mesh/types": "*", - "@graphql-mesh/utils": "*", - "@graphql-tools/utils": "*", - "graphql": "*" - } - }, "packages/graphql-mesh/node_modules/sponge-case": { "version": "1.0.1", "license": "MIT", @@ -8147,58 +8199,6 @@ "dependencies": { "zen-observable": "0.8.15" } - }, - "packages/headers-directive": { - "version": "1.0.0", - "devDependencies": { - "@types/node": "^20.11.19", - "tslib": "^2.6.2", - "typescript": "^5.2.2" - }, - "peerDependencies": { - "@graphql-mesh/cache-localforage": "*", - "@graphql-mesh/types": "*", - "@graphql-mesh/utils": "*", - "@graphql-tools/utils": "*", - "graphql": "*" - } - }, - "packages/no-auth-directive": { - "version": "1.0.0", - "devDependencies": { - "@types/node": "^20.11.19", - "tslib": "^2.6.2", - "typescript": "^5.2.2" - }, - "peerDependencies": { - "@graphql-mesh/cache-localforage": "*", - "@graphql-mesh/types": "*", - "@graphql-mesh/utils": "*", - "@graphql-tools/utils": "*", - "graphql": "*" - } - }, - "packages/spl-directive": { - "version": "1.0.0", - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - }, - "devDependencies": { - "@types/node": "^20.11.19", - "antlr4ts-cli": "^0.5.0-alpha.4", - "tslib": "^2.6.2", - "typescript": "^5.2.2", - "vite": "^5.1.0", - "vite-plugin-dts": "^3.7.2", - "vitest": "^1.3.0" - }, - "peerDependencies": { - "@graphql-mesh/cache-localforage": "*", - "@graphql-mesh/types": "*", - "@graphql-mesh/utils": "*", - "@graphql-tools/utils": "*", - "graphql": "*" - } } } } diff --git a/package.json b/package.json index e6348ff..371f4d5 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,15 @@ { "name": "graphql-mesh", "workspaces": { - "packages": ["packages/*"] + "packages": [ + "packages/*" + ] }, "scripts": { + "clean:modules": "npm exec --workspaces -- npx rimraf node_modules && npx rimraf node_modules", "generate:mesh:lock": "cd packages/graphql-mesh && npm i --package-lock-only --workspaces=false", "postinstall": "npm run postinstall -w graphql-mesh && patch-package && npm run generate:mesh:lock", - "prepare": "concurrently \"npm run pack -w spl-directive\" \"npm run pack -w headers-directive\" \"npm run pack -w no-auth-directive\"", + "prepare": "concurrently \"npm run pack -w directive-spl\" \"npm run pack -w directive-headers\" \"npm run pack -w directive-no-auth\"", "start": "npm start -w graphql-mesh" }, "devDependencies": { diff --git a/packages/headers-directive/.gitignore b/packages/directive-headers/.gitignore similarity index 100% rename from packages/headers-directive/.gitignore rename to packages/directive-headers/.gitignore diff --git a/packages/headers-directive/package.json b/packages/directive-headers/package.json similarity index 96% rename from packages/headers-directive/package.json rename to packages/directive-headers/package.json index af68638..f0398d1 100644 --- a/packages/headers-directive/package.json +++ b/packages/directive-headers/package.json @@ -1,5 +1,5 @@ { - "name": "headers-directive", + "name": "directive-headers", "version": "1.0.0", "type": "module", "main": "_build/cjs/index.js", diff --git a/packages/headers-directive/scripts/prepare-package-json.js b/packages/directive-headers/scripts/prepare-package-json.js similarity index 100% rename from packages/headers-directive/scripts/prepare-package-json.js rename to packages/directive-headers/scripts/prepare-package-json.js diff --git a/packages/headers-directive/src/index.ts b/packages/directive-headers/src/index.ts similarity index 100% rename from packages/headers-directive/src/index.ts rename to packages/directive-headers/src/index.ts diff --git a/packages/headers-directive/tsconfig-cjs.json b/packages/directive-headers/tsconfig-cjs.json similarity index 100% rename from packages/headers-directive/tsconfig-cjs.json rename to packages/directive-headers/tsconfig-cjs.json diff --git a/packages/headers-directive/tsconfig-esm.json b/packages/directive-headers/tsconfig-esm.json similarity index 100% rename from packages/headers-directive/tsconfig-esm.json rename to packages/directive-headers/tsconfig-esm.json diff --git a/packages/headers-directive/tsconfig.json b/packages/directive-headers/tsconfig.json similarity index 100% rename from packages/headers-directive/tsconfig.json rename to packages/directive-headers/tsconfig.json diff --git a/packages/no-auth-directive/.gitignore b/packages/directive-no-auth/.gitignore similarity index 100% rename from packages/no-auth-directive/.gitignore rename to packages/directive-no-auth/.gitignore diff --git a/packages/no-auth-directive/package.json b/packages/directive-no-auth/package.json similarity index 96% rename from packages/no-auth-directive/package.json rename to packages/directive-no-auth/package.json index bd0ad8a..9ce271a 100644 --- a/packages/no-auth-directive/package.json +++ b/packages/directive-no-auth/package.json @@ -1,5 +1,5 @@ { - "name": "no-auth-directive", + "name": "directive-no-auth", "version": "1.0.0", "type": "module", "main": "_build/cjs/index.js", diff --git a/packages/no-auth-directive/scripts/prepare-package-json.js b/packages/directive-no-auth/scripts/prepare-package-json.js similarity index 100% rename from packages/no-auth-directive/scripts/prepare-package-json.js rename to packages/directive-no-auth/scripts/prepare-package-json.js diff --git a/packages/no-auth-directive/src/index.ts b/packages/directive-no-auth/src/index.ts similarity index 100% rename from packages/no-auth-directive/src/index.ts rename to packages/directive-no-auth/src/index.ts diff --git a/packages/no-auth-directive/tsconfig-cjs.json b/packages/directive-no-auth/tsconfig-cjs.json similarity index 100% rename from packages/no-auth-directive/tsconfig-cjs.json rename to packages/directive-no-auth/tsconfig-cjs.json diff --git a/packages/no-auth-directive/tsconfig-esm.json b/packages/directive-no-auth/tsconfig-esm.json similarity index 100% rename from packages/no-auth-directive/tsconfig-esm.json rename to packages/directive-no-auth/tsconfig-esm.json diff --git a/packages/no-auth-directive/tsconfig.json b/packages/directive-no-auth/tsconfig.json similarity index 100% rename from packages/no-auth-directive/tsconfig.json rename to packages/directive-no-auth/tsconfig.json diff --git a/packages/spl-directive/.gitignore b/packages/directive-spl/.gitignore similarity index 100% rename from packages/spl-directive/.gitignore rename to packages/directive-spl/.gitignore diff --git a/packages/spl-directive/package.json b/packages/directive-spl/package.json similarity index 97% rename from packages/spl-directive/package.json rename to packages/directive-spl/package.json index 6d6d8c7..cb7892b 100644 --- a/packages/spl-directive/package.json +++ b/packages/directive-spl/package.json @@ -1,5 +1,5 @@ { - "name": "spl-directive", + "name": "directive-spl", "version": "1.0.0", "type": "module", "main": "_build/cjs/index.js", diff --git a/packages/spl-directive/scripts/prepare-package-json.js b/packages/directive-spl/scripts/prepare-package-json.js similarity index 100% rename from packages/spl-directive/scripts/prepare-package-json.js rename to packages/directive-spl/scripts/prepare-package-json.js diff --git a/packages/spl-directive/src/index.ts b/packages/directive-spl/src/index.ts similarity index 100% rename from packages/spl-directive/src/index.ts rename to packages/directive-spl/src/index.ts diff --git a/packages/spl-directive/src/main/OperandReader.ts b/packages/directive-spl/src/main/OperandReader.ts similarity index 100% rename from packages/spl-directive/src/main/OperandReader.ts rename to packages/directive-spl/src/main/OperandReader.ts diff --git a/packages/spl-directive/src/main/PropertyWalker.ts b/packages/directive-spl/src/main/PropertyWalker.ts similarity index 100% rename from packages/spl-directive/src/main/PropertyWalker.ts rename to packages/directive-spl/src/main/PropertyWalker.ts diff --git a/packages/spl-directive/src/main/antlr/SPL.g4 b/packages/directive-spl/src/main/antlr/SPL.g4 similarity index 100% rename from packages/spl-directive/src/main/antlr/SPL.g4 rename to packages/directive-spl/src/main/antlr/SPL.g4 diff --git a/packages/spl-directive/src/main/antlr/SPL.interp b/packages/directive-spl/src/main/antlr/SPL.interp similarity index 100% rename from packages/spl-directive/src/main/antlr/SPL.interp rename to packages/directive-spl/src/main/antlr/SPL.interp diff --git a/packages/spl-directive/src/main/antlr/SPL.tokens b/packages/directive-spl/src/main/antlr/SPL.tokens similarity index 100% rename from packages/spl-directive/src/main/antlr/SPL.tokens rename to packages/directive-spl/src/main/antlr/SPL.tokens diff --git a/packages/spl-directive/src/main/antlr/SPLLexer.interp b/packages/directive-spl/src/main/antlr/SPLLexer.interp similarity index 100% rename from packages/spl-directive/src/main/antlr/SPLLexer.interp rename to packages/directive-spl/src/main/antlr/SPLLexer.interp diff --git a/packages/spl-directive/src/main/antlr/SPLLexer.tokens b/packages/directive-spl/src/main/antlr/SPLLexer.tokens similarity index 100% rename from packages/spl-directive/src/main/antlr/SPLLexer.tokens rename to packages/directive-spl/src/main/antlr/SPLLexer.tokens diff --git a/packages/spl-directive/src/main/antlr/SPLLexer.ts b/packages/directive-spl/src/main/antlr/SPLLexer.ts similarity index 100% rename from packages/spl-directive/src/main/antlr/SPLLexer.ts rename to packages/directive-spl/src/main/antlr/SPLLexer.ts diff --git a/packages/spl-directive/src/main/antlr/SPLListener.ts b/packages/directive-spl/src/main/antlr/SPLListener.ts similarity index 100% rename from packages/spl-directive/src/main/antlr/SPLListener.ts rename to packages/directive-spl/src/main/antlr/SPLListener.ts diff --git a/packages/spl-directive/src/main/antlr/SPLParser.ts b/packages/directive-spl/src/main/antlr/SPLParser.ts similarity index 100% rename from packages/spl-directive/src/main/antlr/SPLParser.ts rename to packages/directive-spl/src/main/antlr/SPLParser.ts diff --git a/packages/spl-directive/src/main/antlr/SPLQueryToTreeConverter.ts b/packages/directive-spl/src/main/antlr/SPLQueryToTreeConverter.ts similarity index 100% rename from packages/spl-directive/src/main/antlr/SPLQueryToTreeConverter.ts rename to packages/directive-spl/src/main/antlr/SPLQueryToTreeConverter.ts diff --git a/packages/spl-directive/src/main/antlr/SPLVisitor.ts b/packages/directive-spl/src/main/antlr/SPLVisitor.ts similarity index 100% rename from packages/spl-directive/src/main/antlr/SPLVisitor.ts rename to packages/directive-spl/src/main/antlr/SPLVisitor.ts diff --git a/packages/spl-directive/src/main/functions/Concat.ts b/packages/directive-spl/src/main/functions/Concat.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Concat.ts rename to packages/directive-spl/src/main/functions/Concat.ts diff --git a/packages/spl-directive/src/main/functions/Day.ts b/packages/directive-spl/src/main/functions/Day.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Day.ts rename to packages/directive-spl/src/main/functions/Day.ts diff --git a/packages/spl-directive/src/main/functions/EvaluateDate.ts b/packages/directive-spl/src/main/functions/EvaluateDate.ts similarity index 100% rename from packages/spl-directive/src/main/functions/EvaluateDate.ts rename to packages/directive-spl/src/main/functions/EvaluateDate.ts diff --git a/packages/spl-directive/src/main/functions/EvaluateFunctionOperand.ts b/packages/directive-spl/src/main/functions/EvaluateFunctionOperand.ts similarity index 100% rename from packages/spl-directive/src/main/functions/EvaluateFunctionOperand.ts rename to packages/directive-spl/src/main/functions/EvaluateFunctionOperand.ts diff --git a/packages/spl-directive/src/main/functions/Intersection.ts b/packages/directive-spl/src/main/functions/Intersection.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Intersection.ts rename to packages/directive-spl/src/main/functions/Intersection.ts diff --git a/packages/spl-directive/src/main/functions/Keys.ts b/packages/directive-spl/src/main/functions/Keys.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Keys.ts rename to packages/directive-spl/src/main/functions/Keys.ts diff --git a/packages/spl-directive/src/main/functions/Len.ts b/packages/directive-spl/src/main/functions/Len.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Len.ts rename to packages/directive-spl/src/main/functions/Len.ts diff --git a/packages/spl-directive/src/main/functions/Month.ts b/packages/directive-spl/src/main/functions/Month.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Month.ts rename to packages/directive-spl/src/main/functions/Month.ts diff --git a/packages/spl-directive/src/main/functions/Now.ts b/packages/directive-spl/src/main/functions/Now.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Now.ts rename to packages/directive-spl/src/main/functions/Now.ts diff --git a/packages/spl-directive/src/main/functions/Reverse.ts b/packages/directive-spl/src/main/functions/Reverse.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Reverse.ts rename to packages/directive-spl/src/main/functions/Reverse.ts diff --git a/packages/spl-directive/src/main/functions/Split.ts b/packages/directive-spl/src/main/functions/Split.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Split.ts rename to packages/directive-spl/src/main/functions/Split.ts diff --git a/packages/spl-directive/src/main/functions/Year.ts b/packages/directive-spl/src/main/functions/Year.ts similarity index 100% rename from packages/spl-directive/src/main/functions/Year.ts rename to packages/directive-spl/src/main/functions/Year.ts diff --git a/packages/spl-directive/src/main/index.ts b/packages/directive-spl/src/main/index.ts similarity index 100% rename from packages/spl-directive/src/main/index.ts rename to packages/directive-spl/src/main/index.ts diff --git a/packages/spl-directive/src/main/limiter/Limit.ts b/packages/directive-spl/src/main/limiter/Limit.ts similarity index 100% rename from packages/spl-directive/src/main/limiter/Limit.ts rename to packages/directive-spl/src/main/limiter/Limit.ts diff --git a/packages/spl-directive/src/main/limiter/SPLLimitExtractor.ts b/packages/directive-spl/src/main/limiter/SPLLimitExtractor.ts similarity index 100% rename from packages/spl-directive/src/main/limiter/SPLLimitExtractor.ts rename to packages/directive-spl/src/main/limiter/SPLLimitExtractor.ts diff --git a/packages/spl-directive/src/main/predicate/SPLPredicateFilter.ts b/packages/directive-spl/src/main/predicate/SPLPredicateFilter.ts similarity index 100% rename from packages/spl-directive/src/main/predicate/SPLPredicateFilter.ts rename to packages/directive-spl/src/main/predicate/SPLPredicateFilter.ts diff --git a/packages/spl-directive/src/main/predicate/operations/BooleanListBooleansOperations.ts b/packages/directive-spl/src/main/predicate/operations/BooleanListBooleansOperations.ts similarity index 100% rename from packages/spl-directive/src/main/predicate/operations/BooleanListBooleansOperations.ts rename to packages/directive-spl/src/main/predicate/operations/BooleanListBooleansOperations.ts diff --git a/packages/spl-directive/src/main/predicate/operations/BooleanOperations.ts b/packages/directive-spl/src/main/predicate/operations/BooleanOperations.ts similarity index 100% rename from packages/spl-directive/src/main/predicate/operations/BooleanOperations.ts rename to packages/directive-spl/src/main/predicate/operations/BooleanOperations.ts diff --git a/packages/spl-directive/src/main/predicate/operations/DateOperations.ts b/packages/directive-spl/src/main/predicate/operations/DateOperations.ts similarity index 100% rename from packages/spl-directive/src/main/predicate/operations/DateOperations.ts rename to packages/directive-spl/src/main/predicate/operations/DateOperations.ts diff --git a/packages/spl-directive/src/main/predicate/operations/NumberOperations.ts b/packages/directive-spl/src/main/predicate/operations/NumberOperations.ts similarity index 100% rename from packages/spl-directive/src/main/predicate/operations/NumberOperations.ts rename to packages/directive-spl/src/main/predicate/operations/NumberOperations.ts diff --git a/packages/spl-directive/src/main/predicate/operations/PredicateOperation.ts b/packages/directive-spl/src/main/predicate/operations/PredicateOperation.ts similarity index 100% rename from packages/spl-directive/src/main/predicate/operations/PredicateOperation.ts rename to packages/directive-spl/src/main/predicate/operations/PredicateOperation.ts diff --git a/packages/spl-directive/src/main/predicate/operations/StringListStringOperations.ts b/packages/directive-spl/src/main/predicate/operations/StringListStringOperations.ts similarity index 100% rename from packages/spl-directive/src/main/predicate/operations/StringListStringOperations.ts rename to packages/directive-spl/src/main/predicate/operations/StringListStringOperations.ts diff --git a/packages/spl-directive/src/main/predicate/operations/StringOperations.ts b/packages/directive-spl/src/main/predicate/operations/StringOperations.ts similarity index 100% rename from packages/spl-directive/src/main/predicate/operations/StringOperations.ts rename to packages/directive-spl/src/main/predicate/operations/StringOperations.ts diff --git a/packages/spl-directive/src/main/predicate/operations/index.ts b/packages/directive-spl/src/main/predicate/operations/index.ts similarity index 100% rename from packages/spl-directive/src/main/predicate/operations/index.ts rename to packages/directive-spl/src/main/predicate/operations/index.ts diff --git a/packages/spl-directive/src/main/sorter/SPLComparatorFactory.ts b/packages/directive-spl/src/main/sorter/SPLComparatorFactory.ts similarity index 100% rename from packages/spl-directive/src/main/sorter/SPLComparatorFactory.ts rename to packages/directive-spl/src/main/sorter/SPLComparatorFactory.ts diff --git a/packages/spl-directive/src/main/sorter/SPLListFilterer.ts b/packages/directive-spl/src/main/sorter/SPLListFilterer.ts similarity index 100% rename from packages/spl-directive/src/main/sorter/SPLListFilterer.ts rename to packages/directive-spl/src/main/sorter/SPLListFilterer.ts diff --git a/packages/spl-directive/src/test/SPLListFilter.test.ts b/packages/directive-spl/src/test/SPLListFilter.test.ts similarity index 100% rename from packages/spl-directive/src/test/SPLListFilter.test.ts rename to packages/directive-spl/src/test/SPLListFilter.test.ts diff --git a/packages/spl-directive/src/test/SPLPredicateFilter.test.ts b/packages/directive-spl/src/test/SPLPredicateFilter.test.ts similarity index 100% rename from packages/spl-directive/src/test/SPLPredicateFilter.test.ts rename to packages/directive-spl/src/test/SPLPredicateFilter.test.ts diff --git a/packages/spl-directive/tsconfig-cjs.json b/packages/directive-spl/tsconfig-cjs.json similarity index 100% rename from packages/spl-directive/tsconfig-cjs.json rename to packages/directive-spl/tsconfig-cjs.json diff --git a/packages/spl-directive/tsconfig-esm.json b/packages/directive-spl/tsconfig-esm.json similarity index 100% rename from packages/spl-directive/tsconfig-esm.json rename to packages/directive-spl/tsconfig-esm.json diff --git a/packages/spl-directive/tsconfig.json b/packages/directive-spl/tsconfig.json similarity index 100% rename from packages/spl-directive/tsconfig.json rename to packages/directive-spl/tsconfig.json diff --git a/packages/spl-directive/vite.config.ts b/packages/directive-spl/vite.config.ts similarity index 100% rename from packages/spl-directive/vite.config.ts rename to packages/directive-spl/vite.config.ts diff --git a/packages/graphql-mesh/.meshrc.ts b/packages/graphql-mesh/.meshrc.ts index deb02e4..a79ec34 100644 --- a/packages/graphql-mesh/.meshrc.ts +++ b/packages/graphql-mesh/.meshrc.ts @@ -10,9 +10,9 @@ import { const config = { ...defaultConfig, transforms: [ - { 'spl-directive': {} }, - { 'headers-directive': {} }, - { 'no-auth-directive': {} }, + { 'directive-spl': {} }, + { 'directive-headers': {} }, + { 'directive-no-auth': {} }, ...(defaultConfig.transforms || []) ], sources: [...openapiSources, ...othersSources], diff --git a/packages/graphql-mesh/package-lock.json b/packages/graphql-mesh/package-lock.json index 5042da9..7199012 100644 --- a/packages/graphql-mesh/package-lock.json +++ b/packages/graphql-mesh/package-lock.json @@ -17,12 +17,12 @@ "@graphql-mesh/transform-type-merging": "^0.96.2", "@graphql-tools/schema": "^10.0.2", "@graphql-tools/utils": "^10.0.12", + "directive-headers": "file:./local-pkg/directive-headers-1.0.0.tgz", + "directive-no-auth": "file:./local-pkg/directive-no-auth-1.0.0.tgz", + "directive-spl": "file:./local-pkg/directive-spl-1.0.0.tgz", "glob": "^10.3.10", "graphql": "^16.8.1", - "headers-directive": "file:./local-pkg/headers-directive-1.0.0.tgz", - "no-auth-directive": "file:./local-pkg/no-auth-directive-1.0.0.tgz", "patch-package": "^8.0.0", - "spl-directive": "file:./local-pkg/spl-directive-1.0.0.tgz", "sucrase": "^3.35.0" }, "devDependencies": { @@ -3527,6 +3527,45 @@ "node": ">=8" } }, + "node_modules/directive-headers": { + "version": "1.0.0", + "resolved": "file:local-pkg/directive-headers-1.0.0.tgz", + "integrity": "sha512-iCxJ5MOi1bbb+2ebFn5n4a3ZDE7CDDMNT4moSksQrAVSxYYTXR6K6Bs1OuFD6O67FnX9IMi6cVmaLFIHmxOvWg==", + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, + "node_modules/directive-no-auth": { + "version": "1.0.0", + "resolved": "file:local-pkg/directive-no-auth-1.0.0.tgz", + "integrity": "sha512-H1lWlaIUKu9Ul0M1ZpjDqGrPj6VQsJvlRwCyCsrPVCgKDKB7VW72P9B0l5ZgQUTSGxe6ZKAk351wBmbojKMsgQ==", + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, + "node_modules/directive-spl": { + "version": "1.0.0", + "resolved": "file:local-pkg/directive-spl-1.0.0.tgz", + "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + }, + "peerDependencies": { + "@graphql-mesh/cache-localforage": "*", + "@graphql-mesh/types": "*", + "@graphql-mesh/utils": "*", + "@graphql-tools/utils": "*", + "graphql": "*" + } + }, "node_modules/dot-case": { "version": "3.0.4", "license": "MIT", @@ -4138,18 +4177,6 @@ "tslib": "^2.0.3" } }, - "node_modules/headers-directive": { - "version": "1.0.0", - "resolved": "file:local-pkg/headers-directive-1.0.0.tgz", - "integrity": "sha512-iCxJ5MOi1bbb+2ebFn5n4a3ZDE7CDDMNT4moSksQrAVSxYYTXR6K6Bs1OuFD6O67FnX9IMi6cVmaLFIHmxOvWg==", - "peerDependencies": { - "@graphql-mesh/cache-localforage": "*", - "@graphql-mesh/types": "*", - "@graphql-mesh/utils": "*", - "@graphql-tools/utils": "*", - "graphql": "*" - } - }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "license": "BSD-3-Clause", @@ -4985,18 +5012,6 @@ "node": ">= 0.6" } }, - "node_modules/no-auth-directive": { - "version": "1.0.0", - "resolved": "file:local-pkg/no-auth-directive-1.0.0.tgz", - "integrity": "sha512-H1lWlaIUKu9Ul0M1ZpjDqGrPj6VQsJvlRwCyCsrPVCgKDKB7VW72P9B0l5ZgQUTSGxe6ZKAk351wBmbojKMsgQ==", - "peerDependencies": { - "@graphql-mesh/cache-localforage": "*", - "@graphql-mesh/types": "*", - "@graphql-mesh/utils": "*", - "@graphql-tools/utils": "*", - "graphql": "*" - } - }, "node_modules/no-case": { "version": "3.0.4", "license": "MIT", @@ -6032,21 +6047,6 @@ "node": ">= 14" } }, - "node_modules/spl-directive": { - "version": "1.0.0", - "resolved": "file:local-pkg/spl-directive-1.0.0.tgz", - "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - }, - "peerDependencies": { - "@graphql-mesh/cache-localforage": "*", - "@graphql-mesh/types": "*", - "@graphql-mesh/utils": "*", - "@graphql-tools/utils": "*", - "graphql": "*" - } - }, "node_modules/sponge-case": { "version": "1.0.1", "license": "MIT", diff --git a/packages/graphql-mesh/package.json b/packages/graphql-mesh/package.json index 3440a06..969e681 100644 --- a/packages/graphql-mesh/package.json +++ b/packages/graphql-mesh/package.json @@ -1,7 +1,7 @@ { "scripts": { "build": "npm run downloadswaggers && mesh build", - "downloadswaggers": "NODE_TLS_REJECT_UNAUTHORIZED='0' sucrase-node ./scripts/downloadSources.ts", + "downloadswaggers": "NODE_TLS_REJECT_UNAUTHORIZED='0' sucrase-node ./scripts/download-sources.ts", "postinstall": "patch-package", "serve": "npm run build && sucrase-node serve.ts", "start": "npm run downloadswaggers && mesh dev" @@ -20,10 +20,10 @@ "@graphql-tools/utils": "^10.0.12", "glob": "^10.3.10", "graphql": "^16.8.1", - "headers-directive": "file:./local-pkg/headers-directive-1.0.0.tgz", - "no-auth-directive": "file:./local-pkg/no-auth-directive-1.0.0.tgz", + "directive-headers": "file:./local-pkg/directive-headers-1.0.0.tgz", + "directive-no-auth": "file:./local-pkg/directive-no-auth-1.0.0.tgz", "patch-package": "^8.0.0", - "spl-directive": "file:./local-pkg/spl-directive-1.0.0.tgz", + "directive-spl": "file:./local-pkg/directive-spl-1.0.0.tgz", "sucrase": "^3.35.0" }, "devDependencies": { diff --git a/packages/graphql-mesh/scripts/downloadSources.ts b/packages/graphql-mesh/scripts/download-sources.ts similarity index 97% rename from packages/graphql-mesh/scripts/downloadSources.ts rename to packages/graphql-mesh/scripts/download-sources.ts index 7236fd8..6896c04 100644 --- a/packages/graphql-mesh/scripts/downloadSources.ts +++ b/packages/graphql-mesh/scripts/download-sources.ts @@ -1,5 +1,5 @@ import { readFileOrUrl, DefaultLogger } from '@graphql-mesh/utils' -import { getConfig } from '../helpers' +import { getConfig } from '../helpers/config' import { writeFileSync, existsSync, mkdirSync } from 'node:fs' import { fetch } from '@whatwg-node/fetch' const logger = new DefaultLogger() From 25aff1f8af5b13ec19ca8f1b27e742dc3700c8ba Mon Sep 17 00:00:00 2001 From: Mbaye THIAM Date: Fri, 29 Mar 2024 13:24:08 +0100 Subject: [PATCH 6/9] =?UTF-8?q?=F0=9F=90=9B=20fix=20integrity=20check=20fo?= =?UTF-8?q?r=20local=20packages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 174 +++++++++++++++++++++++- packages/directive-spl/package.json | 3 + packages/graphql-mesh/package-lock.json | 3 - 3 files changed, 174 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f11417..6193513 100644 --- a/package-lock.json +++ b/package-lock.json @@ -980,6 +980,32 @@ } } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.12.0", "cpu": [ @@ -992,6 +1018,135 @@ "darwin" ] }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", + "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rushstack/node-core-library": { "version": "3.62.0", "dev": true, @@ -3039,6 +3194,19 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -3906,6 +4074,9 @@ "vite-plugin-dts": "^3.7.2", "vitest": "^1.3.0" }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.9.5" + }, "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -6360,7 +6531,6 @@ "packages/graphql-mesh/node_modules/directive-headers": { "version": "1.0.0", "resolved": "file:packages/graphql-mesh/local-pkg/directive-headers-1.0.0.tgz", - "integrity": "sha512-iCxJ5MOi1bbb+2ebFn5n4a3ZDE7CDDMNT4moSksQrAVSxYYTXR6K6Bs1OuFD6O67FnX9IMi6cVmaLFIHmxOvWg==", "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -6372,7 +6542,6 @@ "packages/graphql-mesh/node_modules/directive-no-auth": { "version": "1.0.0", "resolved": "file:packages/graphql-mesh/local-pkg/directive-no-auth-1.0.0.tgz", - "integrity": "sha512-H1lWlaIUKu9Ul0M1ZpjDqGrPj6VQsJvlRwCyCsrPVCgKDKB7VW72P9B0l5ZgQUTSGxe6ZKAk351wBmbojKMsgQ==", "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -6384,7 +6553,6 @@ "packages/graphql-mesh/node_modules/directive-spl": { "version": "1.0.0", "resolved": "file:packages/graphql-mesh/local-pkg/directive-spl-1.0.0.tgz", - "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" }, diff --git a/packages/directive-spl/package.json b/packages/directive-spl/package.json index cb7892b..523197a 100644 --- a/packages/directive-spl/package.json +++ b/packages/directive-spl/package.json @@ -41,5 +41,8 @@ }, "dependencies": { "antlr4ts": "^0.5.0-alpha.4" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.9.5" } } diff --git a/packages/graphql-mesh/package-lock.json b/packages/graphql-mesh/package-lock.json index 7199012..7bbf3d0 100644 --- a/packages/graphql-mesh/package-lock.json +++ b/packages/graphql-mesh/package-lock.json @@ -3530,7 +3530,6 @@ "node_modules/directive-headers": { "version": "1.0.0", "resolved": "file:local-pkg/directive-headers-1.0.0.tgz", - "integrity": "sha512-iCxJ5MOi1bbb+2ebFn5n4a3ZDE7CDDMNT4moSksQrAVSxYYTXR6K6Bs1OuFD6O67FnX9IMi6cVmaLFIHmxOvWg==", "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -3542,7 +3541,6 @@ "node_modules/directive-no-auth": { "version": "1.0.0", "resolved": "file:local-pkg/directive-no-auth-1.0.0.tgz", - "integrity": "sha512-H1lWlaIUKu9Ul0M1ZpjDqGrPj6VQsJvlRwCyCsrPVCgKDKB7VW72P9B0l5ZgQUTSGxe6ZKAk351wBmbojKMsgQ==", "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -3554,7 +3552,6 @@ "node_modules/directive-spl": { "version": "1.0.0", "resolved": "file:local-pkg/directive-spl-1.0.0.tgz", - "integrity": "sha512-zGEd/z6eTDazjR43aVHNXiRSNtEYvoR1GG/Vg7VLXQYgGarpxop1gDhm7OW++GO6rfSzObJrVCg7Xy+YHB4acg==", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" }, From 05370258113fdee3f1540ce5f8fe4e2abd9154f4 Mon Sep 17 00:00:00 2001 From: Mbaye THIAM Date: Fri, 29 Mar 2024 14:36:28 +0100 Subject: [PATCH 7/9] =?UTF-8?q?=F0=9F=93=A6=20Add=20local=20packages=20and?= =?UTF-8?q?=20fix=20units=20tests=20on=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 137 +----------------- package.json | 2 +- .../local-pkg/directive-headers-1.0.0.tgz | Bin 0 -> 2127 bytes .../local-pkg/directive-no-auth-1.0.0.tgz | Bin 0 -> 2167 bytes .../local-pkg/directive-spl-1.0.0.tgz | Bin 0 -> 52076 bytes packages/graphql-mesh/package-lock.json | 18 +++ 6 files changed, 25 insertions(+), 132 deletions(-) create mode 100644 packages/graphql-mesh/local-pkg/directive-headers-1.0.0.tgz create mode 100644 packages/graphql-mesh/local-pkg/directive-no-auth-1.0.0.tgz create mode 100644 packages/graphql-mesh/local-pkg/directive-spl-1.0.0.tgz diff --git a/package-lock.json b/package-lock.json index 6193513..4d6cb70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4181,19 +4181,6 @@ "graphql": "*" } }, - "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/brace-expansion": { "version": "1.1.11", "license": "MIT", @@ -4202,20 +4189,6 @@ "concat-map": "0.0.1" } }, - "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/chalk": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/cliui": { "version": "6.0.0", "license": "ISC", @@ -4225,20 +4198,6 @@ "wrap-ansi": "^6.2.0" } }, - "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/glob": { "version": "7.2.3", "license": "ISC", @@ -4257,13 +4216,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/minimatch": { "version": "3.1.2", "license": "ISC", @@ -4274,16 +4226,6 @@ "node": "*" } }, - "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "packages/graphql-mesh/node_modules/@ardatan/relay-compiler/node_modules/wrap-ansi": { "version": "6.2.0", "license": "MIT", @@ -5872,17 +5814,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "packages/graphql-mesh/node_modules/@mapbox/node-pre-gyp/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "packages/graphql-mesh/node_modules/@mapbox/node-pre-gyp/node_modules/minimatch": { "version": "3.1.2", "license": "ISC", @@ -5938,11 +5869,6 @@ "license": "ISC", "optional": true }, - "packages/graphql-mesh/node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC", - "optional": true - }, "packages/graphql-mesh/node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "license": "MIT", @@ -6029,17 +5955,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "packages/graphql-mesh/node_modules/@npmcli/fs/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "packages/graphql-mesh/node_modules/@npmcli/fs/node_modules/semver": { "version": "7.5.4", "license": "ISC", @@ -6054,11 +5969,6 @@ "node": ">=10" } }, - "packages/graphql-mesh/node_modules/@npmcli/fs/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC", - "optional": true - }, "packages/graphql-mesh/node_modules/@omnigraph/json-schema": { "version": "0.97.4", "license": "MIT", @@ -6531,6 +6441,7 @@ "packages/graphql-mesh/node_modules/directive-headers": { "version": "1.0.0", "resolved": "file:packages/graphql-mesh/local-pkg/directive-headers-1.0.0.tgz", + "integrity": "sha512-Gc8QFPyDLvQgAl1S4FMlz20JKRNbcQg28EM6x0zY1QPT84MuRj0l96DLU7jxvURI3StVAMiPATwSrMrp7WvtZA==", "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -6542,6 +6453,7 @@ "packages/graphql-mesh/node_modules/directive-no-auth": { "version": "1.0.0", "resolved": "file:packages/graphql-mesh/local-pkg/directive-no-auth-1.0.0.tgz", + "integrity": "sha512-yfHfdqjWoDi4seUzZ5g1Fm124ujbNz1gppXOFtuxGs4UV2dd9tn6LaszgsUnq/GMNtyoMtuqZ0c/QHPAzwSFAQ==", "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -6553,9 +6465,13 @@ "packages/graphql-mesh/node_modules/directive-spl": { "version": "1.0.0", "resolved": "file:packages/graphql-mesh/local-pkg/directive-spl-1.0.0.tgz", + "integrity": "sha512-vepLz1dzK+1Lb/RCAHIdFz+7ckxjtTW0tfh8xm+037tOWcJXklzmuxqBGk91LmOcFxFVllmeHHgGCID4qCwM8g==", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.9.5" + }, "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -7310,11 +7226,6 @@ "node": ">=8" } }, - "packages/graphql-mesh/node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC", - "optional": true - }, "packages/graphql-mesh/node_modules/minipass-pipeline": { "version": "1.2.4", "license": "ISC", @@ -7337,11 +7248,6 @@ "node": ">=8" } }, - "packages/graphql-mesh/node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC", - "optional": true - }, "packages/graphql-mesh/node_modules/minipass-sized": { "version": "1.0.3", "license": "ISC", @@ -7364,11 +7270,6 @@ "node": ">=8" } }, - "packages/graphql-mesh/node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC", - "optional": true - }, "packages/graphql-mesh/node_modules/minizlib": { "version": "2.1.2", "license": "MIT", @@ -7392,11 +7293,6 @@ "node": ">=8" } }, - "packages/graphql-mesh/node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC", - "optional": true - }, "packages/graphql-mesh/node_modules/mkdirp": { "version": "3.0.1", "license": "MIT", @@ -7480,17 +7376,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "packages/graphql-mesh/node_modules/node-gyp/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "packages/graphql-mesh/node_modules/node-gyp/node_modules/nopt": { "version": "7.2.0", "license": "ISC", @@ -7519,11 +7404,6 @@ "node": ">=10" } }, - "packages/graphql-mesh/node_modules/node-gyp/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC", - "optional": true - }, "packages/graphql-mesh/node_modules/node-libcurl": { "version": "3.0.1-0", "hasInstallScript": true, @@ -8107,11 +7987,6 @@ "node": ">=10" } }, - "packages/graphql-mesh/node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC", - "optional": true - }, "packages/graphql-mesh/node_modules/title-case": { "version": "3.0.3", "license": "MIT", diff --git a/package.json b/package.json index 371f4d5..a4d1c7d 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "clean:modules": "npm exec --workspaces -- npx rimraf node_modules && npx rimraf node_modules", "generate:mesh:lock": "cd packages/graphql-mesh && npm i --package-lock-only --workspaces=false", "postinstall": "npm run postinstall -w graphql-mesh && patch-package && npm run generate:mesh:lock", - "prepare": "concurrently \"npm run pack -w directive-spl\" \"npm run pack -w directive-headers\" \"npm run pack -w directive-no-auth\"", + "preinstall": "concurrently \"npm run pack -w directive-spl\" \"npm run pack -w directive-headers\" \"npm run pack -w directive-no-auth\"", "start": "npm start -w graphql-mesh" }, "devDependencies": { diff --git a/packages/graphql-mesh/local-pkg/directive-headers-1.0.0.tgz b/packages/graphql-mesh/local-pkg/directive-headers-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..4618084b0e104180c50d4f64a85ed2ad2a455aa5 GIT binary patch literal 2127 zcmV-V2(b4biwFP!00002|Ls~^bK5o+_OpKl%AKjD3`J2_H{xhh5Rx4=c5ZH($$GpV znt~)cBtZj|9dAbeeFqm_L{qlYb=7Q3JV+#P?l=ed2r_cq&(0h-&o7pqKW(~~tm%bQ z{KdFrJ5SY2)9iP0?a? zU%|EGFYy4xbcw;LZtc1xWHFdiCt6(j=PfV<6kjbpiffwc)KaQt?D=e+=4VCJhzapo zQ&0#7-(d{A#Lg5`Hu5NTWA7UON}Z6+2o1p3T>te~L&r^X7Fh{AWQz>JcE+n|q<-zsHRD*O-DK$gvt!c7q>= zAYA%Bcu_h!$YzDluCw&x15TC*wKgcHnNo+{hAyau_)DyVb4Hfb#X2~5=$z@CIu-+7 zI3pX}$)tV-(_|JISb?G7GKAf)$rQ6w^US)3eNo5+FwDs_W?ne0)zS`OOnPU8PJj)O zw_rFNf;}Z`uU@Xun}J$UU44UZdHNvP&W+>6fY)G6 zMWaMYiPEw)VF+qT6(?&9{H9`7HYICBEj5X=g!l%$r6lkeuGJKY4k+du%mWFWE!SEGwuaJ9%+$-c>A@>ToZ$j?h2*#tk=fA4UxMU>U0{%12cDIQC zI=u@2ZKr+J;@b#o1E9Gi2uOIzv{m&~^!I!Id-9@xbp5yb`*)uITD@Mks{gIj|1JO; zht_-vNWpeP0X2;yHSHQx=8=$7v<%ZQWpA=>1nPYd?+YAHkd?emR0NVZBgr2)WO7+4 z#ngxujXIvv5(ugpT82h7`Had%7|l&;1fhEKv_`pRbNW2F5^86jFHAd?N)^YmXU%7v z@=VY$mwHj&G(j|QFNIGrb3vmKQNrN}h?y()^@e-NMCB>d6c1*>Jv^8NcX>EH4M2m= zfV2+$_#+6T0MKO!QmJ=4-Ag7q$rJ;lseEWg6h{ul4YfEl^6GdW*S01n5zGg<&5rxI zF~uzQLMQe}2n?f{91H}QEt)=Y9lsHMo@;50r}%n=BOFd~=z2I8$Dc)FG`Wdf@4wro z(P|m3=ZQfv^Sui>V)Tu6+ReFyKVqzBw2gMAEy9>?P`75N>$nTt5a!MZb>_l^XNiu| z7nh|3LRgyN8^-VQCvQ(h->w9Df5`b?KKq~S5cSb2(N7Y)`sxbwk8lhN7g%t#`;GHkM%~;MHIf4b1BGRzEC}#0 z$Do9uSh1Zz$WUfP+Ig}@4v}yLK+5T^`brq|YKJ#*G2+|B*%KZWuClbw@;$S4ox}1FM2oT2w;?)6V})LprNu9DLgZu#>x843 z-)o^1NsfBJ^NFC(A|=*RBj#mTB2lDr8}2MKQ{GQy}HRxwLbR zj`{2!WP)UKS=(X-p;%@})LX7M-a4LCI2{qzi)Rz=DvDMtT>) zs}ZWsA^zm|zuUrpold6&|Me>T_ZPx{0{vy{9+4Pl456o1vSdq!3LIv%*+zPjq8P!# zYzUd1GWGJiuV5EHPY)?G^iT>WKYT}6l2ll-!jcu1tgz(Y4@*|?@qau20>3#)<_c_uHv z^&5Z-LVWCm);-_(4c7gs7w)YmJ3s%+KL7pM^zRrO!hf7Pm1wW|GL?Y}s}r@#O} F001zQ6uJNa literal 0 HcmV?d00001 diff --git a/packages/graphql-mesh/local-pkg/directive-no-auth-1.0.0.tgz b/packages/graphql-mesh/local-pkg/directive-no-auth-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..62673a03267a1909cb20927ce13aa2990bd05712 GIT binary patch literal 2167 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ΠUnQ`{6>zI-V-F^uU&HbBiG1Fvlf#( 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 literal 0 HcmV?d00001 diff --git a/packages/graphql-mesh/package-lock.json b/packages/graphql-mesh/package-lock.json index 7bbf3d0..95cef91 100644 --- a/packages/graphql-mesh/package-lock.json +++ b/packages/graphql-mesh/package-lock.json @@ -2663,6 +2663,18 @@ "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", "integrity": "sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==" }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", + "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@tsconfig/node10": { "version": "1.0.9", "license": "MIT" @@ -3530,6 +3542,7 @@ "node_modules/directive-headers": { "version": "1.0.0", "resolved": "file:local-pkg/directive-headers-1.0.0.tgz", + "integrity": "sha512-Gc8QFPyDLvQgAl1S4FMlz20JKRNbcQg28EM6x0zY1QPT84MuRj0l96DLU7jxvURI3StVAMiPATwSrMrp7WvtZA==", "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -3541,6 +3554,7 @@ "node_modules/directive-no-auth": { "version": "1.0.0", "resolved": "file:local-pkg/directive-no-auth-1.0.0.tgz", + "integrity": "sha512-yfHfdqjWoDi4seUzZ5g1Fm124ujbNz1gppXOFtuxGs4UV2dd9tn6LaszgsUnq/GMNtyoMtuqZ0c/QHPAzwSFAQ==", "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", @@ -3552,9 +3566,13 @@ "node_modules/directive-spl": { "version": "1.0.0", "resolved": "file:local-pkg/directive-spl-1.0.0.tgz", + "integrity": "sha512-vepLz1dzK+1Lb/RCAHIdFz+7ckxjtTW0tfh8xm+037tOWcJXklzmuxqBGk91LmOcFxFVllmeHHgGCID4qCwM8g==", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.9.5" + }, "peerDependencies": { "@graphql-mesh/cache-localforage": "*", "@graphql-mesh/types": "*", From f61d67d7eda324d5ca47a1d4a6244d736eef263d Mon Sep 17 00:00:00 2001 From: Mbaye THIAM Date: Tue, 2 Apr 2024 09:33:10 +0200 Subject: [PATCH 8/9] =?UTF-8?q?=F0=9F=93=A6=20fix=20lock=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/graphql-mesh/package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/graphql-mesh/package-lock.json b/packages/graphql-mesh/package-lock.json index 95cef91..b7d12b1 100644 --- a/packages/graphql-mesh/package-lock.json +++ b/packages/graphql-mesh/package-lock.json @@ -1849,11 +1849,11 @@ } }, "node_modules/@graphql-tools/executor": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.4.tgz", - "integrity": "sha512-aCO/5LEAwyTWObAAfpLlwAjaOjTxRX6YNXcGW62mglQhPBy+j0fTc4desci/4nJ49l8FWETaTG0MZ1G/PqQslg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.1.tgz", + "integrity": "sha512-BP5UI1etbNOXmTSt7q4NL1+zsURFgh2pG+Hyt9K/xO0LlsfbSx59L5dHLerqZP7Js0xI6GYqrUQ4m29rUwUHJg==", "dependencies": { - "@graphql-tools/utils": "^10.1.1", + "@graphql-tools/utils": "^10.0.13", "@graphql-typed-document-node/core": "3.2.0", "@repeaterjs/repeater": "^3.0.4", "tslib": "^2.4.0", From 65c2b49415b3236995b0ebc2b587340a0cdb0503 Mon Sep 17 00:00:00 2001 From: Mbaye THIAM Date: Tue, 2 Apr 2024 14:15:31 +0200 Subject: [PATCH 9/9] =?UTF-8?q?=F0=9F=91=B7=20Copy=20patches=20files=20for?= =?UTF-8?q?=20Docker=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 22f2a95..984f6da 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,8 +20,8 @@ jobs: node-version: 18 registry-url: https://registry.npmjs.org/ - - name: Install dependencies - run: npm install + - name: Copy patches for Docker Buildx + run: cp -r patches/* packages/graphql-mesh/patches - name: Set up Docker Buildx id: buildx