From 4685670ccdffcd7bbf8a21c9654461986eadd971 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Thu, 2 Jul 2026 11:08:26 -0400 Subject: [PATCH 01/21] Add AWS auth setup & type corrections --- apps/search-server/package.json | 3 +- apps/search-server/pnpm-lock.yaml | 2882 +++++++++++++++++ .../src/admin/schemas/ProjectSchema/utils.ts | 135 +- modules/graphql-router/src/router.ts | 5 +- .../searchClient/createOpenSearchClient.ts | 2 +- .../graphql-router/src/searchClient/index.ts | 33 +- .../graphql-router/src/searchClient/types.ts | 21 +- package-lock.json | 448 ++- 8 files changed, 3445 insertions(+), 84 deletions(-) create mode 100644 apps/search-server/pnpm-lock.yaml diff --git a/apps/search-server/package.json b/apps/search-server/package.json index bec016dbf..82f191527 100644 --- a/apps/search-server/package.json +++ b/apps/search-server/package.json @@ -21,9 +21,10 @@ "test": "tsx --test ./src/**/*.test.ts" }, "dependencies": { + "@aws-sdk/credential-provider-node": "^3.972.60", "@overture-stack/arranger-graphql-router": "file:../../modules/graphql-router", - "@overture-stack/sqon": "file:../../modules/sqon", "@overture-stack/arranger-types": "file:../../modules/types", + "@overture-stack/sqon": "file:../../modules/sqon", "cors": "^2.8.5", "dotenv": "^16.0.3", "express": "^4.18.2", diff --git a/apps/search-server/pnpm-lock.yaml b/apps/search-server/pnpm-lock.yaml new file mode 100644 index 000000000..69c8a03d2 --- /dev/null +++ b/apps/search-server/pnpm-lock.yaml @@ -0,0 +1,2882 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@aws-sdk/credential-provider-node': + specifier: ^3.972.60 + version: 3.972.60 + '@overture-stack/arranger-graphql-router': + specifier: file:../../modules/graphql-router + version: file:../../modules/graphql-router + '@overture-stack/arranger-types': + specifier: file:../../modules/types + version: file:../../modules/types + '@overture-stack/sqon': + specifier: file:../../modules/sqon + version: file:../../modules/sqon + cors: + specifier: ^2.8.5 + version: 2.8.6 + dotenv: + specifier: ^16.0.3 + version: 16.6.1 + express: + specifier: ^4.18.2 + version: 4.22.2 + morgan: + specifier: ^1.10.1 + version: 1.11.0 + tsx: + specifier: ^4.19.2 + version: 4.22.4 + devDependencies: + '@tsconfig/node22': + specifier: ^22.0.0 + version: 22.0.5 + '@types/cors': + specifier: ^2.8.17 + version: 2.8.19 + '@types/express': + specifier: ^4.17.21 + version: 4.17.25 + '@types/node': + specifier: ^22.19.13 + version: 22.20.0 + typescript: + specifier: ^5.8.2 + version: 5.9.3 + +packages: + + '@apollo/protobufjs@1.2.6': + resolution: {integrity: sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==} + hasBin: true + + '@apollo/protobufjs@1.2.8': + resolution: {integrity: sha512-r7xNeUqZX+eBBEmyvaPw0/cSz6zgf5jdH8mjUz8ynKpNs/GU7vi2T7sNcZINk2ZID7wwjG91FCgdpCrQuJ8rzA==} + hasBin: true + + '@apollo/usage-reporting-protobuf@4.1.2': + resolution: {integrity: sha512-aTnAD41RYz0d5dawlyR5Iclkgzx0Xb0njUJmEfvZ6pS4f4HU8wCYyctPpWat/HWp2PmRwDfX5R1k4uVcDKZ4xA==} + + '@apollo/utils.dropunuseddefinitions@1.1.0': + resolution: {integrity: sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==} + engines: {node: '>=12.13.0'} + peerDependencies: + graphql: 14.x || 15.x || 16.x + + '@apollo/utils.keyvaluecache@1.0.2': + resolution: {integrity: sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==} + + '@apollo/utils.logger@1.0.1': + resolution: {integrity: sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==} + + '@apollo/utils.printwithreducedwhitespace@1.1.0': + resolution: {integrity: sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==} + engines: {node: '>=12.13.0'} + peerDependencies: + graphql: 14.x || 15.x || 16.x + + '@apollo/utils.removealiases@1.0.0': + resolution: {integrity: sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==} + engines: {node: '>=12.13.0'} + peerDependencies: + graphql: 14.x || 15.x || 16.x + + '@apollo/utils.sortast@1.1.0': + resolution: {integrity: sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==} + engines: {node: '>=12.13.0'} + peerDependencies: + graphql: 14.x || 15.x || 16.x + + '@apollo/utils.stripsensitiveliterals@1.2.0': + resolution: {integrity: sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==} + engines: {node: '>=12.13.0'} + peerDependencies: + graphql: 14.x || 15.x || 16.x + + '@apollo/utils.usagereporting@1.0.1': + resolution: {integrity: sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==} + engines: {node: '>=12.13.0'} + peerDependencies: + graphql: 14.x || 15.x || 16.x + + '@apollographql/apollo-tools@0.5.4': + resolution: {integrity: sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==} + engines: {node: '>=8', npm: '>=6'} + peerDependencies: + graphql: ^14.2.1 || ^15.0.0 || ^16.0.0 + + '@apollographql/graphql-playground-html@1.6.29': + resolution: {integrity: sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==} + + '@aws-sdk/core@3.974.25': + resolution: {integrity: sha512-fJFkx6u6wCqGMV/v6EAxiwa2UzEukbvr1hNPv4MrD3yj4IFz011jZg42/eSTOP/u5kJ0tlILqEjCWtT8GiKZvA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-env@3.972.51': + resolution: {integrity: sha512-Xo+/zf5k5pZdo53X8aVXN4MJGfU/M1P7yMM/GbNY/x9fyRZGEzjhKqW38GA0FSQQ9TYKs+bfPyz5ja4bi6pjTQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-http@3.972.53': + resolution: {integrity: sha512-7E9oFUcf9YWe+ttGiWhe/cCSI+pswwelzgQMoKXgPJi1AIfS27TK6et5ZULqEqHu30zbN+jh1RqlwcXqY/aXyg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-ini@3.972.58': + resolution: {integrity: sha512-MPr0hD8pyDGfF3dWXvFOILhcKTB9ptqJOJK9JEuDQzpc2HgKisY16eR7IrKUXxSbz8LZj+LHz/CS8Y5G1ai7yw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-login@3.972.57': + resolution: {integrity: sha512-kPWc/SCrl9agKeywxKwPEoQHanWag0LcNQrcZpEQpjNifkxq6tQENhgrrS9al317CF6yytyihlX+FhPHlk0QjA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-node@3.972.60': + resolution: {integrity: sha512-hE2hIBJQjCDRx8TbSqpVQ+/o2mIrJZQZbQ3LlwE2bJf7z47x5GmhcvGwZPqJH7Oq//SzTXEBGSZ4qSpK3yPbhw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-process@3.972.51': + resolution: {integrity: sha512-081dD2RlnmY+G05v6E73KfACvDjPjnttrLjGHE2SSglbID25UcuijbWpL4g+XR5T2Kl4oIJoVBXi64s+2f009Q==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-sso@3.972.57': + resolution: {integrity: sha512-dC7ZyX3EHKHLOeVUEDzzGvk0L1s6N06YDrau7P0rGXL/j1cO+DzN2w1x9vcEh7zljVCR3019f5mi1Th+GGTURw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.972.57': + resolution: {integrity: sha512-HtWM3FV2o7NJFJSUqFLBlxmV9RxQRHpzCvQaP1n1Qo4CxQSvwpJ8ERWHiLqXMFDgDXyELt+EZNFcpG6XQRcJbQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/nested-clients@3.997.25': + resolution: {integrity: sha512-VpRQ3wR6l+fwRHV5veJL2ehtyQFrGyH/2CJG9DVtb8H3xyqqnZWSTSrq/CJJ7DvDlDgrPRiW2SkYA8pN6VWCFQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.996.37': + resolution: {integrity: sha512-u8qd064XsHzM0Mk+yH4IPKn/ZC9rdniEKs+neBHNlsPZirw3rcLvmrH4ImoKC4yF7A0I/MbcC3dseARnJLiAhg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/token-providers@3.1077.0': + resolution: {integrity: sha512-sRUkfZ3fpOco95jZHsQUQiXvuIVLvCmWVclFg6dRFDyfsYs6Pdr/NuZ2+yJxeHN+6WAfDh2aZ8nlZntnvuhZUQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/types@3.973.14': + resolution: {integrity: sha512-vH4pEu9YBEwr67yT+GVcmKX0GzfIrIYUn+MF5vXg9OspouVnAekuyVyawFvZHEK7WlcwVDwNrqI3ZBDUAiyu9A==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/xml-builder@3.972.32': + resolution: {integrity: sha512-2loKuOMRFDg1nwdni5AtJ9S5juVbRNPNsPC7tWTfkHyycPwACMhxepspUHi8GhvfNlL2cQo3sPMod1uib+KZ0w==} + engines: {node: '>=20.0.0'} + + '@aws/lambda-invoke-store@0.2.4': + resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} + engines: {node: '>=18.0.0'} + + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} + engines: {node: '>=6.9.0'} + + '@elastic/elasticsearch@7.17.14': + resolution: {integrity: sha512-6uQ1pVXutwz1Krwooo67W+3K8BwH1ASMh1WoHTpomUzw8EXecXN5lHIJ9EPqTHuv1WqR2LKkSJyagcq0HYUJpg==} + engines: {node: '>=12'} + + '@esbuild/aix-ppc64@0.28.1': + resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.28.1': + resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.28.1': + resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.28.1': + resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.28.1': + resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.28.1': + resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.28.1': + resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.28.1': + resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.28.1': + resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.28.1': + resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.28.1': + resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.28.1': + resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.28.1': + resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.28.1': + resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.28.1': + resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.28.1': + resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.28.1': + resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.28.1': + resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.28.1': + resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.28.1': + resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.28.1': + resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.28.1': + resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.28.1': + resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.28.1': + resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.28.1': + resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.28.1': + resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@graphql-tools/batch-execute@8.5.1': + resolution: {integrity: sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/delegate@8.8.1': + resolution: {integrity: sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/merge@8.3.1': + resolution: {integrity: sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/merge@8.4.2': + resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/merge@9.1.10': + resolution: {integrity: sha512-CsUCcPXv/HMWpPZ/xoOioSWFuAaAsGGPIdqQbjDv9X1sHGs0muQRW5FK7vUBN4OH/D7aPqpiHvKmRsrHz+ScuQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/mock@8.7.20': + resolution: {integrity: sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/schema@8.5.1': + resolution: {integrity: sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/schema@9.0.19': + resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/utils@10.11.0': + resolution: {integrity: sha512-iBFR9GXIs0gCD+yc3hoNswViL1O5josI33dUqiNStFI/MHLCEPduasceAcazRH77YONKNiviHBV8f7OgcT4o2Q==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/utils@11.1.1': + resolution: {integrity: sha512-MuWwacINZZV6mX1ZSk6CcV4XVQLsbKBG/hLd0QPhe4GHxjqr2ATjKsnnwlB0TKI+QQvj2U8ewu8WeAzz9kC2Xg==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/utils@8.9.0': + resolution: {integrity: sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/utils@9.2.1': + resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-typed-document-node/core@3.2.0': + resolution: {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 + + '@josephg/resolvable@1.0.1': + resolution: {integrity: sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==} + + '@jsep-plugin/assignment@1.3.0': + resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@jsep-plugin/regex@1.0.4': + resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@opensearch-project/opensearch@3.6.0': + resolution: {integrity: sha512-ow1A/Z7MBlNL/JZzTY4+M+8psiVh66g0Z7EQSl/qbT0U6zLBsVDYh6nvm8D4e4tIzQtn6ODbA2OsqYGvqZj76g==} + engines: {node: '>=14', yarn: ^1.22.10} + + '@overture-stack/arranger-graphql-router@file:../../modules/graphql-router': + resolution: {directory: ../../modules/graphql-router, type: directory} + + '@overture-stack/arranger-types@file:../../modules/types': + resolution: {directory: ../../modules/types, type: directory} + + '@overture-stack/sqon-builder@1.1.0': + resolution: {integrity: sha512-HpxJBbhN2FIIpSKOHoezua7/2by9S7qpnuaG5qgpm69nLUX0KnW2fwGVELJ3PMW1DpU8qg74kASozUnST0F+cQ==} + + '@overture-stack/sqon@file:../../modules/sqon': + resolution: {directory: ../../modules/sqon, type: directory} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.5': + resolution: {integrity: sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==} + + '@protobufjs/eventemitter@1.1.1': + resolution: {integrity: sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==} + + '@protobufjs/fetch@1.1.1': + resolution: {integrity: sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.2': + resolution: {integrity: sha512-pa0vFRuws4wkvaXKK1uXZMAwAX4/t8ANaJo45iw/oQHNQ9q5xUzwgFmVJGXiga2BeN+zpX7Vf9vmsiIa2J+MUw==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.1': + resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==} + + '@smithy/core@3.28.0': + resolution: {integrity: sha512-N/LoLG8pZ1zv5cIWpdF6vmSjtZtXKK9G0OqT5yYCOZU+CzPq1+nYA95VoKJBGWRScs7YbMugZ7lZx8Fj1vdHoA==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@4.4.4': + resolution: {integrity: sha512-jT0WrDaM88L5na9FX1xRNywCS3B1n75wPY5Ksasjo0PHUtuI7d8FclksN1BbOSYTiaiKxUDqU23nUymH/V+AaQ==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@5.6.1': + resolution: {integrity: sha512-fW6l9rWoyk1iyzfuZaERnZLNjB6WIojgGm6Bo9Hpfpy3RUpltjLikNlxTsS/YtxVobcfbCGBuAncREYqT4hvqQ==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@4.9.1': + resolution: {integrity: sha512-m/f15di58P6NtLQ7eVEb5N19NdJWn+4c7zfkFHMT/i3JH7U8UtknpPoy8o2tm2R3OdliYvsvQhZHIfACQDqT+Q==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.6.0': + resolution: {integrity: sha512-IkPHQdbyoebSwBCuMTzJ/2oIhKVqiZZAZxQYSlpDZqq/WhJUpmdgbHvP7ItddxsPzcDUJeI0V4PNMSNtlZ0aqA==} + engines: {node: '>=18.0.0'} + + '@smithy/types@4.15.0': + resolution: {integrity: sha512-Z5TAOxygoFvybJV3igo5SloFflSokHx2hu1eFA+DxDTcn+FtKxUSui+rbTRG1pAafMA888Z3MVvCWUuvCrTXjg==} + engines: {node: '>=18.0.0'} + + '@tsconfig/node22@22.0.5': + resolution: {integrity: sha512-hLf2ld+sYN/BtOJjHUWOk568dvjFQkHnLNa6zce25GIH+vxKfvTgm3qpaH6ToF5tu/NN0IH66s+Bb5wElHrLcw==} + + '@types/accepts@1.3.7': + resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + + '@types/body-parser@1.19.2': + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/cors@2.8.12': + resolution: {integrity: sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==} + + '@types/cors@2.8.19': + resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + + '@types/express-serve-static-core@4.17.31': + resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} + + '@types/express-serve-static-core@4.19.8': + resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} + + '@types/express@4.17.14': + resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} + + '@types/express@4.17.25': + resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} + + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + + '@types/long@4.0.2': + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/node@10.17.60': + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + + '@types/node@22.20.0': + resolution: {integrity: sha512-QWlFW2wf3nTjC13/DqRnBpR4ZO36VJH/JVBkA/vcnmbTBNQIlnObqyqZE1tUR7+Ni23Lda8R1BxMfbXRpCUx5g==} + + '@types/qs@6.15.1': + resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/send@0.17.6': + resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} + + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + + '@types/serve-static@1.15.10': + resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} + + '@types/serve-static@2.2.0': + resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} + + '@whatwg-node/promise-helpers@1.3.2': + resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==} + engines: {node: '>=16.0.0'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + apollo-datasource@3.3.2: + resolution: {integrity: sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==} + engines: {node: '>=12.0'} + deprecated: The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. + + apollo-reporting-protobuf@3.4.0: + resolution: {integrity: sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==} + deprecated: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. + + apollo-server-core@3.13.0: + resolution: {integrity: sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==} + engines: {node: '>=12.0'} + deprecated: The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. + peerDependencies: + graphql: ^15.3.0 || ^16.0.0 + + apollo-server-env@4.2.1: + resolution: {integrity: sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==} + engines: {node: '>=12.0'} + deprecated: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. + + apollo-server-errors@3.3.1: + resolution: {integrity: sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==} + engines: {node: '>=12.0'} + deprecated: The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. + peerDependencies: + graphql: ^15.3.0 || ^16.0.0 + + apollo-server-express@3.13.0: + resolution: {integrity: sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==} + engines: {node: '>=12.0'} + deprecated: The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. + peerDependencies: + express: ^4.17.1 + graphql: ^15.3.0 || ^16.0.0 + + apollo-server-plugin-base@3.7.2: + resolution: {integrity: sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==} + engines: {node: '>=12.0'} + deprecated: The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. + peerDependencies: + graphql: ^15.3.0 || ^16.0.0 + + apollo-server-types@3.8.0: + resolution: {integrity: sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==} + engines: {node: '>=12.0'} + deprecated: The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. + peerDependencies: + graphql: ^15.3.0 || ^16.0.0 + + apollo-server@3.13.0: + resolution: {integrity: sha512-hgT/MswNB5G1r+oBhggVX4Fjw53CFLqG15yB5sN+OrYkCVWF5YwPbJWHfSWa7699JMEXJGaoVfFzcvLZK0UlDg==} + deprecated: The `apollo-server` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. + peerDependencies: + graphql: ^15.3.0 || ^16.0.0 + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + + axios@1.18.1: + resolution: {integrity: sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + body-parser@1.20.5: + resolution: {integrity: sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bowser@2.14.1: + resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-units@2.3.4: + resolution: {integrity: sha512-ERHfdA0UhHJp1IpwE6PnFJx8LqG7B1ZjJ20UvVCmopEnVCfER68Tbe3kvN63dLbYXDA2xFWRE6zd4Wsf0w7POg==} + + cookie-signature@1.0.7: + resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} + engines: {node: '>= 0.10'} + + cross-inspect@1.0.1: + resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==} + engines: {node: '>=16.0.0'} + + cssfilter@0.0.10: + resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} + + dataloader@2.1.0: + resolution: {integrity: sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==} + + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + esbuild@0.28.1: + resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} + engines: {node: '>=18'} + hasBin: true + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + express@4.22.2: + resolution: {integrity: sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==} + engines: {node: '>= 0.10.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + finalhandler@1.3.2: + resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} + engines: {node: '>= 0.8'} + + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} + engines: {node: '>= 6'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graphql-fields@2.0.3: + resolution: {integrity: sha512-x3VE5lUcR4XCOxPIqaO4CE+bTK8u6gVouOdpQX9+EKHr+scqtK5Pp/l8nIGqIpN1TUlkKE6jDCCycm/WtLRAwA==} + + graphql-middleware@6.1.35: + resolution: {integrity: sha512-azawK7ApUYtcuPGRGBR9vDZu795pRuaFhO5fgomdJppdfKRt7jwncuh0b7+D3i574/4B+16CNWgVpnGVlg3ZCg==} + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + graphql-playground-html@1.6.30: + resolution: {integrity: sha512-tpCujhsJMva4aqE8ULnF7/l3xw4sNRZcSHu+R00VV+W0mfp+Q20Plvcrp+5UXD+2yS6oyCXncA+zoQJQqhGCEw==} + + graphql-playground-middleware-express@1.7.23: + resolution: {integrity: sha512-M/zbTyC1rkgiQjFSgmzAv6umMHOphYLNWZp6Ye5QrD77WfGOOoSqDsVmGUczc2pDkEPEzzGB/bvBO5rdzaTRgw==} + peerDependencies: + express: ^4.16.2 + + graphql-scalars@1.25.0: + resolution: {integrity: sha512-b0xyXZeRFkne4Eq7NAnL400gStGqG/Sx9VqX0A05nHyEbv57UJnWKsjNnrpVqv5e/8N1MUxkt0wwcRXbiyKcFg==} + 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 + + graphql-tag@2.12.7: + resolution: {integrity: sha512-xnE/NFzy+0eIesvAsREJZ284zTl/wYuBAvpsFSDhRGRdRHdnE90M21Q3xAWyYInb0J756c6x0pIQ62+vtvOs1Q==} + 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 || ^17.0.0 + + graphql-type-json@0.3.2: + resolution: {integrity: sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==} + peerDependencies: + graphql: '>=0.8.0' + + graphql@16.14.2: + resolution: {integrity: sha512-Chq1s4CY7jmh8gO2qvLIJyfCDIN+EHLFW/9iShnp1z8FjBQMoodWP1kDC36VAMXXIvAjj4ARa7ntfAV2BrjsbA==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + + hpagent@0.1.2: + resolution: {integrity: sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==} + + hpagent@1.2.0: + resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} + engines: {node: '>=14'} + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + jsep@1.4.0: + resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} + engines: {node: '>= 10.16.0'} + + json11@2.0.2: + resolution: {integrity: sha512-HIrd50UPYmP6sqLuLbFVm75g16o0oZrVfxrsY0EEys22klz8mRoWlX9KAEDOSOR9Q34rcxsyC8oDveGrCz5uLQ==} + hasBin: true + + jsonpath-plus@10.4.0: + resolution: {integrity: sha512-T92WWatJXmhBbKsgH/0hl+jxjdXrifi5IKeMY02DWggRxX0UElcbVzPlmgLTbvsPeW1PasQ6xE2Q75stkhGbsA==} + engines: {node: '>=18.0.0'} + hasBin: true + + lodash-es@4.18.1: + resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + + lodash._basebind@2.3.0: + resolution: {integrity: sha512-SHqM7YCuJ+BeGTs7lqpWnmdHEeF4MWxS3dksJctHFNxR81FXPOzA4bS5Vs5CpcGTkBpM8FCl+YEbQEblRw8ABg==} + + lodash._basecreate@2.3.0: + resolution: {integrity: sha512-vwZaWldZwS2y9b99D8i9+WtgiZXbHKsBsMrpxJEqTsNW20NhJo5W8PBQkeQO9CmxuqEYn8UkMnfEM2MMT4cVrw==} + + lodash._basecreatecallback@2.3.0: + resolution: {integrity: sha512-Ev+pDzzfVfgbiucpXijconLGRBar7/+KNCf05kSnk4CmdDVhAy1RdbU9efCJ/o9GXI08JdUGwZ+5QJ3QX3kj0g==} + + lodash._basecreatewrapper@2.3.0: + resolution: {integrity: sha512-YLycQ7k8AB9Wc1EOvLNxuRWcqipDkMXq2GCgnLWQR6qtgTb3gY3LELzEpnFshrEO4LOLs+R2EpcY+uCOZaLQ8Q==} + + lodash._createwrapper@2.3.0: + resolution: {integrity: sha512-XjaI/rzg9W+WO4WJDQ+PRlHD5sAMJ1RhJLuT65cBxLCb1kIYs4U20jqvTDGAWyVT3c34GYiLd9AreHYuB/8yJA==} + + lodash._objecttypes@2.3.0: + resolution: {integrity: sha512-jbA6QyHt9cw3BzvbWzIcnU3Z12jSneT6xBgz3Y782CJsN1tV5aTBKrFo2B4AkeHBNaxSrbPYZZpi1Lwj3xjdtg==} + + lodash._renative@2.3.0: + resolution: {integrity: sha512-v44MRirqYqZGK/h5UKoVqXWF2L+LUiLTU+Ogu5rHRVWJUA1uWIlHaMpG8f/OA8j++BzPMQij9+erXHtgFcbuwg==} + + lodash._setbinddata@2.3.0: + resolution: {integrity: sha512-xMFfbF7dL+sFtrdE49uHFmfpBAEwlFtfgMp86nQRlAF6aizYL+3MTbnYMKJSkP1W501PhsgiBED5kBbZd8kR2g==} + + lodash._shimkeys@2.3.0: + resolution: {integrity: sha512-9Iuyi7TiWMGa/9+2rqEE+Zwye4b/U2w7Saw6UX1h6Xs88mEER+uz9FZcEBPKMVKsad9Pw5GNAcIBRnW2jNpneQ==} + + lodash._slice@2.3.0: + resolution: {integrity: sha512-7C61GhzRUv36gTafr+RIb+AomCAYsSATEoK4OP0VkNBcwvsM022Z22AVgqjjzikeNO1U29LzsJZDvLbiNPUYvA==} + + lodash.bind@2.3.0: + resolution: {integrity: sha512-goakyOo+FMN8lttMPnZ0UNlr5RlzX4IrUXyTJPT2A0tGCMXySupond9wzvDqTvVmYTcQjIKGrj8naJDS2xWAlQ==} + + lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + + lodash.foreach@2.3.0: + resolution: {integrity: sha512-yLnyptVRJd0//AbGp480grgQG9iaDIV5uOgSbpurRy1dYybPbjNTLQ3FyLEQ84buVLPG7jyaiyvpzgfOutRB3Q==} + + lodash.forown@2.3.0: + resolution: {integrity: sha512-dUnCsuQTtq3Y7bxPNoEEqjJjPL2ftLtcz2PTeRKvhbpdM514AvnqCjewHGsm/W+dwspIwa14KoWEZeizJ7smxA==} + + lodash.identity@2.3.0: + resolution: {integrity: sha512-NYJ2r2cwy3tkx/saqbIZEX6oQUzjWTnGRu7d/zmBjMCZos3eHBxCpbvWFWSetv8jFVrptsp6EbWjzNgBKhUoOA==} + + lodash.isfunction@2.3.0: + resolution: {integrity: sha512-X5lteBYlCrVO7Qc00fxP8W90fzRp6Ax9XcHANmU3OsZHdSyIVZ9ZlX5QTTpRq8aGY+9I5Rmd0UTzTIIyWPugEQ==} + + lodash.isobject@2.3.0: + resolution: {integrity: sha512-jo1pfV61C4TE8BfEzqaHj6EIKiSkFANJrB6yscwuCJMSRw5tbqjk4Gv7nJzk4Z6nFKobZjGZ8Qd41vmnwgeQqQ==} + + lodash.keys@2.3.0: + resolution: {integrity: sha512-c0UW0ffqMxSCtoVbmVt2lERJLkEqgoOn2ejPsWXzr0ZrqRbl3uruGgwHzhtqXxi6K/ei3Ey7zimOqSwXgzazPg==} + + lodash.noop@2.3.0: + resolution: {integrity: sha512-NpSm8HRm1WkBBWHUveDukLF4Kfb5P5E3fjHc9Qre9A11nNubozLWD2wH3UBTZbu+KSuX8aSUvy9b+PUyEceJ8g==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lodash.support@2.3.0: + resolution: {integrity: sha512-etc7VWbB0U3Iya8ixj2xy4sDBN3jvPX7ODi8iXtn4KkkjNpdngrdc7Vlt5jub/Vgqx6/dWtp7Ml9awhCQPYKGQ==} + + loglevel@1.9.2: + resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} + engines: {node: '>= 0.6.0'} + + long@4.0.0: + resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-cache@7.13.1: + resolution: {integrity: sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==} + engines: {node: '>=12'} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + morgan@1.11.0: + resolution: {integrity: sha512-zSkVu3t18r39pw4ixfBKvfZi3y2UOqr7d4WYwcj3m8nXpEQK4rPO6GLzs/CExoRgmX3y9EjmmcXqv6jq0SK46g==} + engines: {node: '>= 0.8.0'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + paralleljs@1.1.0: + resolution: {integrity: sha512-5sYLAEzM+qMDYzQeVWyNdqINU4h+/Fhr0CrZs3+HCYPIhOWuA2BCzn74js2qzX+LKFwRQR6sSJBZhgT+WWhbfw==} + engines: {node: '>=10'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-to-regexp@0.1.13: + resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-from-env@2.1.0: + resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} + engines: {node: '>=10'} + + qew@0.11.1: + resolution: {integrity: sha512-iWvofNydJ2B0iPhRPS27o0kFD7N6Qv3ql9y5AFhTVhgFyB9ZGm2SRe24PuCPj3IvJI8BKuAVTDAKWLx+PsyxoA==} + + qs@6.15.3: + resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} + engines: {node: '>=0.6'} + + ramda@0.28.0: + resolution: {integrity: sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.3: + resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} + engines: {node: '>= 0.8'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + engines: {node: '>= 0.8.0'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sha.js@2.4.12: + resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} + engines: {node: '>= 0.10'} + hasBin: true + + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + engines: {node: '>= 0.4'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + to-buffer@1.2.2: + resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} + engines: {node: '>= 0.4'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tslib@2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.22.4: + resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==} + engines: {node: '>=18.0.0'} + hasBin: true + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + + value-or-promise@1.0.11: + resolution: {integrity: sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==} + engines: {node: '>=12'} + + value-or-promise@1.0.12: + resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} + engines: {node: '>=12'} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-typed-array@1.1.22: + resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} + engines: {node: '>= 0.4'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xss@1.0.15: + resolution: {integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==} + engines: {node: '>= 0.10.0'} + hasBin: true + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: ^3.25.28 || ^4 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + +snapshots: + + '@apollo/protobufjs@1.2.6': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.5 + '@protobufjs/eventemitter': 1.1.1 + '@protobufjs/fetch': 1.1.1 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.2 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.1 + '@types/long': 4.0.2 + '@types/node': 10.17.60 + long: 4.0.0 + + '@apollo/protobufjs@1.2.8': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.5 + '@protobufjs/eventemitter': 1.1.1 + '@protobufjs/fetch': 1.1.1 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.2 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.1 + '@types/long': 4.0.2 + long: 4.0.0 + + '@apollo/usage-reporting-protobuf@4.1.2': + dependencies: + '@apollo/protobufjs': 1.2.8 + + '@apollo/utils.dropunuseddefinitions@1.1.0(graphql@16.14.2)': + dependencies: + graphql: 16.14.2 + + '@apollo/utils.keyvaluecache@1.0.2': + dependencies: + '@apollo/utils.logger': 1.0.1 + lru-cache: 7.13.1 + + '@apollo/utils.logger@1.0.1': {} + + '@apollo/utils.printwithreducedwhitespace@1.1.0(graphql@16.14.2)': + dependencies: + graphql: 16.14.2 + + '@apollo/utils.removealiases@1.0.0(graphql@16.14.2)': + dependencies: + graphql: 16.14.2 + + '@apollo/utils.sortast@1.1.0(graphql@16.14.2)': + dependencies: + graphql: 16.14.2 + lodash.sortby: 4.7.0 + + '@apollo/utils.stripsensitiveliterals@1.2.0(graphql@16.14.2)': + dependencies: + graphql: 16.14.2 + + '@apollo/utils.usagereporting@1.0.1(graphql@16.14.2)': + dependencies: + '@apollo/usage-reporting-protobuf': 4.1.2 + '@apollo/utils.dropunuseddefinitions': 1.1.0(graphql@16.14.2) + '@apollo/utils.printwithreducedwhitespace': 1.1.0(graphql@16.14.2) + '@apollo/utils.removealiases': 1.0.0(graphql@16.14.2) + '@apollo/utils.sortast': 1.1.0(graphql@16.14.2) + '@apollo/utils.stripsensitiveliterals': 1.2.0(graphql@16.14.2) + graphql: 16.14.2 + + '@apollographql/apollo-tools@0.5.4(graphql@16.14.2)': + dependencies: + graphql: 16.14.2 + + '@apollographql/graphql-playground-html@1.6.29': + dependencies: + xss: 1.0.15 + + '@aws-sdk/core@3.974.25': + dependencies: + '@aws-sdk/types': 3.973.14 + '@aws-sdk/xml-builder': 3.972.32 + '@aws/lambda-invoke-store': 0.2.4 + '@smithy/core': 3.28.0 + '@smithy/signature-v4': 5.6.0 + '@smithy/types': 4.15.0 + bowser: 2.14.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.972.51': + dependencies: + '@aws-sdk/core': 3.974.25 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.972.53': + dependencies: + '@aws-sdk/core': 3.974.25 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/fetch-http-handler': 5.6.1 + '@smithy/node-http-handler': 4.9.1 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.972.58': + dependencies: + '@aws-sdk/core': 3.974.25 + '@aws-sdk/credential-provider-env': 3.972.51 + '@aws-sdk/credential-provider-http': 3.972.53 + '@aws-sdk/credential-provider-login': 3.972.57 + '@aws-sdk/credential-provider-process': 3.972.51 + '@aws-sdk/credential-provider-sso': 3.972.57 + '@aws-sdk/credential-provider-web-identity': 3.972.57 + '@aws-sdk/nested-clients': 3.997.25 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/credential-provider-imds': 4.4.4 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-login@3.972.57': + dependencies: + '@aws-sdk/core': 3.974.25 + '@aws-sdk/nested-clients': 3.997.25 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-node@3.972.60': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.51 + '@aws-sdk/credential-provider-http': 3.972.53 + '@aws-sdk/credential-provider-ini': 3.972.58 + '@aws-sdk/credential-provider-process': 3.972.51 + '@aws-sdk/credential-provider-sso': 3.972.57 + '@aws-sdk/credential-provider-web-identity': 3.972.57 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/credential-provider-imds': 4.4.4 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-process@3.972.51': + dependencies: + '@aws-sdk/core': 3.974.25 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-sso@3.972.57': + dependencies: + '@aws-sdk/core': 3.974.25 + '@aws-sdk/nested-clients': 3.997.25 + '@aws-sdk/token-providers': 3.1077.0 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-web-identity@3.972.57': + dependencies: + '@aws-sdk/core': 3.974.25 + '@aws-sdk/nested-clients': 3.997.25 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/nested-clients@3.997.25': + dependencies: + '@aws-sdk/core': 3.974.25 + '@aws-sdk/signature-v4-multi-region': 3.996.37 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/fetch-http-handler': 5.6.1 + '@smithy/node-http-handler': 4.9.1 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/signature-v4-multi-region@3.996.37': + dependencies: + '@aws-sdk/types': 3.973.14 + '@smithy/signature-v4': 5.6.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.1077.0': + dependencies: + '@aws-sdk/core': 3.974.25 + '@aws-sdk/nested-clients': 3.997.25 + '@aws-sdk/types': 3.973.14 + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/types@3.973.14': + dependencies: + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.972.32': + dependencies: + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@aws/lambda-invoke-store@0.2.4': {} + + '@babel/runtime@7.29.7': {} + + '@elastic/elasticsearch@7.17.14': + dependencies: + debug: 4.4.3 + hpagent: 0.1.2 + ms: 2.1.3 + secure-json-parse: 2.7.0 + transitivePeerDependencies: + - supports-color + + '@esbuild/aix-ppc64@0.28.1': + optional: true + + '@esbuild/android-arm64@0.28.1': + optional: true + + '@esbuild/android-arm@0.28.1': + optional: true + + '@esbuild/android-x64@0.28.1': + optional: true + + '@esbuild/darwin-arm64@0.28.1': + optional: true + + '@esbuild/darwin-x64@0.28.1': + optional: true + + '@esbuild/freebsd-arm64@0.28.1': + optional: true + + '@esbuild/freebsd-x64@0.28.1': + optional: true + + '@esbuild/linux-arm64@0.28.1': + optional: true + + '@esbuild/linux-arm@0.28.1': + optional: true + + '@esbuild/linux-ia32@0.28.1': + optional: true + + '@esbuild/linux-loong64@0.28.1': + optional: true + + '@esbuild/linux-mips64el@0.28.1': + optional: true + + '@esbuild/linux-ppc64@0.28.1': + optional: true + + '@esbuild/linux-riscv64@0.28.1': + optional: true + + '@esbuild/linux-s390x@0.28.1': + optional: true + + '@esbuild/linux-x64@0.28.1': + optional: true + + '@esbuild/netbsd-arm64@0.28.1': + optional: true + + '@esbuild/netbsd-x64@0.28.1': + optional: true + + '@esbuild/openbsd-arm64@0.28.1': + optional: true + + '@esbuild/openbsd-x64@0.28.1': + optional: true + + '@esbuild/openharmony-arm64@0.28.1': + optional: true + + '@esbuild/sunos-x64@0.28.1': + optional: true + + '@esbuild/win32-arm64@0.28.1': + optional: true + + '@esbuild/win32-ia32@0.28.1': + optional: true + + '@esbuild/win32-x64@0.28.1': + optional: true + + '@graphql-tools/batch-execute@8.5.1(graphql@16.14.2)': + dependencies: + '@graphql-tools/utils': 8.9.0(graphql@16.14.2) + dataloader: 2.1.0 + graphql: 16.14.2 + tslib: 2.8.1 + value-or-promise: 1.0.11 + + '@graphql-tools/delegate@8.8.1(graphql@16.14.2)': + dependencies: + '@graphql-tools/batch-execute': 8.5.1(graphql@16.14.2) + '@graphql-tools/schema': 8.5.1(graphql@16.14.2) + '@graphql-tools/utils': 8.9.0(graphql@16.14.2) + dataloader: 2.1.0 + graphql: 16.14.2 + tslib: 2.4.1 + value-or-promise: 1.0.11 + + '@graphql-tools/merge@8.3.1(graphql@16.14.2)': + dependencies: + '@graphql-tools/utils': 8.9.0(graphql@16.14.2) + graphql: 16.14.2 + tslib: 2.8.1 + + '@graphql-tools/merge@8.4.2(graphql@16.14.2)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.14.2) + graphql: 16.14.2 + tslib: 2.8.1 + + '@graphql-tools/merge@9.1.10(graphql@16.14.2)': + dependencies: + '@graphql-tools/utils': 11.1.1(graphql@16.14.2) + graphql: 16.14.2 + tslib: 2.8.1 + + '@graphql-tools/mock@8.7.20(graphql@16.14.2)': + dependencies: + '@graphql-tools/schema': 9.0.19(graphql@16.14.2) + '@graphql-tools/utils': 9.2.1(graphql@16.14.2) + fast-json-stable-stringify: 2.1.0 + graphql: 16.14.2 + tslib: 2.8.1 + + '@graphql-tools/schema@8.5.1(graphql@16.14.2)': + dependencies: + '@graphql-tools/merge': 8.3.1(graphql@16.14.2) + '@graphql-tools/utils': 8.9.0(graphql@16.14.2) + graphql: 16.14.2 + tslib: 2.8.1 + value-or-promise: 1.0.11 + + '@graphql-tools/schema@9.0.19(graphql@16.14.2)': + dependencies: + '@graphql-tools/merge': 8.4.2(graphql@16.14.2) + '@graphql-tools/utils': 9.2.1(graphql@16.14.2) + graphql: 16.14.2 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-tools/utils@10.11.0(graphql@16.14.2)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) + '@whatwg-node/promise-helpers': 1.3.2 + cross-inspect: 1.0.1 + graphql: 16.14.2 + tslib: 2.8.1 + + '@graphql-tools/utils@11.1.1(graphql@16.14.2)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) + '@whatwg-node/promise-helpers': 1.3.2 + cross-inspect: 1.0.1 + graphql: 16.14.2 + tslib: 2.8.1 + + '@graphql-tools/utils@8.9.0(graphql@16.14.2)': + dependencies: + graphql: 16.14.2 + tslib: 2.8.1 + + '@graphql-tools/utils@9.2.1(graphql@16.14.2)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) + graphql: 16.14.2 + tslib: 2.8.1 + + '@graphql-typed-document-node/core@3.2.0(graphql@16.14.2)': + dependencies: + graphql: 16.14.2 + + '@josephg/resolvable@1.0.1': {} + + '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 + + '@jsep-plugin/regex@1.0.4(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 + + '@opensearch-project/opensearch@3.6.0': + dependencies: + aws4: 1.13.2 + debug: 4.4.3 + hpagent: 1.2.0 + json11: 2.0.2 + ms: 2.1.3 + secure-json-parse: 2.7.0 + transitivePeerDependencies: + - supports-color + + '@overture-stack/arranger-graphql-router@file:../../modules/graphql-router': + dependencies: + '@elastic/elasticsearch': 7.17.14 + '@graphql-tools/merge': 9.1.10(graphql@16.14.2) + '@graphql-tools/schema': 9.0.19(graphql@16.14.2) + '@graphql-tools/utils': 10.11.0(graphql@16.14.2) + '@opensearch-project/opensearch': 3.6.0 + '@overture-stack/arranger-types': file:../../modules/types + '@overture-stack/sqon-builder': 1.1.0 + apollo-server: 3.13.0(graphql@16.14.2) + apollo-server-core: 3.13.0(graphql@16.14.2) + apollo-server-express: 3.13.0(express@4.22.2)(graphql@16.14.2) + axios: 1.18.1 + chalk: 2.4.2 + convert-units: 2.3.4 + cors: 2.8.6 + date-fns: 2.30.0 + dotenv: 16.6.1 + express: 4.22.2 + graphql: 16.14.2 + graphql-fields: 2.0.3 + graphql-middleware: 6.1.35(graphql@16.14.2) + graphql-playground-html: 1.6.30 + graphql-playground-middleware-express: 1.7.23(express@4.22.2) + graphql-scalars: 1.25.0(graphql@16.14.2) + graphql-type-json: 0.3.2(graphql@16.14.2) + jsonpath-plus: 10.4.0 + lodash-es: 4.18.1 + morgan: 1.11.0 + paralleljs: 1.1.0 + qew: 0.11.1 + ramda: 0.28.0 + tar-stream: 2.2.0 + through2: 4.0.2 + tslib: 2.8.1 + url-join: 4.0.1 + uuid: 9.0.1 + transitivePeerDependencies: + - debug + - encoding + - supports-color + + '@overture-stack/arranger-types@file:../../modules/types': + dependencies: + '@overture-stack/sqon': file:../../modules/sqon + + '@overture-stack/sqon-builder@1.1.0': + dependencies: + lodash.clonedeep: 4.5.0 + zod: 3.25.76 + + '@overture-stack/sqon@file:../../modules/sqon': + dependencies: + zod: 3.25.76 + zod-to-json-schema: 3.25.2(zod@3.25.76) + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.5': {} + + '@protobufjs/eventemitter@1.1.1': {} + + '@protobufjs/fetch@1.1.1': + dependencies: + '@protobufjs/aspromise': 1.1.2 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.2': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.1': {} + + '@smithy/core@3.28.0': + dependencies: + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@4.4.4': + dependencies: + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.6.1': + dependencies: + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.9.1': + dependencies: + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@smithy/signature-v4@5.6.0': + dependencies: + '@smithy/core': 3.28.0 + '@smithy/types': 4.15.0 + tslib: 2.8.1 + + '@smithy/types@4.15.0': + dependencies: + tslib: 2.8.1 + + '@tsconfig/node22@22.0.5': {} + + '@types/accepts@1.3.7': + dependencies: + '@types/node': 22.20.0 + + '@types/body-parser@1.19.2': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.20.0 + + '@types/body-parser@1.19.6': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.20.0 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.20.0 + + '@types/cors@2.8.12': {} + + '@types/cors@2.8.19': + dependencies: + '@types/node': 22.20.0 + + '@types/express-serve-static-core@4.17.31': + dependencies: + '@types/node': 22.20.0 + '@types/qs': 6.15.1 + '@types/range-parser': 1.2.7 + + '@types/express-serve-static-core@4.19.8': + dependencies: + '@types/node': 22.20.0 + '@types/qs': 6.15.1 + '@types/range-parser': 1.2.7 + '@types/send': 1.2.1 + + '@types/express@4.17.14': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 4.19.8 + '@types/qs': 6.15.1 + '@types/serve-static': 2.2.0 + + '@types/express@4.17.25': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 4.19.8 + '@types/qs': 6.15.1 + '@types/serve-static': 1.15.10 + + '@types/http-errors@2.0.5': {} + + '@types/long@4.0.2': {} + + '@types/mime@1.3.5': {} + + '@types/node@10.17.60': {} + + '@types/node@22.20.0': + dependencies: + undici-types: 6.21.0 + + '@types/qs@6.15.1': {} + + '@types/range-parser@1.2.7': {} + + '@types/send@0.17.6': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 22.20.0 + + '@types/send@1.2.1': + dependencies: + '@types/node': 22.20.0 + + '@types/serve-static@1.15.10': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 22.20.0 + '@types/send': 0.17.6 + + '@types/serve-static@2.2.0': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 22.20.0 + + '@whatwg-node/promise-helpers@1.3.2': + dependencies: + tslib: 2.8.1 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + agent-base@6.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + apollo-datasource@3.3.2: + dependencies: + '@apollo/utils.keyvaluecache': 1.0.2 + apollo-server-env: 4.2.1 + transitivePeerDependencies: + - encoding + + apollo-reporting-protobuf@3.4.0: + dependencies: + '@apollo/protobufjs': 1.2.6 + + apollo-server-core@3.13.0(graphql@16.14.2): + dependencies: + '@apollo/utils.keyvaluecache': 1.0.2 + '@apollo/utils.logger': 1.0.1 + '@apollo/utils.usagereporting': 1.0.1(graphql@16.14.2) + '@apollographql/apollo-tools': 0.5.4(graphql@16.14.2) + '@apollographql/graphql-playground-html': 1.6.29 + '@graphql-tools/mock': 8.7.20(graphql@16.14.2) + '@graphql-tools/schema': 8.5.1(graphql@16.14.2) + '@josephg/resolvable': 1.0.1 + apollo-datasource: 3.3.2 + apollo-reporting-protobuf: 3.4.0 + apollo-server-env: 4.2.1 + apollo-server-errors: 3.3.1(graphql@16.14.2) + apollo-server-plugin-base: 3.7.2(graphql@16.14.2) + apollo-server-types: 3.8.0(graphql@16.14.2) + async-retry: 1.3.3 + fast-json-stable-stringify: 2.1.0 + graphql: 16.14.2 + graphql-tag: 2.12.7(graphql@16.14.2) + loglevel: 1.9.2 + lru-cache: 6.0.0 + node-abort-controller: 3.1.1 + sha.js: 2.4.12 + uuid: 9.0.1 + whatwg-mimetype: 3.0.0 + transitivePeerDependencies: + - encoding + + apollo-server-env@4.2.1: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + apollo-server-errors@3.3.1(graphql@16.14.2): + dependencies: + graphql: 16.14.2 + + apollo-server-express@3.13.0(express@4.22.2)(graphql@16.14.2): + dependencies: + '@types/accepts': 1.3.7 + '@types/body-parser': 1.19.2 + '@types/cors': 2.8.12 + '@types/express': 4.17.14 + '@types/express-serve-static-core': 4.17.31 + accepts: 1.3.8 + apollo-server-core: 3.13.0(graphql@16.14.2) + apollo-server-types: 3.8.0(graphql@16.14.2) + body-parser: 1.20.5 + cors: 2.8.6 + express: 4.22.2 + graphql: 16.14.2 + parseurl: 1.3.3 + transitivePeerDependencies: + - encoding + - supports-color + + apollo-server-plugin-base@3.7.2(graphql@16.14.2): + dependencies: + apollo-server-types: 3.8.0(graphql@16.14.2) + graphql: 16.14.2 + transitivePeerDependencies: + - encoding + + apollo-server-types@3.8.0(graphql@16.14.2): + dependencies: + '@apollo/utils.keyvaluecache': 1.0.2 + '@apollo/utils.logger': 1.0.1 + apollo-reporting-protobuf: 3.4.0 + apollo-server-env: 4.2.1 + graphql: 16.14.2 + transitivePeerDependencies: + - encoding + + apollo-server@3.13.0(graphql@16.14.2): + dependencies: + '@types/express': 4.17.14 + apollo-server-core: 3.13.0(graphql@16.14.2) + apollo-server-express: 3.13.0(express@4.22.2)(graphql@16.14.2) + express: 4.22.2 + graphql: 16.14.2 + transitivePeerDependencies: + - encoding + - supports-color + + array-flatten@1.1.1: {} + + async-retry@1.3.3: + dependencies: + retry: 0.13.1 + + asynckit@0.4.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + aws4@1.13.2: {} + + axios@1.18.1: + dependencies: + follow-redirects: 1.16.0 + form-data: 4.0.6 + https-proxy-agent: 5.0.1 + proxy-from-env: 2.1.0 + transitivePeerDependencies: + - debug + - supports-color + + base64-js@1.5.1: {} + + basic-auth@2.0.1: + dependencies: + safe-buffer: 5.1.2 + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + body-parser@1.20.5: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.15.3 + raw-body: 2.5.3 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + bowser@2.14.1: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bytes@3.1.2: {} + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-name@1.1.3: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@2.20.3: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-units@2.3.4: + dependencies: + lodash.foreach: 2.3.0 + lodash.keys: 2.3.0 + + cookie-signature@1.0.7: {} + + cookie@0.7.2: {} + + cors@2.8.6: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + cross-inspect@1.0.1: + dependencies: + tslib: 2.8.1 + + cssfilter@0.0.10: {} + + dataloader@2.1.0: {} + + date-fns@2.30.0: + dependencies: + '@babel/runtime': 7.29.7 + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + delayed-stream@1.0.0: {} + + depd@2.0.0: {} + + destroy@1.2.0: {} + + dotenv@16.6.1: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + ee-first@1.1.1: {} + + encodeurl@2.0.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + esbuild@0.28.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.1 + '@esbuild/android-arm': 0.28.1 + '@esbuild/android-arm64': 0.28.1 + '@esbuild/android-x64': 0.28.1 + '@esbuild/darwin-arm64': 0.28.1 + '@esbuild/darwin-x64': 0.28.1 + '@esbuild/freebsd-arm64': 0.28.1 + '@esbuild/freebsd-x64': 0.28.1 + '@esbuild/linux-arm': 0.28.1 + '@esbuild/linux-arm64': 0.28.1 + '@esbuild/linux-ia32': 0.28.1 + '@esbuild/linux-loong64': 0.28.1 + '@esbuild/linux-mips64el': 0.28.1 + '@esbuild/linux-ppc64': 0.28.1 + '@esbuild/linux-riscv64': 0.28.1 + '@esbuild/linux-s390x': 0.28.1 + '@esbuild/linux-x64': 0.28.1 + '@esbuild/netbsd-arm64': 0.28.1 + '@esbuild/netbsd-x64': 0.28.1 + '@esbuild/openbsd-arm64': 0.28.1 + '@esbuild/openbsd-x64': 0.28.1 + '@esbuild/openharmony-arm64': 0.28.1 + '@esbuild/sunos-x64': 0.28.1 + '@esbuild/win32-arm64': 0.28.1 + '@esbuild/win32-ia32': 0.28.1 + '@esbuild/win32-x64': 0.28.1 + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + etag@1.8.1: {} + + express@4.22.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.5 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.0.7 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.2 + fresh: 0.5.2 + http-errors: 2.0.1 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.13 + proxy-addr: 2.0.7 + qs: 6.15.3 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.2 + serve-static: 1.16.3 + setprototypeof: 1.2.0 + statuses: 2.0.2 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + fast-json-stable-stringify@2.1.0: {} + + finalhandler@1.3.2: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + follow-redirects@1.16.0: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + form-data@4.0.6: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 + mime-types: 2.1.35 + + forwarded@0.2.0: {} + + fresh@0.5.2: {} + + fs-constants@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + gopd@1.2.0: {} + + graphql-fields@2.0.3: {} + + graphql-middleware@6.1.35(graphql@16.14.2): + dependencies: + '@graphql-tools/delegate': 8.8.1(graphql@16.14.2) + '@graphql-tools/schema': 8.5.1(graphql@16.14.2) + graphql: 16.14.2 + + graphql-playground-html@1.6.30: + dependencies: + xss: 1.0.15 + + graphql-playground-middleware-express@1.7.23(express@4.22.2): + dependencies: + express: 4.22.2 + graphql-playground-html: 1.6.30 + + graphql-scalars@1.25.0(graphql@16.14.2): + dependencies: + graphql: 16.14.2 + tslib: 2.8.1 + + graphql-tag@2.12.7(graphql@16.14.2): + dependencies: + graphql: 16.14.2 + tslib: 2.8.1 + + graphql-type-json@0.3.2(graphql@16.14.2): + dependencies: + graphql: 16.14.2 + + graphql@16.14.2: {} + + has-flag@3.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + hpagent@0.1.2: {} + + hpagent@1.2.0: {} + + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + inherits@2.0.4: {} + + ipaddr.js@1.9.1: {} + + is-callable@1.2.7: {} + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.22 + + isarray@2.0.5: {} + + jsep@1.4.0: {} + + json11@2.0.2: {} + + jsonpath-plus@10.4.0: + dependencies: + '@jsep-plugin/assignment': 1.3.0(jsep@1.4.0) + '@jsep-plugin/regex': 1.0.4(jsep@1.4.0) + jsep: 1.4.0 + + lodash-es@4.18.1: {} + + lodash._basebind@2.3.0: + dependencies: + lodash._basecreate: 2.3.0 + lodash._setbinddata: 2.3.0 + lodash.isobject: 2.3.0 + + lodash._basecreate@2.3.0: + dependencies: + lodash._renative: 2.3.0 + lodash.isobject: 2.3.0 + lodash.noop: 2.3.0 + + lodash._basecreatecallback@2.3.0: + dependencies: + lodash._setbinddata: 2.3.0 + lodash.bind: 2.3.0 + lodash.identity: 2.3.0 + lodash.support: 2.3.0 + + lodash._basecreatewrapper@2.3.0: + dependencies: + lodash._basecreate: 2.3.0 + lodash._setbinddata: 2.3.0 + lodash._slice: 2.3.0 + lodash.isobject: 2.3.0 + + lodash._createwrapper@2.3.0: + dependencies: + lodash._basebind: 2.3.0 + lodash._basecreatewrapper: 2.3.0 + lodash.isfunction: 2.3.0 + + lodash._objecttypes@2.3.0: {} + + lodash._renative@2.3.0: {} + + lodash._setbinddata@2.3.0: + dependencies: + lodash._renative: 2.3.0 + lodash.noop: 2.3.0 + + lodash._shimkeys@2.3.0: + dependencies: + lodash._objecttypes: 2.3.0 + + lodash._slice@2.3.0: {} + + lodash.bind@2.3.0: + dependencies: + lodash._createwrapper: 2.3.0 + lodash._renative: 2.3.0 + lodash._slice: 2.3.0 + + lodash.clonedeep@4.5.0: {} + + lodash.foreach@2.3.0: + dependencies: + lodash._basecreatecallback: 2.3.0 + lodash.forown: 2.3.0 + + lodash.forown@2.3.0: + dependencies: + lodash._basecreatecallback: 2.3.0 + lodash._objecttypes: 2.3.0 + lodash.keys: 2.3.0 + + lodash.identity@2.3.0: {} + + lodash.isfunction@2.3.0: {} + + lodash.isobject@2.3.0: + dependencies: + lodash._objecttypes: 2.3.0 + + lodash.keys@2.3.0: + dependencies: + lodash._renative: 2.3.0 + lodash._shimkeys: 2.3.0 + lodash.isobject: 2.3.0 + + lodash.noop@2.3.0: {} + + lodash.sortby@4.7.0: {} + + lodash.support@2.3.0: + dependencies: + lodash._renative: 2.3.0 + + loglevel@1.9.2: {} + + long@4.0.0: {} + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + lru-cache@7.13.1: {} + + math-intrinsics@1.1.0: {} + + media-typer@0.3.0: {} + + merge-descriptors@1.0.3: {} + + methods@1.1.2: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + morgan@1.11.0: + dependencies: + basic-auth: 2.0.1 + debug: 2.6.9 + depd: 2.0.0 + on-finished: 2.4.1 + on-headers: 1.1.0 + transitivePeerDependencies: + - supports-color + + ms@2.0.0: {} + + ms@2.1.3: {} + + negotiator@0.6.3: {} + + node-abort-controller@3.1.1: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.1.0: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + paralleljs@1.1.0: {} + + parseurl@1.3.3: {} + + path-to-regexp@0.1.13: {} + + possible-typed-array-names@1.1.0: {} + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-from-env@2.1.0: {} + + qew@0.11.1: {} + + qs@6.15.3: + dependencies: + es-define-property: 1.0.1 + side-channel: 1.1.1 + + ramda@0.28.0: {} + + range-parser@1.2.1: {} + + raw-body@2.5.3: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + retry@0.13.1: {} + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + secure-json-parse@2.7.0: {} + + send@0.19.2: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.1 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.3: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.2 + transitivePeerDependencies: + - supports-color + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + setprototypeof@1.2.0: {} + + sha.js@2.4.12: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + to-buffer: 1.2.2 + + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + statuses@2.0.2: {} + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + + to-buffer@1.2.2: + dependencies: + isarray: 2.0.5 + safe-buffer: 5.2.1 + typed-array-buffer: 1.0.3 + + toidentifier@1.0.1: {} + + tr46@0.0.3: {} + + tslib@2.4.1: {} + + tslib@2.8.1: {} + + tsx@4.22.4: + dependencies: + esbuild: 0.28.1 + optionalDependencies: + fsevents: 2.3.3 + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typescript@5.9.3: {} + + undici-types@6.21.0: {} + + unpipe@1.0.0: {} + + url-join@4.0.1: {} + + util-deprecate@1.0.2: {} + + utils-merge@1.0.1: {} + + uuid@9.0.1: {} + + value-or-promise@1.0.11: {} + + value-or-promise@1.0.12: {} + + vary@1.1.2: {} + + webidl-conversions@3.0.1: {} + + whatwg-mimetype@3.0.0: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-typed-array@1.1.22: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + wrappy@1.0.2: {} + + xss@1.0.15: + dependencies: + commander: 2.20.3 + cssfilter: 0.0.10 + + yallist@4.0.0: {} + + zod-to-json-schema@3.25.2(zod@3.25.76): + dependencies: + zod: 3.25.76 + + zod@3.25.76: {} diff --git a/modules/graphql-router/src/admin/schemas/ProjectSchema/utils.ts b/modules/graphql-router/src/admin/schemas/ProjectSchema/utils.ts index d5a06bdcf..8e443c83c 100644 --- a/modules/graphql-router/src/admin/schemas/ProjectSchema/utils.ts +++ b/modules/graphql-router/src/admin/schemas/ProjectSchema/utils.ts @@ -1,82 +1,75 @@ -import { Client } from '@elastic/elasticsearch'; -import { constants } from '../../services/constants'; -import { serializeToEsId } from '../../services'; -import { IArrangerProject } from './types'; -import { getProjectMetadataEsLocation } from '../IndexSchema/utils'; +import type { SearchClient } from '../../../searchClient/types.js'; +import { constants } from '../../services/constants.js'; +import { serializeToEsId } from '../../services/index.js'; +import { getProjectMetadataEsLocation } from '../IndexSchema/utils.js'; + +import type { IArrangerProject } from './types'; const { ARRANGER_PROJECT_INDEX } = constants; export const newArrangerProject = (id: string): IArrangerProject => ({ - id: serializeToEsId(id), - active: true, - timestamp: new Date().toISOString(), + id: serializeToEsId(id), + active: true, + timestamp: new Date().toISOString(), }); -export const getArrangerProjects = async (es: Client): Promise> => { - const { - body: { - hits: { hits }, - }, - }: { - body: { - hits: { - hits: Array<{ - _source: any; - }>; - }; - }; - } = await es - .search({ - index: ARRANGER_PROJECT_INDEX, - }) - .catch(() => ({ - body: { - hits: { - hits: [], - }, - }, - })); - return hits.map(({ _source }) => _source as IArrangerProject); +export const getArrangerProjects = async (es: SearchClient): Promise => { + const { + body: { + hits: { hits }, + }, + } = await es + .search({ + index: ARRANGER_PROJECT_INDEX, + }) + .catch(() => ({ + body: { + hits: { + hits: [], + }, + }, + })); + return hits.map(({ _source }) => _source as IArrangerProject); }; export const addArrangerProject = - (es: Client) => - async (id: string): Promise => { - //id must be lower case - const _id = serializeToEsId(id); - const newProject = newArrangerProject(_id); - await Promise.all([ - await es.indices.create({ index: getProjectMetadataEsLocation(id).index }), - await es - .create({ - index: ARRANGER_PROJECT_INDEX, - id: _id, - body: newProject, - refresh: 'true', - }) - .then(() => newProject) - .catch(Promise.reject), - ]); - return getArrangerProjects(es); - }; + (es: SearchClient) => + async (id: string): Promise => { + //id must be lower case + const _id = serializeToEsId(id); + const newProject = newArrangerProject(_id); + await Promise.all([ + await es.indices.create({ index: getProjectMetadataEsLocation(id).index }), + await es + .create({ + index: ARRANGER_PROJECT_INDEX, + id: _id, + body: newProject, + refresh: 'true', + }) + .then(() => newProject) + .catch(Promise.reject), + ]); + return getArrangerProjects(es); + }; export const removeArrangerProject = - (es: Client) => - async (id: string): Promise => { - const existingProject = (await getArrangerProjects(es)).find(({ id: _id }) => id === _id); - if (existingProject) { - await Promise.all([ - es.indices.delete({ - index: getProjectMetadataEsLocation(id).index, - }), - es.delete({ - index: ARRANGER_PROJECT_INDEX, - id: id, - refresh: 'true', - }), - ]); - return getArrangerProjects(es); - } else { - return Promise.reject(`No project with id ${id} was found`); - } - }; + (es: SearchClient) => + async (id: string): Promise => { + const existingProject = (await getArrangerProjects(es)).find(({ id: _id }) => id === _id); + if (existingProject) { + await Promise.all([ + es.indices.delete({ + index: getProjectMetadataEsLocation(id).index, + }), + es.delete({ + index: ARRANGER_PROJECT_INDEX, + id: id, + refresh: 'true', + }), + ]); + return getArrangerProjects(es); + } else { + return Promise.reject(`No project with id ${id} was found`); + } + }; diff --git a/modules/graphql-router/src/router.ts b/modules/graphql-router/src/router.ts index c387c2a08..9d3667881 100644 --- a/modules/graphql-router/src/router.ts +++ b/modules/graphql-router/src/router.ts @@ -7,10 +7,9 @@ import enforceAccessControl, { getDefaultServerSideFilter } from '#accessControl import fallbackConfigs, { validateConfigs } from '#config/index.js'; import downloadRoutes from '#download/index.js'; import getGraphQLRoutes from '#graphqlRoutes.js'; -import { getIndexMapping } from '#searchClient/index.js'; import { buildCatalogueIntrospectionBody } from '#introspection/buildCatalogueIntrospection.js'; import resolveCatalogueFields from '#mapping/resolveCatalogueFields.js'; -import buildSearchClient, { type SearchClient } from '#searchClient/index.js'; +import buildSearchClient, { getIndexMapping, type SearchClient } from '#searchClient/index.js'; import type { ArrangerBaseContext } from '#types.js'; import { addContext } from '#utils/context.js'; import { warnDeprecatedConfigsSource } from '#utils/noops.js'; @@ -76,7 +75,7 @@ const arrangerRouter = async ({ })); const mappingFromIndex = await getIndexMapping({ - enableDebug, + enableDebug: !!enableDebug, searchClient: esClient, esIndex: configs[configRootProperties.ES_INDEX], }); diff --git a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts index e3baca801..3c1aa99e2 100644 --- a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts +++ b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts @@ -5,7 +5,7 @@ import type { SearchClient, SearchConfig } from './types.js'; export type OSClientOptions = Prettify< SearchConfig & { - clientType: 'opensearch'; + clientType: 'opensearch' | 'opensearch-aws'; } >; diff --git a/modules/graphql-router/src/searchClient/index.ts b/modules/graphql-router/src/searchClient/index.ts index 936d83f98..ab76f21a1 100644 --- a/modules/graphql-router/src/searchClient/index.ts +++ b/modules/graphql-router/src/searchClient/index.ts @@ -1,8 +1,15 @@ +import { defaultProvider } from '@aws-sdk/credential-provider-node'; +import { AwsSigv4Signer } from '@opensearch-project/opensearch/aws'; + import { createElasticSearchClient, type ESClientOptions } from './createElasticSearchClient.js'; import { createOpenSearchClient, type OSClientOptions } from './createOpenSearchClient.js'; import type { SearchClient, SearchConfig, SearchConfigWithClient, SupportedClientTypes } from './types.js'; -export const supportedClientValues = ['opensearch', 'elasticsearch'] as const satisfies SupportedClientTypes[]; +export const supportedClientValues = [ + 'opensearch', + 'elasticsearch', + 'opensearch-aws', +] as const satisfies SupportedClientTypes[]; /** * Determine if provided Search Client Type is valid, or obtain client type if not provided. @@ -114,6 +121,30 @@ const createSearchClient = (clientConfig: SearchConfigWithClient): SearchClient return createOpenSearchClient(options); } + case 'opensearch-aws': { + const options: OSClientOptions = { + ...clientConfig, + clientType, + ...AwsSigv4Signer({ + region: 'us-east-1', + service: 'es', + // Must return a Promise that resolve to an AWS.Credentials object. + // This function is used to acquire the credentials when the client start and + // when the credentials are expired. + // The Client will refresh the Credentials only when they are expired. + // With AWS SDK V2, Credentials.refreshPromise is used when available to refresh the credentials. + + // Example with AWS SDK V3: + getCredentials: () => { + // Any other method to acquire a new Credentials object can be used. + const credentialsProvider = defaultProvider(); + return credentialsProvider(); + }, + }), + }; + return createOpenSearchClient(options); + } + default: { const options: ESClientOptions = { ...clientConfig, clientType }; return createElasticSearchClient(options); diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 60bb9be16..0797aac88 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -1,7 +1,11 @@ import type { Client as ElasticClient } from '@elastic/elasticsearch'; import type { Client as OpenSearchClient } from '@opensearch-project/opensearch'; -export type SupportedClients = { elasticsearch: ElasticClient; opensearch: OpenSearchClient }; +export type SupportedClients = { + elasticsearch: ElasticClient; + opensearch: OpenSearchClient; + 'opensearch-aws': OpenSearchClient; +}; export type SupportedClientTypes = keyof SupportedClients; export type SearchConfig = { node: string; @@ -40,8 +44,13 @@ export type SearchClientIndicesOpenParams = { index: string | string[] }; export type SearchClientIndicesPutMappingsParams = { index: string; body: Record }; export type SearchClientIndicesPutSettingsParams = { body: Record }; export type SearchClientBulkParams = { body: Record[] }; -export type SearchClientCreateParams = { id: string; index: string; body: Record }; -export type SearchClientDeleteParams = { index: string; id: string }; +export type SearchClientCreateParams = { + id: string; + index: string; + body: Record; + refresh?: boolean | 'false' | 'true' | 'wait_for'; +}; +export type SearchClientDeleteParams = { index: string; id: string; refresh?: boolean | 'false' | 'true' | 'wait_for' }; export type SearchClientDeleteByQueryParams = { index: string; body: Record }; export type SearchClientIndexParams = { index: string; body: Record }; export type SearchClientUpdateParams = { id: string; index: string; body: Record }; @@ -95,6 +104,8 @@ type SearchClientHitsResponse = SearchClientBaseResponse & { hits: { hits: { _source: any; + _id: string; + _index: string; }[]; }; }; @@ -108,8 +119,8 @@ type SearchClientAggregationsResponse = SearchClientBaseResponse & { export type SearchClientSearchBody = { _shards: ShardData; aggregations?: Record; - hits?: { - hits: { _id: string; _index: string; _source?: any }[]; + hits: { + hits: { _source?: any }[]; }; timed_out: boolean; took: number; diff --git a/package-lock.json b/package-lock.json index e05626348..749665d88 100644 --- a/package-lock.json +++ b/package-lock.json @@ -96,6 +96,7 @@ "name": "@overture-stack/arranger-search-server", "version": "0.0.0-dev", "dependencies": { + "@aws-sdk/credential-provider-node": "^3.972.59", "@overture-stack/arranger-graphql-router": "file:../../modules/graphql-router", "@overture-stack/arranger-types": "file:../../modules/types", "@overture-stack/sqon": "file:../../modules/sqon", @@ -128,7 +129,8 @@ "integration-tests/import": { "name": "integration-tests-import", "dependencies": { - "@overture-stack/arranger-components": "file:../../modules/components" + "@overture-stack/arranger-components": "file:../../modules/components", + "@overture-stack/arranger-types": "file:../../modules/types" }, "devDependencies": { "jest": "^29.7.0", @@ -259,6 +261,7 @@ "dependencies": { "@emotion/react": "^11.0.0", "@emotion/styled": "^11.0.0", + "@overture-stack/arranger-types": "file:../types", "@overture-stack/sqon-builder": "^1.1.0", "@reach/component-component": "^0.17.0", "@tanstack/react-table": "^8.7.9", @@ -359,7 +362,7 @@ "@graphql-tools/schema": "^9.0.17", "@graphql-tools/utils": "^10.2.2", "@opensearch-project/opensearch": "^3.6.0", - "@overture-stack/arranger-types": "file:../../modules/types", + "@overture-stack/arranger-types": "file:../types", "@overture-stack/sqon-builder": "^1.1.0", "apollo-server": "^3.10.3", "apollo-server-core": "^3.10.3", @@ -1205,6 +1208,328 @@ "xss": "^1.0.8" } }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.974.24", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.24.tgz", + "integrity": "sha512-vWB/qJl21vxGKBkBN8fKPTVXgm14v/bUQWTtR5oikrfAZbIN2bxuSiCY5rRAMR4gs3vtR2Vw0aTfVDU4tdfIPg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.14", + "@aws-sdk/xml-builder": "^3.972.32", + "@aws/lambda-invoke-store": "^0.2.2", + "@smithy/core": "^3.27.0", + "@smithy/signature-v4": "^5.5.3", + "@smithy/types": "^4.15.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/core/node_modules/bowser": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", + "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", + "license": "MIT" + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.972.50", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.50.tgz", + "integrity": "sha512-l8bWzhPFTi9tDcvtURxeMlfsboul5/0sEN3SwwXxdpYudVB9+EuQcxo2pwlTzXwDo4Gm2VLGyiZ8zti3nfdOLw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.24", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.972.52", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.52.tgz", + "integrity": "sha512-FjAlnsIvemWzO3JTM3ObuuxpqCyrqkXOewlYY2+NiR1MYO1JuFYSIJ8SJN5Q2KD1jkL5lIuab8awjb/AxsvjiQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.24", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/fetch-http-handler": "^5.6.0", + "@smithy/node-http-handler": "^4.9.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.972.57", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.57.tgz", + "integrity": "sha512-8qwNhQ0sK/1KaOpVEFC7TFxrWP3fxzJV1K049MzjouiMIbvTDvIGDEUtj5ND5aTmlHVK/YZxjoYnLCeV/GZU0w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.24", + "@aws-sdk/credential-provider-env": "^3.972.50", + "@aws-sdk/credential-provider-http": "^3.972.52", + "@aws-sdk/credential-provider-login": "^3.972.56", + "@aws-sdk/credential-provider-process": "^3.972.50", + "@aws-sdk/credential-provider-sso": "^3.972.56", + "@aws-sdk/credential-provider-web-identity": "^3.972.56", + "@aws-sdk/nested-clients": "^3.997.24", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/credential-provider-imds": "^4.4.3", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-login": { + "version": "3.972.56", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.56.tgz", + "integrity": "sha512-S36dCrDaafakFMlaCVGAF4advbQKoJuMcyMtNWVBpUz65uqhbIAsUfvAyp+djA+jkzaEfgZGd+AELjIGzTqyhw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.24", + "@aws-sdk/nested-clients": "^3.997.24", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.972.59", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.59.tgz", + "integrity": "sha512-LkczBXaEsdManijlEZwbKfEoo1C98Yri3LHF8gQI7CYWv+uFkmpS3OZH3BSew8g1A2ppKsScdPUSlhI6NV7a9g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "^3.972.50", + "@aws-sdk/credential-provider-http": "^3.972.52", + "@aws-sdk/credential-provider-ini": "^3.972.57", + "@aws-sdk/credential-provider-process": "^3.972.50", + "@aws-sdk/credential-provider-sso": "^3.972.56", + "@aws-sdk/credential-provider-web-identity": "^3.972.56", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/credential-provider-imds": "^4.4.3", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.972.50", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.50.tgz", + "integrity": "sha512-ARBEVkOQzmowTU0a35smGVyldJ9FN/f57XIGrPatrul4mYN+vvOKxoc1njDOX3nugVze+0sHzQZWJ8kPARAtUA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.24", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.972.56", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.56.tgz", + "integrity": "sha512-LvbWiFcLI/D5RPaT68TrpLLHyv7x5X+dm59wJ5dFizyGPZggBC7OdgJTlP0X1bVjiSSAgE1u1oxxcBps0GCEnA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.24", + "@aws-sdk/nested-clients": "^3.997.24", + "@aws-sdk/token-providers": "3.1076.0", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.972.56", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.56.tgz", + "integrity": "sha512-OV3JxmqMphVGMLWupYD2UhZxX07ATk1NwyYk7RgCnAEh0y3owHmtEnkWZ3ciCZ6liiFEwS8dYQpJGmKsR6ml4Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.24", + "@aws-sdk/nested-clients": "^3.997.24", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients": { + "version": "3.997.24", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.24.tgz", + "integrity": "sha512-+wFVfVofxeiXdRhUjRwYISB2mVfBCdiCq1wThkRipTeOc10Kyr+LS9QJTjgZuhWsna7jyLMPndrCnzLGWWvZXg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.974.24", + "@aws-sdk/signature-v4-multi-region": "^3.996.36", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/fetch-http-handler": "^5.6.0", + "@smithy/node-http-handler": "^4.9.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.996.36", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.36.tgz", + "integrity": "sha512-VSOWIPkI+g3a7NkxIBCO24HnsR0BZXJAi3wrKaGIZwVKyrMtNRdHxPrQI/igazgla5J9FhDzmg4RgnOSr6UQBw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.14", + "@smithy/signature-v4": "^5.5.3", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.1076.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1076.0.tgz", + "integrity": "sha512-4rTHETRKe2JWAsFUMo5ENmlzc3i9FD4KqBVXgoaF8DLTADjGid8SA+1LR2nJWjefoafvKAHcQH9F2iKa8uHc6Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.24", + "@aws-sdk/nested-clients": "^3.997.24", + "@aws-sdk/types": "^3.973.14", + "@smithy/core": "^3.27.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.973.14", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.14.tgz", + "integrity": "sha512-vH4pEu9YBEwr67yT+GVcmKX0GzfIrIYUn+MF5vXg9OspouVnAekuyVyawFvZHEK7WlcwVDwNrqI3ZBDUAiyu9A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.965.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.8.tgz", + "integrity": "sha512-uUbMs1cBZPafD0ohUj6EwNf0fPZ534NvBxHox4hjX+0Rxq5paSYUem7+hi833pYrzrcnBATKIYpR02MDXT5M9g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.972.32", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.32.tgz", + "integrity": "sha512-2loKuOMRFDg1nwdni5AtJ9S5juVbRNPNsPC7tWTfkHyycPwACMhxepspUHi8GhvfNlL2cQo3sPMod1uib+KZ0w==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws/lambda-invoke-store": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.4.tgz", + "integrity": "sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@babel/cli": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.6.tgz", @@ -6542,6 +6867,125 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@smithy/core": { + "version": "3.28.0", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.28.0.tgz", + "integrity": "sha512-N/LoLG8pZ1zv5cIWpdF6vmSjtZtXKK9G0OqT5yYCOZU+CzPq1+nYA95VoKJBGWRScs7YbMugZ7lZx8Fj1vdHoA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.4.4.tgz", + "integrity": "sha512-jT0WrDaM88L5na9FX1xRNywCS3B1n75wPY5Ksasjo0PHUtuI7d8FclksN1BbOSYTiaiKxUDqU23nUymH/V+AaQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.28.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.6.1.tgz", + "integrity": "sha512-fW6l9rWoyk1iyzfuZaERnZLNjB6WIojgGm6Bo9Hpfpy3RUpltjLikNlxTsS/YtxVobcfbCGBuAncREYqT4hvqQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.28.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.1.tgz", + "integrity": "sha512-m/f15di58P6NtLQ7eVEb5N19NdJWn+4c7zfkFHMT/i3JH7U8UtknpPoy8o2tm2R3OdliYvsvQhZHIfACQDqT+Q==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.28.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.6.0.tgz", + "integrity": "sha512-IkPHQdbyoebSwBCuMTzJ/2oIhKVqiZZAZxQYSlpDZqq/WhJUpmdgbHvP7ItddxsPzcDUJeI0V4PNMSNtlZ0aqA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.28.0", + "@smithy/types": "^4.15.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.15.0.tgz", + "integrity": "sha512-Z5TAOxygoFvybJV3igo5SloFflSokHx2hu1eFA+DxDTcn+FtKxUSui+rbTRG1pAafMA888Z3MVvCWUuvCrTXjg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@storybook/addon-actions": { "version": "3.4.12", "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-3.4.12.tgz", From bf529fca9d76738ad6bbe6c97de5262f3f4834ba Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Thu, 2 Jul 2026 13:40:15 -0400 Subject: [PATCH 02/21] Remove local logging --- modules/graphql-router/src/searchClient/index.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/graphql-router/src/searchClient/index.ts b/modules/graphql-router/src/searchClient/index.ts index 1f0468145..a95e87207 100644 --- a/modules/graphql-router/src/searchClient/index.ts +++ b/modules/graphql-router/src/searchClient/index.ts @@ -262,8 +262,6 @@ const createSearchClient = (clientConfig: SearchConfigWithClient): SearchClient // when the credentials are expired. // The Client will refresh the Credentials only when they are expired. // With AWS SDK V2, Credentials.refreshPromise is used when available to refresh the credentials. - - // Example with AWS SDK V3: getCredentials: () => { // Any other method to acquire a new Credentials object can be used. const credentialsProvider = defaultProvider(); From d636aac88ed595be54109cb0f61b748571bfd590 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Thu, 2 Jul 2026 15:40:26 -0400 Subject: [PATCH 03/21] Remove pnpm lock --- .gitignore | 3 +- apps/search-server/pnpm-lock.yaml | 2882 ----------------------------- 2 files changed, 2 insertions(+), 2883 deletions(-) delete mode 100644 apps/search-server/pnpm-lock.yaml diff --git a/.gitignore b/.gitignore index 716023bd8..ddbedfdf4 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,5 @@ lerna-debug.log !.env.test !**/.env.schema -/configs \ No newline at end of file +/configs +/modules/graphql-router/src/admin/** diff --git a/apps/search-server/pnpm-lock.yaml b/apps/search-server/pnpm-lock.yaml deleted file mode 100644 index 69c8a03d2..000000000 --- a/apps/search-server/pnpm-lock.yaml +++ /dev/null @@ -1,2882 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@aws-sdk/credential-provider-node': - specifier: ^3.972.60 - version: 3.972.60 - '@overture-stack/arranger-graphql-router': - specifier: file:../../modules/graphql-router - version: file:../../modules/graphql-router - '@overture-stack/arranger-types': - specifier: file:../../modules/types - version: file:../../modules/types - '@overture-stack/sqon': - specifier: file:../../modules/sqon - version: file:../../modules/sqon - cors: - specifier: ^2.8.5 - version: 2.8.6 - dotenv: - specifier: ^16.0.3 - version: 16.6.1 - express: - specifier: ^4.18.2 - version: 4.22.2 - morgan: - specifier: ^1.10.1 - version: 1.11.0 - tsx: - specifier: ^4.19.2 - version: 4.22.4 - devDependencies: - '@tsconfig/node22': - specifier: ^22.0.0 - version: 22.0.5 - '@types/cors': - specifier: ^2.8.17 - version: 2.8.19 - '@types/express': - specifier: ^4.17.21 - version: 4.17.25 - '@types/node': - specifier: ^22.19.13 - version: 22.20.0 - typescript: - specifier: ^5.8.2 - version: 5.9.3 - -packages: - - '@apollo/protobufjs@1.2.6': - resolution: {integrity: sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==} - hasBin: true - - '@apollo/protobufjs@1.2.8': - resolution: {integrity: sha512-r7xNeUqZX+eBBEmyvaPw0/cSz6zgf5jdH8mjUz8ynKpNs/GU7vi2T7sNcZINk2ZID7wwjG91FCgdpCrQuJ8rzA==} - hasBin: true - - '@apollo/usage-reporting-protobuf@4.1.2': - resolution: {integrity: sha512-aTnAD41RYz0d5dawlyR5Iclkgzx0Xb0njUJmEfvZ6pS4f4HU8wCYyctPpWat/HWp2PmRwDfX5R1k4uVcDKZ4xA==} - - '@apollo/utils.dropunuseddefinitions@1.1.0': - resolution: {integrity: sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==} - engines: {node: '>=12.13.0'} - peerDependencies: - graphql: 14.x || 15.x || 16.x - - '@apollo/utils.keyvaluecache@1.0.2': - resolution: {integrity: sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==} - - '@apollo/utils.logger@1.0.1': - resolution: {integrity: sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==} - - '@apollo/utils.printwithreducedwhitespace@1.1.0': - resolution: {integrity: sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==} - engines: {node: '>=12.13.0'} - peerDependencies: - graphql: 14.x || 15.x || 16.x - - '@apollo/utils.removealiases@1.0.0': - resolution: {integrity: sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==} - engines: {node: '>=12.13.0'} - peerDependencies: - graphql: 14.x || 15.x || 16.x - - '@apollo/utils.sortast@1.1.0': - resolution: {integrity: sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==} - engines: {node: '>=12.13.0'} - peerDependencies: - graphql: 14.x || 15.x || 16.x - - '@apollo/utils.stripsensitiveliterals@1.2.0': - resolution: {integrity: sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==} - engines: {node: '>=12.13.0'} - peerDependencies: - graphql: 14.x || 15.x || 16.x - - '@apollo/utils.usagereporting@1.0.1': - resolution: {integrity: sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==} - engines: {node: '>=12.13.0'} - peerDependencies: - graphql: 14.x || 15.x || 16.x - - '@apollographql/apollo-tools@0.5.4': - resolution: {integrity: sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==} - engines: {node: '>=8', npm: '>=6'} - peerDependencies: - graphql: ^14.2.1 || ^15.0.0 || ^16.0.0 - - '@apollographql/graphql-playground-html@1.6.29': - resolution: {integrity: sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==} - - '@aws-sdk/core@3.974.25': - resolution: {integrity: sha512-fJFkx6u6wCqGMV/v6EAxiwa2UzEukbvr1hNPv4MrD3yj4IFz011jZg42/eSTOP/u5kJ0tlILqEjCWtT8GiKZvA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-env@3.972.51': - resolution: {integrity: sha512-Xo+/zf5k5pZdo53X8aVXN4MJGfU/M1P7yMM/GbNY/x9fyRZGEzjhKqW38GA0FSQQ9TYKs+bfPyz5ja4bi6pjTQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-http@3.972.53': - resolution: {integrity: sha512-7E9oFUcf9YWe+ttGiWhe/cCSI+pswwelzgQMoKXgPJi1AIfS27TK6et5ZULqEqHu30zbN+jh1RqlwcXqY/aXyg==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-ini@3.972.58': - resolution: {integrity: sha512-MPr0hD8pyDGfF3dWXvFOILhcKTB9ptqJOJK9JEuDQzpc2HgKisY16eR7IrKUXxSbz8LZj+LHz/CS8Y5G1ai7yw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-login@3.972.57': - resolution: {integrity: sha512-kPWc/SCrl9agKeywxKwPEoQHanWag0LcNQrcZpEQpjNifkxq6tQENhgrrS9al317CF6yytyihlX+FhPHlk0QjA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-node@3.972.60': - resolution: {integrity: sha512-hE2hIBJQjCDRx8TbSqpVQ+/o2mIrJZQZbQ3LlwE2bJf7z47x5GmhcvGwZPqJH7Oq//SzTXEBGSZ4qSpK3yPbhw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-process@3.972.51': - resolution: {integrity: sha512-081dD2RlnmY+G05v6E73KfACvDjPjnttrLjGHE2SSglbID25UcuijbWpL4g+XR5T2Kl4oIJoVBXi64s+2f009Q==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-sso@3.972.57': - resolution: {integrity: sha512-dC7ZyX3EHKHLOeVUEDzzGvk0L1s6N06YDrau7P0rGXL/j1cO+DzN2w1x9vcEh7zljVCR3019f5mi1Th+GGTURw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-web-identity@3.972.57': - resolution: {integrity: sha512-HtWM3FV2o7NJFJSUqFLBlxmV9RxQRHpzCvQaP1n1Qo4CxQSvwpJ8ERWHiLqXMFDgDXyELt+EZNFcpG6XQRcJbQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/nested-clients@3.997.25': - resolution: {integrity: sha512-VpRQ3wR6l+fwRHV5veJL2ehtyQFrGyH/2CJG9DVtb8H3xyqqnZWSTSrq/CJJ7DvDlDgrPRiW2SkYA8pN6VWCFQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/signature-v4-multi-region@3.996.37': - resolution: {integrity: sha512-u8qd064XsHzM0Mk+yH4IPKn/ZC9rdniEKs+neBHNlsPZirw3rcLvmrH4ImoKC4yF7A0I/MbcC3dseARnJLiAhg==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/token-providers@3.1077.0': - resolution: {integrity: sha512-sRUkfZ3fpOco95jZHsQUQiXvuIVLvCmWVclFg6dRFDyfsYs6Pdr/NuZ2+yJxeHN+6WAfDh2aZ8nlZntnvuhZUQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/types@3.973.14': - resolution: {integrity: sha512-vH4pEu9YBEwr67yT+GVcmKX0GzfIrIYUn+MF5vXg9OspouVnAekuyVyawFvZHEK7WlcwVDwNrqI3ZBDUAiyu9A==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/xml-builder@3.972.32': - resolution: {integrity: sha512-2loKuOMRFDg1nwdni5AtJ9S5juVbRNPNsPC7tWTfkHyycPwACMhxepspUHi8GhvfNlL2cQo3sPMod1uib+KZ0w==} - engines: {node: '>=20.0.0'} - - '@aws/lambda-invoke-store@0.2.4': - resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} - engines: {node: '>=18.0.0'} - - '@babel/runtime@7.29.7': - resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} - engines: {node: '>=6.9.0'} - - '@elastic/elasticsearch@7.17.14': - resolution: {integrity: sha512-6uQ1pVXutwz1Krwooo67W+3K8BwH1ASMh1WoHTpomUzw8EXecXN5lHIJ9EPqTHuv1WqR2LKkSJyagcq0HYUJpg==} - engines: {node: '>=12'} - - '@esbuild/aix-ppc64@0.28.1': - resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.28.1': - resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.28.1': - resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.28.1': - resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.28.1': - resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.28.1': - resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.28.1': - resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.28.1': - resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.28.1': - resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.28.1': - resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.28.1': - resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.28.1': - resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.28.1': - resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.28.1': - resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.28.1': - resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.28.1': - resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.28.1': - resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.28.1': - resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.28.1': - resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.28.1': - resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.28.1': - resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.28.1': - resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.28.1': - resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.28.1': - resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.28.1': - resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.28.1': - resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@graphql-tools/batch-execute@8.5.1': - resolution: {integrity: sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/delegate@8.8.1': - resolution: {integrity: sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/merge@8.3.1': - resolution: {integrity: sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/merge@8.4.2': - resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/merge@9.1.10': - resolution: {integrity: sha512-CsUCcPXv/HMWpPZ/xoOioSWFuAaAsGGPIdqQbjDv9X1sHGs0muQRW5FK7vUBN4OH/D7aPqpiHvKmRsrHz+ScuQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/mock@8.7.20': - resolution: {integrity: sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/schema@8.5.1': - resolution: {integrity: sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/schema@9.0.19': - resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/utils@10.11.0': - resolution: {integrity: sha512-iBFR9GXIs0gCD+yc3hoNswViL1O5josI33dUqiNStFI/MHLCEPduasceAcazRH77YONKNiviHBV8f7OgcT4o2Q==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/utils@11.1.1': - resolution: {integrity: sha512-MuWwacINZZV6mX1ZSk6CcV4XVQLsbKBG/hLd0QPhe4GHxjqr2ATjKsnnwlB0TKI+QQvj2U8ewu8WeAzz9kC2Xg==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/utils@8.9.0': - resolution: {integrity: sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/utils@9.2.1': - resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-typed-document-node/core@3.2.0': - resolution: {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 - - '@josephg/resolvable@1.0.1': - resolution: {integrity: sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==} - - '@jsep-plugin/assignment@1.3.0': - resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} - engines: {node: '>= 10.16.0'} - peerDependencies: - jsep: ^0.4.0||^1.0.0 - - '@jsep-plugin/regex@1.0.4': - resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} - engines: {node: '>= 10.16.0'} - peerDependencies: - jsep: ^0.4.0||^1.0.0 - - '@opensearch-project/opensearch@3.6.0': - resolution: {integrity: sha512-ow1A/Z7MBlNL/JZzTY4+M+8psiVh66g0Z7EQSl/qbT0U6zLBsVDYh6nvm8D4e4tIzQtn6ODbA2OsqYGvqZj76g==} - engines: {node: '>=14', yarn: ^1.22.10} - - '@overture-stack/arranger-graphql-router@file:../../modules/graphql-router': - resolution: {directory: ../../modules/graphql-router, type: directory} - - '@overture-stack/arranger-types@file:../../modules/types': - resolution: {directory: ../../modules/types, type: directory} - - '@overture-stack/sqon-builder@1.1.0': - resolution: {integrity: sha512-HpxJBbhN2FIIpSKOHoezua7/2by9S7qpnuaG5qgpm69nLUX0KnW2fwGVELJ3PMW1DpU8qg74kASozUnST0F+cQ==} - - '@overture-stack/sqon@file:../../modules/sqon': - resolution: {directory: ../../modules/sqon, type: directory} - - '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - - '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - - '@protobufjs/codegen@2.0.5': - resolution: {integrity: sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==} - - '@protobufjs/eventemitter@1.1.1': - resolution: {integrity: sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==} - - '@protobufjs/fetch@1.1.1': - resolution: {integrity: sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==} - - '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - - '@protobufjs/inquire@1.1.2': - resolution: {integrity: sha512-pa0vFRuws4wkvaXKK1uXZMAwAX4/t8ANaJo45iw/oQHNQ9q5xUzwgFmVJGXiga2BeN+zpX7Vf9vmsiIa2J+MUw==} - - '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - - '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - - '@protobufjs/utf8@1.1.1': - resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==} - - '@smithy/core@3.28.0': - resolution: {integrity: sha512-N/LoLG8pZ1zv5cIWpdF6vmSjtZtXKK9G0OqT5yYCOZU+CzPq1+nYA95VoKJBGWRScs7YbMugZ7lZx8Fj1vdHoA==} - engines: {node: '>=18.0.0'} - - '@smithy/credential-provider-imds@4.4.4': - resolution: {integrity: sha512-jT0WrDaM88L5na9FX1xRNywCS3B1n75wPY5Ksasjo0PHUtuI7d8FclksN1BbOSYTiaiKxUDqU23nUymH/V+AaQ==} - engines: {node: '>=18.0.0'} - - '@smithy/fetch-http-handler@5.6.1': - resolution: {integrity: sha512-fW6l9rWoyk1iyzfuZaERnZLNjB6WIojgGm6Bo9Hpfpy3RUpltjLikNlxTsS/YtxVobcfbCGBuAncREYqT4hvqQ==} - engines: {node: '>=18.0.0'} - - '@smithy/node-http-handler@4.9.1': - resolution: {integrity: sha512-m/f15di58P6NtLQ7eVEb5N19NdJWn+4c7zfkFHMT/i3JH7U8UtknpPoy8o2tm2R3OdliYvsvQhZHIfACQDqT+Q==} - engines: {node: '>=18.0.0'} - - '@smithy/signature-v4@5.6.0': - resolution: {integrity: sha512-IkPHQdbyoebSwBCuMTzJ/2oIhKVqiZZAZxQYSlpDZqq/WhJUpmdgbHvP7ItddxsPzcDUJeI0V4PNMSNtlZ0aqA==} - engines: {node: '>=18.0.0'} - - '@smithy/types@4.15.0': - resolution: {integrity: sha512-Z5TAOxygoFvybJV3igo5SloFflSokHx2hu1eFA+DxDTcn+FtKxUSui+rbTRG1pAafMA888Z3MVvCWUuvCrTXjg==} - engines: {node: '>=18.0.0'} - - '@tsconfig/node22@22.0.5': - resolution: {integrity: sha512-hLf2ld+sYN/BtOJjHUWOk568dvjFQkHnLNa6zce25GIH+vxKfvTgm3qpaH6ToF5tu/NN0IH66s+Bb5wElHrLcw==} - - '@types/accepts@1.3.7': - resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} - - '@types/body-parser@1.19.2': - resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} - - '@types/body-parser@1.19.6': - resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/cors@2.8.12': - resolution: {integrity: sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==} - - '@types/cors@2.8.19': - resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} - - '@types/express-serve-static-core@4.17.31': - resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} - - '@types/express-serve-static-core@4.19.8': - resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} - - '@types/express@4.17.14': - resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} - - '@types/express@4.17.25': - resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} - - '@types/http-errors@2.0.5': - resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} - - '@types/long@4.0.2': - resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/node@10.17.60': - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} - - '@types/node@22.20.0': - resolution: {integrity: sha512-QWlFW2wf3nTjC13/DqRnBpR4ZO36VJH/JVBkA/vcnmbTBNQIlnObqyqZE1tUR7+Ni23Lda8R1BxMfbXRpCUx5g==} - - '@types/qs@6.15.1': - resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - - '@types/send@0.17.6': - resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} - - '@types/send@1.2.1': - resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - - '@types/serve-static@1.15.10': - resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} - - '@types/serve-static@2.2.0': - resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} - - '@whatwg-node/promise-helpers@1.3.2': - resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==} - engines: {node: '>=16.0.0'} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - apollo-datasource@3.3.2: - resolution: {integrity: sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==} - engines: {node: '>=12.0'} - deprecated: The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. - - apollo-reporting-protobuf@3.4.0: - resolution: {integrity: sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==} - deprecated: The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. - - apollo-server-core@3.13.0: - resolution: {integrity: sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==} - engines: {node: '>=12.0'} - deprecated: The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - - apollo-server-env@4.2.1: - resolution: {integrity: sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==} - engines: {node: '>=12.0'} - deprecated: The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. - - apollo-server-errors@3.3.1: - resolution: {integrity: sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==} - engines: {node: '>=12.0'} - deprecated: The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - - apollo-server-express@3.13.0: - resolution: {integrity: sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==} - engines: {node: '>=12.0'} - deprecated: The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. - peerDependencies: - express: ^4.17.1 - graphql: ^15.3.0 || ^16.0.0 - - apollo-server-plugin-base@3.7.2: - resolution: {integrity: sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==} - engines: {node: '>=12.0'} - deprecated: The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - - apollo-server-types@3.8.0: - resolution: {integrity: sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==} - engines: {node: '>=12.0'} - deprecated: The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - - apollo-server@3.13.0: - resolution: {integrity: sha512-hgT/MswNB5G1r+oBhggVX4Fjw53CFLqG15yB5sN+OrYkCVWF5YwPbJWHfSWa7699JMEXJGaoVfFzcvLZK0UlDg==} - deprecated: The `apollo-server` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - async-retry@1.3.3: - resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - aws4@1.13.2: - resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - - axios@1.18.1: - resolution: {integrity: sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - body-parser@1.20.5: - resolution: {integrity: sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - bowser@2.14.1: - resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.9: - resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - convert-units@2.3.4: - resolution: {integrity: sha512-ERHfdA0UhHJp1IpwE6PnFJx8LqG7B1ZjJ20UvVCmopEnVCfER68Tbe3kvN63dLbYXDA2xFWRE6zd4Wsf0w7POg==} - - cookie-signature@1.0.7: - resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} - - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - - cors@2.8.6: - resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} - engines: {node: '>= 0.10'} - - cross-inspect@1.0.1: - resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==} - engines: {node: '>=16.0.0'} - - cssfilter@0.0.10: - resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} - - dataloader@2.1.0: - resolution: {integrity: sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==} - - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - dotenv@16.6.1: - resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} - engines: {node: '>=12'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.1.2: - resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - esbuild@0.28.1: - resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} - engines: {node: '>=18'} - hasBin: true - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - express@4.22.2: - resolution: {integrity: sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==} - engines: {node: '>= 0.10.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - finalhandler@1.3.2: - resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} - engines: {node: '>= 0.8'} - - follow-redirects@1.16.0: - resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - form-data@4.0.6: - resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} - engines: {node: '>= 6'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - graphql-fields@2.0.3: - resolution: {integrity: sha512-x3VE5lUcR4XCOxPIqaO4CE+bTK8u6gVouOdpQX9+EKHr+scqtK5Pp/l8nIGqIpN1TUlkKE6jDCCycm/WtLRAwA==} - - graphql-middleware@6.1.35: - resolution: {integrity: sha512-azawK7ApUYtcuPGRGBR9vDZu795pRuaFhO5fgomdJppdfKRt7jwncuh0b7+D3i574/4B+16CNWgVpnGVlg3ZCg==} - peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - - graphql-playground-html@1.6.30: - resolution: {integrity: sha512-tpCujhsJMva4aqE8ULnF7/l3xw4sNRZcSHu+R00VV+W0mfp+Q20Plvcrp+5UXD+2yS6oyCXncA+zoQJQqhGCEw==} - - graphql-playground-middleware-express@1.7.23: - resolution: {integrity: sha512-M/zbTyC1rkgiQjFSgmzAv6umMHOphYLNWZp6Ye5QrD77WfGOOoSqDsVmGUczc2pDkEPEzzGB/bvBO5rdzaTRgw==} - peerDependencies: - express: ^4.16.2 - - graphql-scalars@1.25.0: - resolution: {integrity: sha512-b0xyXZeRFkne4Eq7NAnL400gStGqG/Sx9VqX0A05nHyEbv57UJnWKsjNnrpVqv5e/8N1MUxkt0wwcRXbiyKcFg==} - 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 - - graphql-tag@2.12.7: - resolution: {integrity: sha512-xnE/NFzy+0eIesvAsREJZ284zTl/wYuBAvpsFSDhRGRdRHdnE90M21Q3xAWyYInb0J756c6x0pIQ62+vtvOs1Q==} - 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 || ^17.0.0 - - graphql-type-json@0.3.2: - resolution: {integrity: sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==} - peerDependencies: - graphql: '>=0.8.0' - - graphql@16.14.2: - resolution: {integrity: sha512-Chq1s4CY7jmh8gO2qvLIJyfCDIN+EHLFW/9iShnp1z8FjBQMoodWP1kDC36VAMXXIvAjj4ARa7ntfAV2BrjsbA==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.4: - resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} - engines: {node: '>= 0.4'} - - hpagent@0.1.2: - resolution: {integrity: sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==} - - hpagent@1.2.0: - resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} - engines: {node: '>=14'} - - http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} - engines: {node: '>= 0.8'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - jsep@1.4.0: - resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} - engines: {node: '>= 10.16.0'} - - json11@2.0.2: - resolution: {integrity: sha512-HIrd50UPYmP6sqLuLbFVm75g16o0oZrVfxrsY0EEys22klz8mRoWlX9KAEDOSOR9Q34rcxsyC8oDveGrCz5uLQ==} - hasBin: true - - jsonpath-plus@10.4.0: - resolution: {integrity: sha512-T92WWatJXmhBbKsgH/0hl+jxjdXrifi5IKeMY02DWggRxX0UElcbVzPlmgLTbvsPeW1PasQ6xE2Q75stkhGbsA==} - engines: {node: '>=18.0.0'} - hasBin: true - - lodash-es@4.18.1: - resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} - - lodash._basebind@2.3.0: - resolution: {integrity: sha512-SHqM7YCuJ+BeGTs7lqpWnmdHEeF4MWxS3dksJctHFNxR81FXPOzA4bS5Vs5CpcGTkBpM8FCl+YEbQEblRw8ABg==} - - lodash._basecreate@2.3.0: - resolution: {integrity: sha512-vwZaWldZwS2y9b99D8i9+WtgiZXbHKsBsMrpxJEqTsNW20NhJo5W8PBQkeQO9CmxuqEYn8UkMnfEM2MMT4cVrw==} - - lodash._basecreatecallback@2.3.0: - resolution: {integrity: sha512-Ev+pDzzfVfgbiucpXijconLGRBar7/+KNCf05kSnk4CmdDVhAy1RdbU9efCJ/o9GXI08JdUGwZ+5QJ3QX3kj0g==} - - lodash._basecreatewrapper@2.3.0: - resolution: {integrity: sha512-YLycQ7k8AB9Wc1EOvLNxuRWcqipDkMXq2GCgnLWQR6qtgTb3gY3LELzEpnFshrEO4LOLs+R2EpcY+uCOZaLQ8Q==} - - lodash._createwrapper@2.3.0: - resolution: {integrity: sha512-XjaI/rzg9W+WO4WJDQ+PRlHD5sAMJ1RhJLuT65cBxLCb1kIYs4U20jqvTDGAWyVT3c34GYiLd9AreHYuB/8yJA==} - - lodash._objecttypes@2.3.0: - resolution: {integrity: sha512-jbA6QyHt9cw3BzvbWzIcnU3Z12jSneT6xBgz3Y782CJsN1tV5aTBKrFo2B4AkeHBNaxSrbPYZZpi1Lwj3xjdtg==} - - lodash._renative@2.3.0: - resolution: {integrity: sha512-v44MRirqYqZGK/h5UKoVqXWF2L+LUiLTU+Ogu5rHRVWJUA1uWIlHaMpG8f/OA8j++BzPMQij9+erXHtgFcbuwg==} - - lodash._setbinddata@2.3.0: - resolution: {integrity: sha512-xMFfbF7dL+sFtrdE49uHFmfpBAEwlFtfgMp86nQRlAF6aizYL+3MTbnYMKJSkP1W501PhsgiBED5kBbZd8kR2g==} - - lodash._shimkeys@2.3.0: - resolution: {integrity: sha512-9Iuyi7TiWMGa/9+2rqEE+Zwye4b/U2w7Saw6UX1h6Xs88mEER+uz9FZcEBPKMVKsad9Pw5GNAcIBRnW2jNpneQ==} - - lodash._slice@2.3.0: - resolution: {integrity: sha512-7C61GhzRUv36gTafr+RIb+AomCAYsSATEoK4OP0VkNBcwvsM022Z22AVgqjjzikeNO1U29LzsJZDvLbiNPUYvA==} - - lodash.bind@2.3.0: - resolution: {integrity: sha512-goakyOo+FMN8lttMPnZ0UNlr5RlzX4IrUXyTJPT2A0tGCMXySupond9wzvDqTvVmYTcQjIKGrj8naJDS2xWAlQ==} - - lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} - - lodash.foreach@2.3.0: - resolution: {integrity: sha512-yLnyptVRJd0//AbGp480grgQG9iaDIV5uOgSbpurRy1dYybPbjNTLQ3FyLEQ84buVLPG7jyaiyvpzgfOutRB3Q==} - - lodash.forown@2.3.0: - resolution: {integrity: sha512-dUnCsuQTtq3Y7bxPNoEEqjJjPL2ftLtcz2PTeRKvhbpdM514AvnqCjewHGsm/W+dwspIwa14KoWEZeizJ7smxA==} - - lodash.identity@2.3.0: - resolution: {integrity: sha512-NYJ2r2cwy3tkx/saqbIZEX6oQUzjWTnGRu7d/zmBjMCZos3eHBxCpbvWFWSetv8jFVrptsp6EbWjzNgBKhUoOA==} - - lodash.isfunction@2.3.0: - resolution: {integrity: sha512-X5lteBYlCrVO7Qc00fxP8W90fzRp6Ax9XcHANmU3OsZHdSyIVZ9ZlX5QTTpRq8aGY+9I5Rmd0UTzTIIyWPugEQ==} - - lodash.isobject@2.3.0: - resolution: {integrity: sha512-jo1pfV61C4TE8BfEzqaHj6EIKiSkFANJrB6yscwuCJMSRw5tbqjk4Gv7nJzk4Z6nFKobZjGZ8Qd41vmnwgeQqQ==} - - lodash.keys@2.3.0: - resolution: {integrity: sha512-c0UW0ffqMxSCtoVbmVt2lERJLkEqgoOn2ejPsWXzr0ZrqRbl3uruGgwHzhtqXxi6K/ei3Ey7zimOqSwXgzazPg==} - - lodash.noop@2.3.0: - resolution: {integrity: sha512-NpSm8HRm1WkBBWHUveDukLF4Kfb5P5E3fjHc9Qre9A11nNubozLWD2wH3UBTZbu+KSuX8aSUvy9b+PUyEceJ8g==} - - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - - lodash.support@2.3.0: - resolution: {integrity: sha512-etc7VWbB0U3Iya8ixj2xy4sDBN3jvPX7ODi8iXtn4KkkjNpdngrdc7Vlt5jub/Vgqx6/dWtp7Ml9awhCQPYKGQ==} - - loglevel@1.9.2: - resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} - engines: {node: '>= 0.6.0'} - - long@4.0.0: - resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lru-cache@7.13.1: - resolution: {integrity: sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==} - engines: {node: '>=12'} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - morgan@1.11.0: - resolution: {integrity: sha512-zSkVu3t18r39pw4ixfBKvfZi3y2UOqr7d4WYwcj3m8nXpEQK4rPO6GLzs/CExoRgmX3y9EjmmcXqv6jq0SK46g==} - engines: {node: '>= 0.8.0'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - on-headers@1.1.0: - resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - paralleljs@1.1.0: - resolution: {integrity: sha512-5sYLAEzM+qMDYzQeVWyNdqINU4h+/Fhr0CrZs3+HCYPIhOWuA2BCzn74js2qzX+LKFwRQR6sSJBZhgT+WWhbfw==} - engines: {node: '>=10'} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - path-to-regexp@0.1.13: - resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - proxy-from-env@2.1.0: - resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} - engines: {node: '>=10'} - - qew@0.11.1: - resolution: {integrity: sha512-iWvofNydJ2B0iPhRPS27o0kFD7N6Qv3ql9y5AFhTVhgFyB9ZGm2SRe24PuCPj3IvJI8BKuAVTDAKWLx+PsyxoA==} - - qs@6.15.3: - resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} - engines: {node: '>=0.6'} - - ramda@0.28.0: - resolution: {integrity: sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.3: - resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} - engines: {node: '>= 0.8'} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - - send@0.19.2: - resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} - engines: {node: '>= 0.8.0'} - - serve-static@1.16.3: - resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} - engines: {node: '>= 0.8.0'} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} - hasBin: true - - side-channel-list@1.0.1: - resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.1: - resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} - engines: {node: '>= 0.4'} - - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - - to-buffer@1.2.2: - resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} - engines: {node: '>= 0.4'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tslib@2.4.1: - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - tsx@4.22.4: - resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==} - engines: {node: '>=18.0.0'} - hasBin: true - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). - hasBin: true - - value-or-promise@1.0.11: - resolution: {integrity: sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==} - engines: {node: '>=12'} - - value-or-promise@1.0.12: - resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} - engines: {node: '>=12'} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which-typed-array@1.1.22: - resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} - engines: {node: '>= 0.4'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - xss@1.0.15: - resolution: {integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==} - engines: {node: '>= 0.10.0'} - hasBin: true - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - zod-to-json-schema@3.25.2: - resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} - peerDependencies: - zod: ^3.25.28 || ^4 - - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - -snapshots: - - '@apollo/protobufjs@1.2.6': - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.5 - '@protobufjs/eventemitter': 1.1.1 - '@protobufjs/fetch': 1.1.1 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.2 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.1 - '@types/long': 4.0.2 - '@types/node': 10.17.60 - long: 4.0.0 - - '@apollo/protobufjs@1.2.8': - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.5 - '@protobufjs/eventemitter': 1.1.1 - '@protobufjs/fetch': 1.1.1 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.2 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.1 - '@types/long': 4.0.2 - long: 4.0.0 - - '@apollo/usage-reporting-protobuf@4.1.2': - dependencies: - '@apollo/protobufjs': 1.2.8 - - '@apollo/utils.dropunuseddefinitions@1.1.0(graphql@16.14.2)': - dependencies: - graphql: 16.14.2 - - '@apollo/utils.keyvaluecache@1.0.2': - dependencies: - '@apollo/utils.logger': 1.0.1 - lru-cache: 7.13.1 - - '@apollo/utils.logger@1.0.1': {} - - '@apollo/utils.printwithreducedwhitespace@1.1.0(graphql@16.14.2)': - dependencies: - graphql: 16.14.2 - - '@apollo/utils.removealiases@1.0.0(graphql@16.14.2)': - dependencies: - graphql: 16.14.2 - - '@apollo/utils.sortast@1.1.0(graphql@16.14.2)': - dependencies: - graphql: 16.14.2 - lodash.sortby: 4.7.0 - - '@apollo/utils.stripsensitiveliterals@1.2.0(graphql@16.14.2)': - dependencies: - graphql: 16.14.2 - - '@apollo/utils.usagereporting@1.0.1(graphql@16.14.2)': - dependencies: - '@apollo/usage-reporting-protobuf': 4.1.2 - '@apollo/utils.dropunuseddefinitions': 1.1.0(graphql@16.14.2) - '@apollo/utils.printwithreducedwhitespace': 1.1.0(graphql@16.14.2) - '@apollo/utils.removealiases': 1.0.0(graphql@16.14.2) - '@apollo/utils.sortast': 1.1.0(graphql@16.14.2) - '@apollo/utils.stripsensitiveliterals': 1.2.0(graphql@16.14.2) - graphql: 16.14.2 - - '@apollographql/apollo-tools@0.5.4(graphql@16.14.2)': - dependencies: - graphql: 16.14.2 - - '@apollographql/graphql-playground-html@1.6.29': - dependencies: - xss: 1.0.15 - - '@aws-sdk/core@3.974.25': - dependencies: - '@aws-sdk/types': 3.973.14 - '@aws-sdk/xml-builder': 3.972.32 - '@aws/lambda-invoke-store': 0.2.4 - '@smithy/core': 3.28.0 - '@smithy/signature-v4': 5.6.0 - '@smithy/types': 4.15.0 - bowser: 2.14.1 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-env@3.972.51': - dependencies: - '@aws-sdk/core': 3.974.25 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.972.53': - dependencies: - '@aws-sdk/core': 3.974.25 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/fetch-http-handler': 5.6.1 - '@smithy/node-http-handler': 4.9.1 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.972.58': - dependencies: - '@aws-sdk/core': 3.974.25 - '@aws-sdk/credential-provider-env': 3.972.51 - '@aws-sdk/credential-provider-http': 3.972.53 - '@aws-sdk/credential-provider-login': 3.972.57 - '@aws-sdk/credential-provider-process': 3.972.51 - '@aws-sdk/credential-provider-sso': 3.972.57 - '@aws-sdk/credential-provider-web-identity': 3.972.57 - '@aws-sdk/nested-clients': 3.997.25 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/credential-provider-imds': 4.4.4 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-login@3.972.57': - dependencies: - '@aws-sdk/core': 3.974.25 - '@aws-sdk/nested-clients': 3.997.25 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-node@3.972.60': - dependencies: - '@aws-sdk/credential-provider-env': 3.972.51 - '@aws-sdk/credential-provider-http': 3.972.53 - '@aws-sdk/credential-provider-ini': 3.972.58 - '@aws-sdk/credential-provider-process': 3.972.51 - '@aws-sdk/credential-provider-sso': 3.972.57 - '@aws-sdk/credential-provider-web-identity': 3.972.57 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/credential-provider-imds': 4.4.4 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-process@3.972.51': - dependencies: - '@aws-sdk/core': 3.974.25 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-sso@3.972.57': - dependencies: - '@aws-sdk/core': 3.974.25 - '@aws-sdk/nested-clients': 3.997.25 - '@aws-sdk/token-providers': 3.1077.0 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-web-identity@3.972.57': - dependencies: - '@aws-sdk/core': 3.974.25 - '@aws-sdk/nested-clients': 3.997.25 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/nested-clients@3.997.25': - dependencies: - '@aws-sdk/core': 3.974.25 - '@aws-sdk/signature-v4-multi-region': 3.996.37 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/fetch-http-handler': 5.6.1 - '@smithy/node-http-handler': 4.9.1 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/signature-v4-multi-region@3.996.37': - dependencies: - '@aws-sdk/types': 3.973.14 - '@smithy/signature-v4': 5.6.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/token-providers@3.1077.0': - dependencies: - '@aws-sdk/core': 3.974.25 - '@aws-sdk/nested-clients': 3.997.25 - '@aws-sdk/types': 3.973.14 - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/types@3.973.14': - dependencies: - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws-sdk/xml-builder@3.972.32': - dependencies: - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@aws/lambda-invoke-store@0.2.4': {} - - '@babel/runtime@7.29.7': {} - - '@elastic/elasticsearch@7.17.14': - dependencies: - debug: 4.4.3 - hpagent: 0.1.2 - ms: 2.1.3 - secure-json-parse: 2.7.0 - transitivePeerDependencies: - - supports-color - - '@esbuild/aix-ppc64@0.28.1': - optional: true - - '@esbuild/android-arm64@0.28.1': - optional: true - - '@esbuild/android-arm@0.28.1': - optional: true - - '@esbuild/android-x64@0.28.1': - optional: true - - '@esbuild/darwin-arm64@0.28.1': - optional: true - - '@esbuild/darwin-x64@0.28.1': - optional: true - - '@esbuild/freebsd-arm64@0.28.1': - optional: true - - '@esbuild/freebsd-x64@0.28.1': - optional: true - - '@esbuild/linux-arm64@0.28.1': - optional: true - - '@esbuild/linux-arm@0.28.1': - optional: true - - '@esbuild/linux-ia32@0.28.1': - optional: true - - '@esbuild/linux-loong64@0.28.1': - optional: true - - '@esbuild/linux-mips64el@0.28.1': - optional: true - - '@esbuild/linux-ppc64@0.28.1': - optional: true - - '@esbuild/linux-riscv64@0.28.1': - optional: true - - '@esbuild/linux-s390x@0.28.1': - optional: true - - '@esbuild/linux-x64@0.28.1': - optional: true - - '@esbuild/netbsd-arm64@0.28.1': - optional: true - - '@esbuild/netbsd-x64@0.28.1': - optional: true - - '@esbuild/openbsd-arm64@0.28.1': - optional: true - - '@esbuild/openbsd-x64@0.28.1': - optional: true - - '@esbuild/openharmony-arm64@0.28.1': - optional: true - - '@esbuild/sunos-x64@0.28.1': - optional: true - - '@esbuild/win32-arm64@0.28.1': - optional: true - - '@esbuild/win32-ia32@0.28.1': - optional: true - - '@esbuild/win32-x64@0.28.1': - optional: true - - '@graphql-tools/batch-execute@8.5.1(graphql@16.14.2)': - dependencies: - '@graphql-tools/utils': 8.9.0(graphql@16.14.2) - dataloader: 2.1.0 - graphql: 16.14.2 - tslib: 2.8.1 - value-or-promise: 1.0.11 - - '@graphql-tools/delegate@8.8.1(graphql@16.14.2)': - dependencies: - '@graphql-tools/batch-execute': 8.5.1(graphql@16.14.2) - '@graphql-tools/schema': 8.5.1(graphql@16.14.2) - '@graphql-tools/utils': 8.9.0(graphql@16.14.2) - dataloader: 2.1.0 - graphql: 16.14.2 - tslib: 2.4.1 - value-or-promise: 1.0.11 - - '@graphql-tools/merge@8.3.1(graphql@16.14.2)': - dependencies: - '@graphql-tools/utils': 8.9.0(graphql@16.14.2) - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/merge@8.4.2(graphql@16.14.2)': - dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.14.2) - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/merge@9.1.10(graphql@16.14.2)': - dependencies: - '@graphql-tools/utils': 11.1.1(graphql@16.14.2) - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/mock@8.7.20(graphql@16.14.2)': - dependencies: - '@graphql-tools/schema': 9.0.19(graphql@16.14.2) - '@graphql-tools/utils': 9.2.1(graphql@16.14.2) - fast-json-stable-stringify: 2.1.0 - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/schema@8.5.1(graphql@16.14.2)': - dependencies: - '@graphql-tools/merge': 8.3.1(graphql@16.14.2) - '@graphql-tools/utils': 8.9.0(graphql@16.14.2) - graphql: 16.14.2 - tslib: 2.8.1 - value-or-promise: 1.0.11 - - '@graphql-tools/schema@9.0.19(graphql@16.14.2)': - dependencies: - '@graphql-tools/merge': 8.4.2(graphql@16.14.2) - '@graphql-tools/utils': 9.2.1(graphql@16.14.2) - graphql: 16.14.2 - tslib: 2.8.1 - value-or-promise: 1.0.12 - - '@graphql-tools/utils@10.11.0(graphql@16.14.2)': - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) - '@whatwg-node/promise-helpers': 1.3.2 - cross-inspect: 1.0.1 - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/utils@11.1.1(graphql@16.14.2)': - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) - '@whatwg-node/promise-helpers': 1.3.2 - cross-inspect: 1.0.1 - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/utils@8.9.0(graphql@16.14.2)': - dependencies: - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-tools/utils@9.2.1(graphql@16.14.2)': - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.14.2) - graphql: 16.14.2 - tslib: 2.8.1 - - '@graphql-typed-document-node/core@3.2.0(graphql@16.14.2)': - dependencies: - graphql: 16.14.2 - - '@josephg/resolvable@1.0.1': {} - - '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': - dependencies: - jsep: 1.4.0 - - '@jsep-plugin/regex@1.0.4(jsep@1.4.0)': - dependencies: - jsep: 1.4.0 - - '@opensearch-project/opensearch@3.6.0': - dependencies: - aws4: 1.13.2 - debug: 4.4.3 - hpagent: 1.2.0 - json11: 2.0.2 - ms: 2.1.3 - secure-json-parse: 2.7.0 - transitivePeerDependencies: - - supports-color - - '@overture-stack/arranger-graphql-router@file:../../modules/graphql-router': - dependencies: - '@elastic/elasticsearch': 7.17.14 - '@graphql-tools/merge': 9.1.10(graphql@16.14.2) - '@graphql-tools/schema': 9.0.19(graphql@16.14.2) - '@graphql-tools/utils': 10.11.0(graphql@16.14.2) - '@opensearch-project/opensearch': 3.6.0 - '@overture-stack/arranger-types': file:../../modules/types - '@overture-stack/sqon-builder': 1.1.0 - apollo-server: 3.13.0(graphql@16.14.2) - apollo-server-core: 3.13.0(graphql@16.14.2) - apollo-server-express: 3.13.0(express@4.22.2)(graphql@16.14.2) - axios: 1.18.1 - chalk: 2.4.2 - convert-units: 2.3.4 - cors: 2.8.6 - date-fns: 2.30.0 - dotenv: 16.6.1 - express: 4.22.2 - graphql: 16.14.2 - graphql-fields: 2.0.3 - graphql-middleware: 6.1.35(graphql@16.14.2) - graphql-playground-html: 1.6.30 - graphql-playground-middleware-express: 1.7.23(express@4.22.2) - graphql-scalars: 1.25.0(graphql@16.14.2) - graphql-type-json: 0.3.2(graphql@16.14.2) - jsonpath-plus: 10.4.0 - lodash-es: 4.18.1 - morgan: 1.11.0 - paralleljs: 1.1.0 - qew: 0.11.1 - ramda: 0.28.0 - tar-stream: 2.2.0 - through2: 4.0.2 - tslib: 2.8.1 - url-join: 4.0.1 - uuid: 9.0.1 - transitivePeerDependencies: - - debug - - encoding - - supports-color - - '@overture-stack/arranger-types@file:../../modules/types': - dependencies: - '@overture-stack/sqon': file:../../modules/sqon - - '@overture-stack/sqon-builder@1.1.0': - dependencies: - lodash.clonedeep: 4.5.0 - zod: 3.25.76 - - '@overture-stack/sqon@file:../../modules/sqon': - dependencies: - zod: 3.25.76 - zod-to-json-schema: 3.25.2(zod@3.25.76) - - '@protobufjs/aspromise@1.1.2': {} - - '@protobufjs/base64@1.1.2': {} - - '@protobufjs/codegen@2.0.5': {} - - '@protobufjs/eventemitter@1.1.1': {} - - '@protobufjs/fetch@1.1.1': - dependencies: - '@protobufjs/aspromise': 1.1.2 - - '@protobufjs/float@1.0.2': {} - - '@protobufjs/inquire@1.1.2': {} - - '@protobufjs/path@1.1.2': {} - - '@protobufjs/pool@1.1.0': {} - - '@protobufjs/utf8@1.1.1': {} - - '@smithy/core@3.28.0': - dependencies: - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@smithy/credential-provider-imds@4.4.4': - dependencies: - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@smithy/fetch-http-handler@5.6.1': - dependencies: - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@smithy/node-http-handler@4.9.1': - dependencies: - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@smithy/signature-v4@5.6.0': - dependencies: - '@smithy/core': 3.28.0 - '@smithy/types': 4.15.0 - tslib: 2.8.1 - - '@smithy/types@4.15.0': - dependencies: - tslib: 2.8.1 - - '@tsconfig/node22@22.0.5': {} - - '@types/accepts@1.3.7': - dependencies: - '@types/node': 22.20.0 - - '@types/body-parser@1.19.2': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 22.20.0 - - '@types/body-parser@1.19.6': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 22.20.0 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 22.20.0 - - '@types/cors@2.8.12': {} - - '@types/cors@2.8.19': - dependencies: - '@types/node': 22.20.0 - - '@types/express-serve-static-core@4.17.31': - dependencies: - '@types/node': 22.20.0 - '@types/qs': 6.15.1 - '@types/range-parser': 1.2.7 - - '@types/express-serve-static-core@4.19.8': - dependencies: - '@types/node': 22.20.0 - '@types/qs': 6.15.1 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 - - '@types/express@4.17.14': - dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.8 - '@types/qs': 6.15.1 - '@types/serve-static': 2.2.0 - - '@types/express@4.17.25': - dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.8 - '@types/qs': 6.15.1 - '@types/serve-static': 1.15.10 - - '@types/http-errors@2.0.5': {} - - '@types/long@4.0.2': {} - - '@types/mime@1.3.5': {} - - '@types/node@10.17.60': {} - - '@types/node@22.20.0': - dependencies: - undici-types: 6.21.0 - - '@types/qs@6.15.1': {} - - '@types/range-parser@1.2.7': {} - - '@types/send@0.17.6': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 22.20.0 - - '@types/send@1.2.1': - dependencies: - '@types/node': 22.20.0 - - '@types/serve-static@1.15.10': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 22.20.0 - '@types/send': 0.17.6 - - '@types/serve-static@2.2.0': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 22.20.0 - - '@whatwg-node/promise-helpers@1.3.2': - dependencies: - tslib: 2.8.1 - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - agent-base@6.0.2: - dependencies: - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - apollo-datasource@3.3.2: - dependencies: - '@apollo/utils.keyvaluecache': 1.0.2 - apollo-server-env: 4.2.1 - transitivePeerDependencies: - - encoding - - apollo-reporting-protobuf@3.4.0: - dependencies: - '@apollo/protobufjs': 1.2.6 - - apollo-server-core@3.13.0(graphql@16.14.2): - dependencies: - '@apollo/utils.keyvaluecache': 1.0.2 - '@apollo/utils.logger': 1.0.1 - '@apollo/utils.usagereporting': 1.0.1(graphql@16.14.2) - '@apollographql/apollo-tools': 0.5.4(graphql@16.14.2) - '@apollographql/graphql-playground-html': 1.6.29 - '@graphql-tools/mock': 8.7.20(graphql@16.14.2) - '@graphql-tools/schema': 8.5.1(graphql@16.14.2) - '@josephg/resolvable': 1.0.1 - apollo-datasource: 3.3.2 - apollo-reporting-protobuf: 3.4.0 - apollo-server-env: 4.2.1 - apollo-server-errors: 3.3.1(graphql@16.14.2) - apollo-server-plugin-base: 3.7.2(graphql@16.14.2) - apollo-server-types: 3.8.0(graphql@16.14.2) - async-retry: 1.3.3 - fast-json-stable-stringify: 2.1.0 - graphql: 16.14.2 - graphql-tag: 2.12.7(graphql@16.14.2) - loglevel: 1.9.2 - lru-cache: 6.0.0 - node-abort-controller: 3.1.1 - sha.js: 2.4.12 - uuid: 9.0.1 - whatwg-mimetype: 3.0.0 - transitivePeerDependencies: - - encoding - - apollo-server-env@4.2.1: - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - - apollo-server-errors@3.3.1(graphql@16.14.2): - dependencies: - graphql: 16.14.2 - - apollo-server-express@3.13.0(express@4.22.2)(graphql@16.14.2): - dependencies: - '@types/accepts': 1.3.7 - '@types/body-parser': 1.19.2 - '@types/cors': 2.8.12 - '@types/express': 4.17.14 - '@types/express-serve-static-core': 4.17.31 - accepts: 1.3.8 - apollo-server-core: 3.13.0(graphql@16.14.2) - apollo-server-types: 3.8.0(graphql@16.14.2) - body-parser: 1.20.5 - cors: 2.8.6 - express: 4.22.2 - graphql: 16.14.2 - parseurl: 1.3.3 - transitivePeerDependencies: - - encoding - - supports-color - - apollo-server-plugin-base@3.7.2(graphql@16.14.2): - dependencies: - apollo-server-types: 3.8.0(graphql@16.14.2) - graphql: 16.14.2 - transitivePeerDependencies: - - encoding - - apollo-server-types@3.8.0(graphql@16.14.2): - dependencies: - '@apollo/utils.keyvaluecache': 1.0.2 - '@apollo/utils.logger': 1.0.1 - apollo-reporting-protobuf: 3.4.0 - apollo-server-env: 4.2.1 - graphql: 16.14.2 - transitivePeerDependencies: - - encoding - - apollo-server@3.13.0(graphql@16.14.2): - dependencies: - '@types/express': 4.17.14 - apollo-server-core: 3.13.0(graphql@16.14.2) - apollo-server-express: 3.13.0(express@4.22.2)(graphql@16.14.2) - express: 4.22.2 - graphql: 16.14.2 - transitivePeerDependencies: - - encoding - - supports-color - - array-flatten@1.1.1: {} - - async-retry@1.3.3: - dependencies: - retry: 0.13.1 - - asynckit@0.4.0: {} - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - aws4@1.13.2: {} - - axios@1.18.1: - dependencies: - follow-redirects: 1.16.0 - form-data: 4.0.6 - https-proxy-agent: 5.0.1 - proxy-from-env: 2.1.0 - transitivePeerDependencies: - - debug - - supports-color - - base64-js@1.5.1: {} - - basic-auth@2.0.1: - dependencies: - safe-buffer: 5.1.2 - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - body-parser@1.20.5: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.15.3 - raw-body: 2.5.3 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - bowser@2.14.1: {} - - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - bytes@3.1.2: {} - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.9: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-name@1.1.3: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@2.20.3: {} - - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - - convert-units@2.3.4: - dependencies: - lodash.foreach: 2.3.0 - lodash.keys: 2.3.0 - - cookie-signature@1.0.7: {} - - cookie@0.7.2: {} - - cors@2.8.6: - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - - cross-inspect@1.0.1: - dependencies: - tslib: 2.8.1 - - cssfilter@0.0.10: {} - - dataloader@2.1.0: {} - - date-fns@2.30.0: - dependencies: - '@babel/runtime': 7.29.7 - - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - delayed-stream@1.0.0: {} - - depd@2.0.0: {} - - destroy@1.2.0: {} - - dotenv@16.6.1: {} - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - ee-first@1.1.1: {} - - encodeurl@2.0.0: {} - - end-of-stream@1.4.5: - dependencies: - once: 1.4.0 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-object-atoms@1.1.2: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.4 - - esbuild@0.28.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.28.1 - '@esbuild/android-arm': 0.28.1 - '@esbuild/android-arm64': 0.28.1 - '@esbuild/android-x64': 0.28.1 - '@esbuild/darwin-arm64': 0.28.1 - '@esbuild/darwin-x64': 0.28.1 - '@esbuild/freebsd-arm64': 0.28.1 - '@esbuild/freebsd-x64': 0.28.1 - '@esbuild/linux-arm': 0.28.1 - '@esbuild/linux-arm64': 0.28.1 - '@esbuild/linux-ia32': 0.28.1 - '@esbuild/linux-loong64': 0.28.1 - '@esbuild/linux-mips64el': 0.28.1 - '@esbuild/linux-ppc64': 0.28.1 - '@esbuild/linux-riscv64': 0.28.1 - '@esbuild/linux-s390x': 0.28.1 - '@esbuild/linux-x64': 0.28.1 - '@esbuild/netbsd-arm64': 0.28.1 - '@esbuild/netbsd-x64': 0.28.1 - '@esbuild/openbsd-arm64': 0.28.1 - '@esbuild/openbsd-x64': 0.28.1 - '@esbuild/openharmony-arm64': 0.28.1 - '@esbuild/sunos-x64': 0.28.1 - '@esbuild/win32-arm64': 0.28.1 - '@esbuild/win32-ia32': 0.28.1 - '@esbuild/win32-x64': 0.28.1 - - escape-html@1.0.3: {} - - escape-string-regexp@1.0.5: {} - - etag@1.8.1: {} - - express@4.22.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.5 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.2 - cookie-signature: 1.0.7 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.2 - fresh: 0.5.2 - http-errors: 2.0.1 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.13 - proxy-addr: 2.0.7 - qs: 6.15.3 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.2 - serve-static: 1.16.3 - setprototypeof: 1.2.0 - statuses: 2.0.2 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - fast-json-stable-stringify@2.1.0: {} - - finalhandler@1.3.2: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.2 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - follow-redirects@1.16.0: {} - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - form-data@4.0.6: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.4 - mime-types: 2.1.35 - - forwarded@0.2.0: {} - - fresh@0.5.2: {} - - fs-constants@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.2 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.4 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.2 - - gopd@1.2.0: {} - - graphql-fields@2.0.3: {} - - graphql-middleware@6.1.35(graphql@16.14.2): - dependencies: - '@graphql-tools/delegate': 8.8.1(graphql@16.14.2) - '@graphql-tools/schema': 8.5.1(graphql@16.14.2) - graphql: 16.14.2 - - graphql-playground-html@1.6.30: - dependencies: - xss: 1.0.15 - - graphql-playground-middleware-express@1.7.23(express@4.22.2): - dependencies: - express: 4.22.2 - graphql-playground-html: 1.6.30 - - graphql-scalars@1.25.0(graphql@16.14.2): - dependencies: - graphql: 16.14.2 - tslib: 2.8.1 - - graphql-tag@2.12.7(graphql@16.14.2): - dependencies: - graphql: 16.14.2 - tslib: 2.8.1 - - graphql-type-json@0.3.2(graphql@16.14.2): - dependencies: - graphql: 16.14.2 - - graphql@16.14.2: {} - - has-flag@3.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.4: - dependencies: - function-bind: 1.1.2 - - hpagent@0.1.2: {} - - hpagent@1.2.0: {} - - http-errors@2.0.1: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.2 - toidentifier: 1.0.1 - - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - - ieee754@1.2.1: {} - - inherits@2.0.4: {} - - ipaddr.js@1.9.1: {} - - is-callable@1.2.7: {} - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.22 - - isarray@2.0.5: {} - - jsep@1.4.0: {} - - json11@2.0.2: {} - - jsonpath-plus@10.4.0: - dependencies: - '@jsep-plugin/assignment': 1.3.0(jsep@1.4.0) - '@jsep-plugin/regex': 1.0.4(jsep@1.4.0) - jsep: 1.4.0 - - lodash-es@4.18.1: {} - - lodash._basebind@2.3.0: - dependencies: - lodash._basecreate: 2.3.0 - lodash._setbinddata: 2.3.0 - lodash.isobject: 2.3.0 - - lodash._basecreate@2.3.0: - dependencies: - lodash._renative: 2.3.0 - lodash.isobject: 2.3.0 - lodash.noop: 2.3.0 - - lodash._basecreatecallback@2.3.0: - dependencies: - lodash._setbinddata: 2.3.0 - lodash.bind: 2.3.0 - lodash.identity: 2.3.0 - lodash.support: 2.3.0 - - lodash._basecreatewrapper@2.3.0: - dependencies: - lodash._basecreate: 2.3.0 - lodash._setbinddata: 2.3.0 - lodash._slice: 2.3.0 - lodash.isobject: 2.3.0 - - lodash._createwrapper@2.3.0: - dependencies: - lodash._basebind: 2.3.0 - lodash._basecreatewrapper: 2.3.0 - lodash.isfunction: 2.3.0 - - lodash._objecttypes@2.3.0: {} - - lodash._renative@2.3.0: {} - - lodash._setbinddata@2.3.0: - dependencies: - lodash._renative: 2.3.0 - lodash.noop: 2.3.0 - - lodash._shimkeys@2.3.0: - dependencies: - lodash._objecttypes: 2.3.0 - - lodash._slice@2.3.0: {} - - lodash.bind@2.3.0: - dependencies: - lodash._createwrapper: 2.3.0 - lodash._renative: 2.3.0 - lodash._slice: 2.3.0 - - lodash.clonedeep@4.5.0: {} - - lodash.foreach@2.3.0: - dependencies: - lodash._basecreatecallback: 2.3.0 - lodash.forown: 2.3.0 - - lodash.forown@2.3.0: - dependencies: - lodash._basecreatecallback: 2.3.0 - lodash._objecttypes: 2.3.0 - lodash.keys: 2.3.0 - - lodash.identity@2.3.0: {} - - lodash.isfunction@2.3.0: {} - - lodash.isobject@2.3.0: - dependencies: - lodash._objecttypes: 2.3.0 - - lodash.keys@2.3.0: - dependencies: - lodash._renative: 2.3.0 - lodash._shimkeys: 2.3.0 - lodash.isobject: 2.3.0 - - lodash.noop@2.3.0: {} - - lodash.sortby@4.7.0: {} - - lodash.support@2.3.0: - dependencies: - lodash._renative: 2.3.0 - - loglevel@1.9.2: {} - - long@4.0.0: {} - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - lru-cache@7.13.1: {} - - math-intrinsics@1.1.0: {} - - media-typer@0.3.0: {} - - merge-descriptors@1.0.3: {} - - methods@1.1.2: {} - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime@1.6.0: {} - - morgan@1.11.0: - dependencies: - basic-auth: 2.0.1 - debug: 2.6.9 - depd: 2.0.0 - on-finished: 2.4.1 - on-headers: 1.1.0 - transitivePeerDependencies: - - supports-color - - ms@2.0.0: {} - - ms@2.1.3: {} - - negotiator@0.6.3: {} - - node-abort-controller@3.1.1: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - object-assign@4.1.1: {} - - object-inspect@1.13.4: {} - - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - - on-headers@1.1.0: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - paralleljs@1.1.0: {} - - parseurl@1.3.3: {} - - path-to-regexp@0.1.13: {} - - possible-typed-array-names@1.1.0: {} - - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - - proxy-from-env@2.1.0: {} - - qew@0.11.1: {} - - qs@6.15.3: - dependencies: - es-define-property: 1.0.1 - side-channel: 1.1.1 - - ramda@0.28.0: {} - - range-parser@1.2.1: {} - - raw-body@2.5.3: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - retry@0.13.1: {} - - safe-buffer@5.1.2: {} - - safe-buffer@5.2.1: {} - - safer-buffer@2.1.2: {} - - secure-json-parse@2.7.0: {} - - send@0.19.2: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.1 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - - serve-static@1.16.3: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.2 - transitivePeerDependencies: - - supports-color - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - setprototypeof@1.2.0: {} - - sha.js@2.4.12: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - - side-channel-list@1.0.1: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.1: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.1 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - statuses@2.0.2: {} - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.5 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - - through2@4.0.2: - dependencies: - readable-stream: 3.6.2 - - to-buffer@1.2.2: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 - - toidentifier@1.0.1: {} - - tr46@0.0.3: {} - - tslib@2.4.1: {} - - tslib@2.8.1: {} - - tsx@4.22.4: - dependencies: - esbuild: 0.28.1 - optionalDependencies: - fsevents: 2.3.3 - - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typescript@5.9.3: {} - - undici-types@6.21.0: {} - - unpipe@1.0.0: {} - - url-join@4.0.1: {} - - util-deprecate@1.0.2: {} - - utils-merge@1.0.1: {} - - uuid@9.0.1: {} - - value-or-promise@1.0.11: {} - - value-or-promise@1.0.12: {} - - vary@1.1.2: {} - - webidl-conversions@3.0.1: {} - - whatwg-mimetype@3.0.0: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - which-typed-array@1.1.22: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - wrappy@1.0.2: {} - - xss@1.0.15: - dependencies: - commander: 2.20.3 - cssfilter: 0.0.10 - - yallist@4.0.0: {} - - zod-to-json-schema@3.25.2(zod@3.25.76): - dependencies: - zod: 3.25.76 - - zod@3.25.76: {} From da47b8bc3324638067fc80bc8183459c087b984d Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Thu, 2 Jul 2026 16:13:44 -0400 Subject: [PATCH 04/21] Restore admin/utils.ts changes --- .gitignore | 2 +- .../src/admin/schemas/ProjectSchema/utils.ts | 135 +++++++++--------- 2 files changed, 72 insertions(+), 65 deletions(-) diff --git a/.gitignore b/.gitignore index ddbedfdf4..190fa8931 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ lerna-debug.log !**/.env.schema /configs -/modules/graphql-router/src/admin/** +#/modules/graphql-router/src/admin/** diff --git a/modules/graphql-router/src/admin/schemas/ProjectSchema/utils.ts b/modules/graphql-router/src/admin/schemas/ProjectSchema/utils.ts index 8e443c83c..d5a06bdcf 100644 --- a/modules/graphql-router/src/admin/schemas/ProjectSchema/utils.ts +++ b/modules/graphql-router/src/admin/schemas/ProjectSchema/utils.ts @@ -1,75 +1,82 @@ -import type { SearchClient } from '../../../searchClient/types.js'; -import { constants } from '../../services/constants.js'; -import { serializeToEsId } from '../../services/index.js'; -import { getProjectMetadataEsLocation } from '../IndexSchema/utils.js'; - -import type { IArrangerProject } from './types'; +import { Client } from '@elastic/elasticsearch'; +import { constants } from '../../services/constants'; +import { serializeToEsId } from '../../services'; +import { IArrangerProject } from './types'; +import { getProjectMetadataEsLocation } from '../IndexSchema/utils'; const { ARRANGER_PROJECT_INDEX } = constants; export const newArrangerProject = (id: string): IArrangerProject => ({ - id: serializeToEsId(id), - active: true, - timestamp: new Date().toISOString(), + id: serializeToEsId(id), + active: true, + timestamp: new Date().toISOString(), }); -export const getArrangerProjects = async (es: SearchClient): Promise => { - const { - body: { - hits: { hits }, - }, - } = await es - .search({ - index: ARRANGER_PROJECT_INDEX, - }) - .catch(() => ({ - body: { - hits: { - hits: [], - }, - }, - })); - return hits.map(({ _source }) => _source as IArrangerProject); +export const getArrangerProjects = async (es: Client): Promise> => { + const { + body: { + hits: { hits }, + }, + }: { + body: { + hits: { + hits: Array<{ + _source: any; + }>; + }; + }; + } = await es + .search({ + index: ARRANGER_PROJECT_INDEX, + }) + .catch(() => ({ + body: { + hits: { + hits: [], + }, + }, + })); + return hits.map(({ _source }) => _source as IArrangerProject); }; export const addArrangerProject = - (es: SearchClient) => - async (id: string): Promise => { - //id must be lower case - const _id = serializeToEsId(id); - const newProject = newArrangerProject(_id); - await Promise.all([ - await es.indices.create({ index: getProjectMetadataEsLocation(id).index }), - await es - .create({ - index: ARRANGER_PROJECT_INDEX, - id: _id, - body: newProject, - refresh: 'true', - }) - .then(() => newProject) - .catch(Promise.reject), - ]); - return getArrangerProjects(es); - }; + (es: Client) => + async (id: string): Promise => { + //id must be lower case + const _id = serializeToEsId(id); + const newProject = newArrangerProject(_id); + await Promise.all([ + await es.indices.create({ index: getProjectMetadataEsLocation(id).index }), + await es + .create({ + index: ARRANGER_PROJECT_INDEX, + id: _id, + body: newProject, + refresh: 'true', + }) + .then(() => newProject) + .catch(Promise.reject), + ]); + return getArrangerProjects(es); + }; export const removeArrangerProject = - (es: SearchClient) => - async (id: string): Promise => { - const existingProject = (await getArrangerProjects(es)).find(({ id: _id }) => id === _id); - if (existingProject) { - await Promise.all([ - es.indices.delete({ - index: getProjectMetadataEsLocation(id).index, - }), - es.delete({ - index: ARRANGER_PROJECT_INDEX, - id: id, - refresh: 'true', - }), - ]); - return getArrangerProjects(es); - } else { - return Promise.reject(`No project with id ${id} was found`); - } - }; + (es: Client) => + async (id: string): Promise => { + const existingProject = (await getArrangerProjects(es)).find(({ id: _id }) => id === _id); + if (existingProject) { + await Promise.all([ + es.indices.delete({ + index: getProjectMetadataEsLocation(id).index, + }), + es.delete({ + index: ARRANGER_PROJECT_INDEX, + id: id, + refresh: 'true', + }), + ]); + return getArrangerProjects(es); + } else { + return Promise.reject(`No project with id ${id} was found`); + } + }; From d4edc0f9212edca051374bf255882f6ff7c677dc Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Thu, 2 Jul 2026 16:14:03 -0400 Subject: [PATCH 05/21] Use .gitignore for /admin --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 190fa8931..ddbedfdf4 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ lerna-debug.log !**/.env.schema /configs -#/modules/graphql-router/src/admin/** +/modules/graphql-router/src/admin/** From 7275919fb6a4dde32d189ae8e27fe50afc10b5a6 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Mon, 6 Jul 2026 14:34:44 -0400 Subject: [PATCH 06/21] Change setup for AWS Auth --- modules/graphql-router/src/router.ts | 5 ++ .../searchClient/createOpenSearchClient.ts | 2 +- .../graphql-router/src/searchClient/index.ts | 52 ++++++++----------- .../graphql-router/src/searchClient/types.ts | 2 +- 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/modules/graphql-router/src/router.ts b/modules/graphql-router/src/router.ts index 9d3667881..16b4d1836 100644 --- a/modules/graphql-router/src/router.ts +++ b/modules/graphql-router/src/router.ts @@ -74,6 +74,11 @@ const arrangerRouter = async ({ username: esUser, })); + if (!esClient) + throw new Error( + 'Failure with buildSearchClient while initializing Arranger Server. Unable to fetch index mappings.', + ); + const mappingFromIndex = await getIndexMapping({ enableDebug: !!enableDebug, searchClient: esClient, diff --git a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts index 3c1aa99e2..e3baca801 100644 --- a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts +++ b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts @@ -5,7 +5,7 @@ import type { SearchClient, SearchConfig } from './types.js'; export type OSClientOptions = Prettify< SearchConfig & { - clientType: 'opensearch' | 'opensearch-aws'; + clientType: 'opensearch'; } >; diff --git a/modules/graphql-router/src/searchClient/index.ts b/modules/graphql-router/src/searchClient/index.ts index a95e87207..defdc07a2 100644 --- a/modules/graphql-router/src/searchClient/index.ts +++ b/modules/graphql-router/src/searchClient/index.ts @@ -5,11 +5,7 @@ import { createElasticSearchClient, type ESClientOptions } from './createElastic import { createOpenSearchClient, type OSClientOptions } from './createOpenSearchClient.js'; import type { SearchClient, SearchConfig, SearchConfigWithClient, SupportedClientTypes } from './types.js'; -export const supportedClientValues = [ - 'opensearch', - 'elasticsearch', - 'opensearch-aws', -] as const satisfies SupportedClientTypes[]; +export const supportedClientValues = ['opensearch', 'elasticsearch'] as const satisfies SupportedClientTypes[]; const buildAuthHeaders = (auth: SearchConfig['auth']): Record => auth @@ -242,33 +238,31 @@ const createSearchEngineConfig = async ({ * Create searchClient instance using valid configuration options */ const createSearchClient = (clientConfig: SearchConfigWithClient): SearchClient | undefined => { - const { clientType } = clientConfig; + const { clientType, auth } = clientConfig; switch (clientType) { case 'opensearch': { - const options: OSClientOptions = { ...clientConfig, clientType }; - return createOpenSearchClient(options); - } - - case 'opensearch-aws': { - const options: OSClientOptions = { - ...clientConfig, - clientType, - ...AwsSigv4Signer({ - region: 'us-east-1', - service: 'es', - // Must return a Promise that resolve to an AWS.Credentials object. - // This function is used to acquire the credentials when the client start and - // when the credentials are expired. - // The Client will refresh the Credentials only when they are expired. - // With AWS SDK V2, Credentials.refreshPromise is used when available to refresh the credentials. - getCredentials: () => { - // Any other method to acquire a new Credentials object can be used. - const credentialsProvider = defaultProvider(); - return credentialsProvider(); - }, - }), - }; + const defaultOptions: OSClientOptions = { ...clientConfig, clientType }; + const options: OSClientOptions = auth?.withAWS + ? { + ...clientConfig, + clientType, + ...AwsSigv4Signer({ + region: 'us-east-1', + service: 'es', + // Must return a Promise that resolve to an AWS.Credentials object. + // This function is used to acquire the credentials when the client start and + // when the credentials are expired. + // The Client will refresh the Credentials only when they are expired. + // With AWS SDK V2, Credentials.refreshPromise is used when available to refresh the credentials. + getCredentials: () => { + // Any other method to acquire a new Credentials object can be used. + const credentialsProvider = defaultProvider(); + return credentialsProvider(); + }, + }), + } + : defaultOptions; return createOpenSearchClient(options); } diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 0797aac88..4fb875b1b 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -4,7 +4,6 @@ import type { Client as OpenSearchClient } from '@opensearch-project/opensearch' export type SupportedClients = { elasticsearch: ElasticClient; opensearch: OpenSearchClient; - 'opensearch-aws': OpenSearchClient; }; export type SupportedClientTypes = keyof SupportedClients; export type SearchConfig = { @@ -13,6 +12,7 @@ export type SearchConfig = { auth?: { password: string; username: string; + withAWS?: boolean; }; }; export type SearchConfigWithClient = Omit & { From eaa176292bf7c56338398bf24e26f4c47491cbff Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Mon, 6 Jul 2026 14:38:57 -0400 Subject: [PATCH 07/21] Revise boilerplate comment --- modules/graphql-router/src/searchClient/index.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/modules/graphql-router/src/searchClient/index.ts b/modules/graphql-router/src/searchClient/index.ts index defdc07a2..10616cbf4 100644 --- a/modules/graphql-router/src/searchClient/index.ts +++ b/modules/graphql-router/src/searchClient/index.ts @@ -243,6 +243,9 @@ const createSearchClient = (clientConfig: SearchConfigWithClient): SearchClient switch (clientType) { case 'opensearch': { const defaultOptions: OSClientOptions = { ...clientConfig, clientType }; + // Additional Auth config is required when using OpenSearch hosted in AWS + // See the OpenSearch client docs for more information: + // https://docs.opensearch.org/latest/clients/javascript/index#authenticating-with-amazon-opensearch-service-aws-signature-version-4 const options: OSClientOptions = auth?.withAWS ? { ...clientConfig, @@ -250,13 +253,7 @@ const createSearchClient = (clientConfig: SearchConfigWithClient): SearchClient ...AwsSigv4Signer({ region: 'us-east-1', service: 'es', - // Must return a Promise that resolve to an AWS.Credentials object. - // This function is used to acquire the credentials when the client start and - // when the credentials are expired. - // The Client will refresh the Credentials only when they are expired. - // With AWS SDK V2, Credentials.refreshPromise is used when available to refresh the credentials. getCredentials: () => { - // Any other method to acquire a new Credentials object can be used. const credentialsProvider = defaultProvider(); return credentialsProvider(); }, From ab084cf8b4b13dc71a2dc49e30fb0b1a80769756 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Mon, 6 Jul 2026 18:03:39 -0400 Subject: [PATCH 08/21] Auth config changes --- apps/search-server/.env.schema | 7 +++ modules/graphql-router/src/router.ts | 25 ++++++-- .../graphql-router/src/searchClient/index.ts | 62 +++++++++---------- .../graphql-router/src/searchClient/types.ts | 25 ++++++-- modules/types/src/configs/constants.ts | 4 +- modules/types/src/configs/index.ts | 5 ++ 6 files changed, 84 insertions(+), 44 deletions(-) diff --git a/apps/search-server/.env.schema b/apps/search-server/.env.schema index 7b6bde94e..39860f4c9 100644 --- a/apps/search-server/.env.schema +++ b/apps/search-server/.env.schema @@ -45,6 +45,13 @@ DOCUMENT_TYPE='' # 'elasticsearch' or 'opensearch'. Leave unset to auto-detect from the cluster. SEARCH_ENGINE=elasticsearch +# 'standard', 'AWS' or undefined. Used to specify authentication method for Search Engine configuration. +SEARCH_ENGINE_AUTH_TYPE= + +# Additional AWS Auth properties +SEARCH_ENGINE_AUTH_REGION= +SEARCH_ENGINE_AUTH_SERVICE= + # -- Arranger Sets [catalogue] -------------------------------- diff --git a/modules/graphql-router/src/router.ts b/modules/graphql-router/src/router.ts index 16b4d1836..17c2f8f77 100644 --- a/modules/graphql-router/src/router.ts +++ b/modules/graphql-router/src/router.ts @@ -55,10 +55,18 @@ const arrangerRouter = async ({ try { const aggregatedConfigs = mergeConfigs(fallbackConfigs, customConfigs); - const { enableAdmin, enableDebug, esHost, esPass, esUser, searchEngine, ...configs } = validateConfigs( - aggregatedConfigs, - customEsClient, - ); + const { + enableAdmin, + enableDebug, + esHost, + esPass, + esUser, + searchEngine, + searchEngineAuthType, + searchEngineAuthRegion, + searchEngineAuthService, + ...configs + } = validateConfigs(aggregatedConfigs, customEsClient); warnDeprecatedConfigsSource({ configsSource, enableDebug: aggregatedConfigs.enableDebug }); @@ -70,8 +78,13 @@ const arrangerRouter = async ({ (await buildSearchClient({ client: searchEngine, node: esHost, - password: esPass, - username: esUser, + auth: { + password: esPass, + username: esUser, + type: searchEngineAuthType, + region: searchEngineAuthRegion, + service: searchEngineAuthService, + }, })); if (!esClient) diff --git a/modules/graphql-router/src/searchClient/index.ts b/modules/graphql-router/src/searchClient/index.ts index 10616cbf4..e458174d2 100644 --- a/modules/graphql-router/src/searchClient/index.ts +++ b/modules/graphql-router/src/searchClient/index.ts @@ -200,32 +200,26 @@ const getClientType = async ({ auth, clientType, node }: SearchConfig): Promise< * * If the config is invalid, this will throw an error with the intention of crashing the application. */ -const createSearchEngineConfig = async ({ - client, - node, - password, - username, -}: { - client?: string; - node?: string; - password?: string; - username?: string; -}): Promise => { - if (node) { - const auth = username && password ? { username, password } : undefined; +const createSearchEngineConfig = async (config: SearchConfig): Promise => { + const { node, auth } = config; - if (username && auth === undefined) { + if (node) { + if (auth?.username && !auth?.password) { console.warn('A username was provided without a password for the search engine'); + } else if (auth?.type === 'AWS' && !(config.clientType === 'opensearch')) { + throw new Error( + 'Config provided for an unsupported auth type. Cannot use AWS credentials with ElasticSearch client', + ); } - const clientType = await getClientType({ node, auth, clientType: client }); + const clientType = await getClientType(config); if (clientType) { return { node, auth, clientType }; } - const hint = client - ? `The configured value "${client}" is not a supported search engine type. Supported: ${supportedClientValues.join(', ')}.` + const hint = clientType + ? `The configured value "${clientType}" is not a supported search engine type. Supported: ${supportedClientValues.join(', ')}.` : `Auto-detection failed. Set the SEARCH_ENGINE environment variable to one of: ${supportedClientValues.join(', ')}.`; throw new Error(`Search engine configuration failed. ${hint}`); @@ -246,24 +240,28 @@ const createSearchClient = (clientConfig: SearchConfigWithClient): SearchClient // Additional Auth config is required when using OpenSearch hosted in AWS // See the OpenSearch client docs for more information: // https://docs.opensearch.org/latest/clients/javascript/index#authenticating-with-amazon-opensearch-service-aws-signature-version-4 - const options: OSClientOptions = auth?.withAWS - ? { - ...clientConfig, - clientType, - ...AwsSigv4Signer({ - region: 'us-east-1', - service: 'es', - getCredentials: () => { - const credentialsProvider = defaultProvider(); - return credentialsProvider(); - }, - }), - } - : defaultOptions; + const options: OSClientOptions = + auth && auth.type === 'AWS' + ? { + ...defaultOptions, + ...AwsSigv4Signer({ + region: auth.region || '', + service: auth.service, + getCredentials: () => { + const credentialsProvider = defaultProvider(); + return credentialsProvider(); + }, + }), + } + : defaultOptions; return createOpenSearchClient(options); } case 'elasticsearch': { + if (auth?.type === 'AWS') + throw new Error( + 'Config provided for an unsupported auth type. Cannot use AWS credentials with Elasticsearch client.', + ); const options: ESClientOptions = { ...clientConfig, clientType }; return createElasticSearchClient(options); } @@ -278,7 +276,7 @@ const createSearchClient = (clientConfig: SearchConfigWithClient): SearchClient /** * Main function for creating Search Client */ -const buildSearchClient = async (options: { client?: string; node?: string; password?: string; username?: string }) => { +const buildSearchClient = async (options: SearchConfig) => { const config = await createSearchEngineConfig(options); return createSearchClient(config); diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 4fb875b1b..b385e468f 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -1,19 +1,34 @@ import type { Client as ElasticClient } from '@elastic/elasticsearch'; import type { Client as OpenSearchClient } from '@opensearch-project/opensearch'; +import type { AuthTypes } from '@overture-stack/arranger-types/configs'; + +// Configuration export type SupportedClients = { elasticsearch: ElasticClient; opensearch: OpenSearchClient; }; export type SupportedClientTypes = keyof SupportedClients; + +export type AuthTypes = 'standard' | 'AWS'; +export type BaseAuthConfig = { + password: string; + username: string; + type?: AuthTypes; +}; +export type DefaultAuthConfig = BaseAuthConfig & { + type?: 'standard'; +}; +export type AWSAuthConfig = BaseAuthConfig & { + type: 'AWS'; + region: string; + service?: 'es' | 'aoss'; +}; + export type SearchConfig = { node: string; clientType?: string; - auth?: { - password: string; - username: string; - withAWS?: boolean; - }; + auth?: Partial | Partial; }; export type SearchConfigWithClient = Omit & { clientType: SupportedClientTypes; diff --git a/modules/types/src/configs/constants.ts b/modules/types/src/configs/constants.ts index 18021bcbb..ece800c3a 100644 --- a/modules/types/src/configs/constants.ts +++ b/modules/types/src/configs/constants.ts @@ -42,9 +42,11 @@ export const configOptionalProperties = { GRAPHQL_MAX_ALIASES: 'maxAliases', GRAPHQL_MAX_DEPTH: 'maxDepth', SEARCH_ENGINE: 'searchEngine', + SEARCH_ENGINE_AUTH_TYPE: 'searchEngineAuthType', + SEARCH_ENGINE_AUTH_REGION: 'searchEngineAuthRegion', + SEARCH_ENGINE_AUTH_SERVICE: 'searchEngineAuthService', SETS: 'sets', ...configFeatureFlagProperties, - // // configs for dependent libraries CHARTS: 'charts', FACETS: 'facets', diff --git a/modules/types/src/configs/index.ts b/modules/types/src/configs/index.ts index fa84dd4b0..c068146e0 100644 --- a/modules/types/src/configs/index.ts +++ b/modules/types/src/configs/index.ts @@ -158,6 +158,8 @@ export type NetworkConfig = { export type GetServerSideFilterFn = (context: Context) => SqonNode; export type SearchEngineType = 'elasticsearch' | 'opensearch'; +export type AuthTypes = 'standard' | 'AWS'; +export type AuthServices = 'es' | 'aoss'; /** * Full config object @@ -187,5 +189,8 @@ export type ConfigsObject = { [configOptionalProperties.MATCHBOX]: MatchBoxConfigs[]; [configOptionalProperties.SETS]: SetsConfigs; [configOptionalProperties.TABLE]: TableConfigs; + [configOptionalProperties.SEARCH_ENGINE_AUTH_TYPE]: AuthTypes; + [configOptionalProperties.SEARCH_ENGINE_AUTH_REGION]: string; + [configOptionalProperties.SEARCH_ENGINE_AUTH_SERVICE]: AuthServices; } >; From 0ee655330ccd276fd1bad7f4d38aa176a5ffb7be Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Tue, 7 Jul 2026 11:28:42 -0400 Subject: [PATCH 09/21] Remove aws-sdk --- apps/search-server/package.json | 1 - modules/graphql-router/src/searchClient/index.ts | 5 ----- modules/graphql-router/src/searchClient/types.ts | 2 -- 3 files changed, 8 deletions(-) diff --git a/apps/search-server/package.json b/apps/search-server/package.json index 82f191527..2c687ac5f 100644 --- a/apps/search-server/package.json +++ b/apps/search-server/package.json @@ -21,7 +21,6 @@ "test": "tsx --test ./src/**/*.test.ts" }, "dependencies": { - "@aws-sdk/credential-provider-node": "^3.972.60", "@overture-stack/arranger-graphql-router": "file:../../modules/graphql-router", "@overture-stack/arranger-types": "file:../../modules/types", "@overture-stack/sqon": "file:../../modules/sqon", diff --git a/modules/graphql-router/src/searchClient/index.ts b/modules/graphql-router/src/searchClient/index.ts index e458174d2..8ea3a03cd 100644 --- a/modules/graphql-router/src/searchClient/index.ts +++ b/modules/graphql-router/src/searchClient/index.ts @@ -1,4 +1,3 @@ -import { defaultProvider } from '@aws-sdk/credential-provider-node'; import { AwsSigv4Signer } from '@opensearch-project/opensearch/aws'; import { createElasticSearchClient, type ESClientOptions } from './createElasticSearchClient.js'; @@ -247,10 +246,6 @@ const createSearchClient = (clientConfig: SearchConfigWithClient): SearchClient ...AwsSigv4Signer({ region: auth.region || '', service: auth.service, - getCredentials: () => { - const credentialsProvider = defaultProvider(); - return credentialsProvider(); - }, }), } : defaultOptions; diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index b385e468f..05f33a13b 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -9,8 +9,6 @@ export type SupportedClients = { opensearch: OpenSearchClient; }; export type SupportedClientTypes = keyof SupportedClients; - -export type AuthTypes = 'standard' | 'AWS'; export type BaseAuthConfig = { password: string; username: string; From f74aa4a3786a7462c98a2948c38a2c6d954a02de Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Tue, 7 Jul 2026 13:56:43 -0400 Subject: [PATCH 10/21] Improve getOptions / createSearchClient --- .../searchClient/createElasticSearchClient.ts | 13 ++- .../searchClient/createOpenSearchClient.ts | 11 +- .../graphql-router/src/searchClient/index.ts | 100 ++++++++++++------ .../graphql-router/src/searchClient/types.ts | 33 +++--- 4 files changed, 101 insertions(+), 56 deletions(-) diff --git a/modules/graphql-router/src/searchClient/createElasticSearchClient.ts b/modules/graphql-router/src/searchClient/createElasticSearchClient.ts index 9033d6a37..81f8af97c 100644 --- a/modules/graphql-router/src/searchClient/createElasticSearchClient.ts +++ b/modules/graphql-router/src/searchClient/createElasticSearchClient.ts @@ -1,7 +1,7 @@ import { Client } from '@elastic/elasticsearch'; -import type { Prettify } from '@overture-stack/arranger-types/tools'; import type { + DefaultAuthConfig, SearchClient, SearchClientAcknowledgedResponseBody, SearchClientBulkResponseBody, @@ -13,14 +13,13 @@ import type { SearchClientShardDataResponseBody, SearchClientIndicesOpenResponseBody, SearchClientSearchBody, - SearchConfig, + SearchConfigWithClient, } from './types.js'; -export type ESClientOptions = Prettify< - SearchConfig & { - clientType: 'elasticsearch'; - } ->; +export type ESClientOptions = SearchConfigWithClient & { + clientType: 'elasticsearch'; + auth?: DefaultAuthConfig | undefined; +}; export function createElasticSearchClient(options: ESClientOptions): SearchClient { const elasticSearchClient = new Client(options); diff --git a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts index e3baca801..af8726f3a 100644 --- a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts +++ b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts @@ -1,13 +1,12 @@ import { Client } from '@opensearch-project/opensearch'; import type { Prettify } from '@overture-stack/arranger-types/tools'; -import type { SearchClient, SearchConfig } from './types.js'; +import type { SearchClient, SearchConfigWithClient, DefaultAuthConfig, AWSAuthConfig } from './types.js'; -export type OSClientOptions = Prettify< - SearchConfig & { - clientType: 'opensearch'; - } ->; +export type OSClientOptions = SearchConfigWithClient & { + clientType: 'opensearch'; + auth?: DefaultAuthConfig | AWSAuthConfig; +}; export function createOpenSearchClient(options: OSClientOptions): SearchClient { const openSearchClient = new Client(options); diff --git a/modules/graphql-router/src/searchClient/index.ts b/modules/graphql-router/src/searchClient/index.ts index 8ea3a03cd..6fbac11f5 100644 --- a/modules/graphql-router/src/searchClient/index.ts +++ b/modules/graphql-router/src/searchClient/index.ts @@ -1,8 +1,15 @@ import { AwsSigv4Signer } from '@opensearch-project/opensearch/aws'; +import type { Prettify } from '@overture-stack/arranger-types/tools'; import { createElasticSearchClient, type ESClientOptions } from './createElasticSearchClient.js'; import { createOpenSearchClient, type OSClientOptions } from './createOpenSearchClient.js'; -import type { SearchClient, SearchConfig, SearchConfigWithClient, SupportedClientTypes } from './types.js'; +import type { + SearchClient, + SearchConfig, + SearchConfigWithClient, + SupportedClientTypes, + SearchClientConfiguration, +} from './types.js'; export const supportedClientValues = ['opensearch', 'elasticsearch'] as const satisfies SupportedClientTypes[]; @@ -194,18 +201,68 @@ const getClientType = async ({ auth, clientType, node }: SearchConfig): Promise< } }; +const getClientOptions = ({ + clientType, + auth, + ...config +}: SearchConfigWithClient): ESClientOptions | OSClientOptions => { + switch (clientType) { + case 'opensearch': { + let options: OSClientOptions; + switch (auth?.type) { + case 'standard': + options = { ...auth, ...config, clientType }; + return options; + case 'AWS': + // Additional Auth config is required when using OpenSearch hosted in AWS + // See the OpenSearch client docs for more information: + // https://docs.opensearch.org/latest/clients/javascript/index#authenticating-with-amazon-opensearch-service-aws-signature-version-4 + options = { + ...config, + clientType, + ...AwsSigv4Signer({ + region: auth.region || '', + service: auth.service, + }), + }; + return options; + default: + options = { ...config, clientType }; + return options; + } + } + + case 'elasticsearch': { + let options: ESClientOptions; + switch (auth?.type) { + case 'AWS': + throw new Error( + 'Config provided for an unsupported auth type. Cannot use AWS credentials with Elasticsearch client.', + ); + default: + options = { ...config, clientType }; + return options; + } + } + + default: { + throw new Error('No valid search client type provided'); + } + } +}; + /** * Parse and validate search client configuration. * * If the config is invalid, this will throw an error with the intention of crashing the application. */ -const createSearchEngineConfig = async (config: SearchConfig): Promise => { - const { node, auth } = config; +const createSearchEngineConfig = async (config: SearchConfig): Promise => { + const { node, auth: authConfig } = config; if (node) { - if (auth?.username && !auth?.password) { + if (authConfig?.username && !authConfig?.password) { console.warn('A username was provided without a password for the search engine'); - } else if (auth?.type === 'AWS' && !(config.clientType === 'opensearch')) { + } else if (authConfig?.type === 'AWS' && !(config.clientType === 'opensearch')) { throw new Error( 'Config provided for an unsupported auth type. Cannot use AWS credentials with ElasticSearch client', ); @@ -214,7 +271,8 @@ const createSearchEngineConfig = async (config: SearchConfig): Promise { - const { clientType, auth } = clientConfig; +const createSearchClient = (clientConfig: SearchClientConfiguration): SearchClient | undefined => { + const { clientType } = clientConfig; switch (clientType) { case 'opensearch': { - const defaultOptions: OSClientOptions = { ...clientConfig, clientType }; - // Additional Auth config is required when using OpenSearch hosted in AWS - // See the OpenSearch client docs for more information: - // https://docs.opensearch.org/latest/clients/javascript/index#authenticating-with-amazon-opensearch-service-aws-signature-version-4 - const options: OSClientOptions = - auth && auth.type === 'AWS' - ? { - ...defaultOptions, - ...AwsSigv4Signer({ - region: auth.region || '', - service: auth.service, - }), - } - : defaultOptions; - return createOpenSearchClient(options); + return createOpenSearchClient(clientConfig); } case 'elasticsearch': { - if (auth?.type === 'AWS') - throw new Error( - 'Config provided for an unsupported auth type. Cannot use AWS credentials with Elasticsearch client.', - ); - const options: ESClientOptions = { ...clientConfig, clientType }; - return createElasticSearchClient(options); + return createElasticSearchClient(clientConfig); } default: { - console.error('No valid client search provided'); - return; + throw new Error('No valid client search provided'); } } }; diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 05f33a13b..6b69c6bdc 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -1,7 +1,10 @@ import type { Client as ElasticClient } from '@elastic/elasticsearch'; import type { Client as OpenSearchClient } from '@opensearch-project/opensearch'; - import type { AuthTypes } from '@overture-stack/arranger-types/configs'; +import type { Prettify } from '@overture-stack/arranger-types/tools'; + +import { type ESClientOptions } from './createElasticSearchClient.js'; +import { type OSClientOptions } from './createOpenSearchClient.js'; // Configuration export type SupportedClients = { @@ -11,27 +14,33 @@ export type SupportedClients = { export type SupportedClientTypes = keyof SupportedClients; export type BaseAuthConfig = { password: string; - username: string; type?: AuthTypes; + username: string; }; -export type DefaultAuthConfig = BaseAuthConfig & { - type?: 'standard'; -}; -export type AWSAuthConfig = BaseAuthConfig & { - type: 'AWS'; - region: string; - service?: 'es' | 'aoss'; -}; +export type DefaultAuthConfig = Prettify< + BaseAuthConfig & { + type: 'standard'; + } +>; +export type AWSAuthConfig = Prettify< + BaseAuthConfig & { + type: 'AWS'; + region: string; + service?: 'es' | 'aoss'; + } +>; export type SearchConfig = { + auth?: Partial | Partial; node: string; clientType?: string; - auth?: Partial | Partial; }; -export type SearchConfigWithClient = Omit & { +export type SearchConfigWithClient = SearchConfig & { clientType: SupportedClientTypes; }; +export type SearchClientConfiguration = ESClientOptions | OSClientOptions; + // Parameters export type SearchClientIndicesGetMappingParams = { index: string | string[] }; export type SearchClientIndicesRefreshParams = { index: string | string[] }; From a61d27f3aa277207d6ebc99beb25a19baa18b769 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Tue, 7 Jul 2026 14:35:18 -0400 Subject: [PATCH 11/21] Error & Type improvements --- modules/graphql-router/src/searchClient/index.ts | 2 +- modules/graphql-router/src/searchClient/types.ts | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/graphql-router/src/searchClient/index.ts b/modules/graphql-router/src/searchClient/index.ts index 6fbac11f5..990baf3ad 100644 --- a/modules/graphql-router/src/searchClient/index.ts +++ b/modules/graphql-router/src/searchClient/index.ts @@ -301,7 +301,7 @@ const createSearchClient = (clientConfig: SearchClientConfiguration): SearchClie } default: { - throw new Error('No valid client search provided'); + throw new Error('No valid search client type value provided'); } } }; diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 6b69c6bdc..6328d4f2f 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -35,9 +35,11 @@ export type SearchConfig = { node: string; clientType?: string; }; -export type SearchConfigWithClient = SearchConfig & { - clientType: SupportedClientTypes; -}; +export type SearchConfigWithClient = Prettify< + SearchConfig & { + clientType: SupportedClientTypes; + } +>; export type SearchClientConfiguration = ESClientOptions | OSClientOptions; From eb2f82064401cd3f69b388050406b71d79571309 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Tue, 7 Jul 2026 15:19:23 -0400 Subject: [PATCH 12/21] Type cleanup --- .../graphql-router/src/searchClient/createOpenSearchClient.ts | 1 - modules/graphql-router/src/searchClient/types.ts | 4 ++-- modules/types/src/configs/index.ts | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts index af8726f3a..349ca01c7 100644 --- a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts +++ b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts @@ -1,5 +1,4 @@ import { Client } from '@opensearch-project/opensearch'; -import type { Prettify } from '@overture-stack/arranger-types/tools'; import type { SearchClient, SearchConfigWithClient, DefaultAuthConfig, AWSAuthConfig } from './types.js'; diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 6328d4f2f..5ae64ef0a 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -72,9 +72,9 @@ export type SearchClientCreateParams = { id: string; index: string; body: Record; - refresh?: boolean | 'false' | 'true' | 'wait_for'; + refresh?: boolean | 'wait_for'; }; -export type SearchClientDeleteParams = { index: string; id: string; refresh?: boolean | 'false' | 'true' | 'wait_for' }; +export type SearchClientDeleteParams = { index: string; id: string; refresh?: boolean | 'wait_for' }; export type SearchClientDeleteByQueryParams = { index: string; body: Record }; export type SearchClientIndexParams = { index: string; body: Record }; export type SearchClientUpdateParams = { id: string; index: string; body: Record }; diff --git a/modules/types/src/configs/index.ts b/modules/types/src/configs/index.ts index c068146e0..560c54cb7 100644 --- a/modules/types/src/configs/index.ts +++ b/modules/types/src/configs/index.ts @@ -170,13 +170,13 @@ export type ConfigsObject = { [configRequiredProperties.ES_INDEX]: string; [configRequiredProperties.ES_PASS]: string; [configRequiredProperties.ES_USER]: string; + [configOptionalProperties.ES_HOST]: string; } & Partial< // these either have defaults or can be autogenerated AllFeatureFlagConfigs & { getServerSideFilter: GetServerSideFilterFn; [configOptionalProperties.CATALOG_ID]: string; [configOptionalProperties.DESCRIPTION]: string; - [configOptionalProperties.ES_HOST]: string; [configOptionalProperties.GRAPHQL_MAX_ALIASES]: number; [configOptionalProperties.GRAPHQL_MAX_DEPTH]: number; [configOptionalProperties.NETWORK_AGGREGATION]?: NetworkConfig; From 17070fd75cfe266c6df5b9188248413bed458c68 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Tue, 7 Jul 2026 16:18:03 -0400 Subject: [PATCH 13/21] Add Readme docs for AWS OpenSearch --- modules/graphql-router/README.md | 181 ++++++++++++++++--------------- 1 file changed, 91 insertions(+), 90 deletions(-) diff --git a/modules/graphql-router/README.md b/modules/graphql-router/README.md index 7c1b14def..b9b026b2e 100644 --- a/modules/graphql-router/README.md +++ b/modules/graphql-router/README.md @@ -21,11 +21,11 @@ import arrangerRouter from '@overture-stack/arranger-graphql-router'; const app = express(); const router = await arrangerRouter({ - configs: { - esHost: 'http://localhost:9200', - esIndex: 'file_centric', - documentType: 'File', - }, + configs: { + esHost: 'http://localhost:9200', + esIndex: 'file_centric', + documentType: 'File', + }, }); app.use('/graphql', router); @@ -50,12 +50,12 @@ const router = await arrangerRouter(options); #### Options -| Option | Type | Description | -|---|---|---| -| `configs` | `Partial` | Catalogue configuration. See [Configuration](#configuration). | -| `esClient` | `SearchClient` | Optional — bring your own ES/OS client. When omitted, one is created from `configs.esHost`, `configs.esUser`, and `configs.esPass`. | -| `getServerSideFilter` | `GetServerSideFilterFn` | Optional — callback invoked per request to inject a SQON filter for access control. See [Server-side filters](#server-side-filters). | -| `configsSource` | `string` | **Deprecated** — will be removed in v3.2. Pass `configs` directly instead. | +| Option | Type | Description | +| --------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `configs` | `Partial` | Catalogue configuration. See [Configuration](#configuration). | +| `esClient` | `SearchClient` | Optional — bring your own ES/OS client. When omitted, one is created from `configs.esHost`, `configs.esUser`, and `configs.esPass`. | +| `getServerSideFilter` | `GetServerSideFilterFn` | Optional — callback invoked per request to inject a SQON filter for access control. See [Server-side filters](#server-side-filters). | +| `configsSource` | `string` | **Deprecated** — will be removed in v3.2. Pass `configs` directly instead. | --- @@ -65,42 +65,45 @@ const router = await arrangerRouter(options); ### Search engine connection -| Property | Type | Default | Description | -|---|---|---|---| -| `esHost` | `string` | `'http://localhost:9200'` | OpenSearch or Elasticsearch node URL. | -| `esUser` | `string` | `''` | Basic auth username. | -| `esPass` | `string` | `''` | Basic auth password. | -| `searchEngine` | `'opensearch' \| 'elasticsearch'` | auto-detect | Client type. Leave unset to detect from the cluster version API on startup. | +| Property | Type | Default | Description | +| ------------------------- | --------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `esHost` | `string` | `'http://localhost:9200'` | OpenSearch or Elasticsearch node URL. | +| `esUser` | `string` | `''` | Basic auth username. | +| `esPass` | `string` | `''` | Basic auth password. | +| `searchEngine` | `'opensearch' \| 'elasticsearch'` | auto-detect | Client type. Leave unset to detect from the cluster version API on startup. | +| `searchEngineAuthType` | `string` | undefined | 'standard', 'AWS' or undefined. Used to specify authentication method for Search Engine configuration. | +| `searchEngineAuthRegion` | `string` | undefined | Used for authentication using AWS and OpenSearch. Specifies AWS region value. | +| `searchEngineAuthService` | `string` | undefined | 'es', 'aoss' or undefined. Used for authentication using AWS and OpenSearch. Specifies AWS service value. 'es' represents OpenSearch, 'aoss' represents OpenSearch Serverless. | ### Catalogue identity -| Property | Type | Description | -|---|---|---| -| `esIndex` | `string` | ES/OS index to query. Required. | +| Property | Type | Description | +| -------------- | -------- | ------------------------------------------------------------ | +| `esIndex` | `string` | ES/OS index to query. Required. | | `documentType` | `string` | GraphQL type name for documents in this catalogue. Required. | ### Feature flags -| Property | Type | Default | Description | -|---|---|---|---| -| `disableDownloads` | `boolean` | `false` | Disable the TSV/file download endpoint. | -| `disableFilters` | `boolean` | `false` | Disable SQON filter support on queries. | -| `enableSets` | `boolean` | `false` | Enable saved Sets. Sets are disabled by default; set to `true` to activate. | -| `disablePlayground` | `boolean` | `false` | Disable the GraphQL Playground UI. | +| Property | Type | Default | Description | +| ------------------- | --------- | ------- | --------------------------------------------------------------------------- | +| `disableDownloads` | `boolean` | `false` | Disable the TSV/file download endpoint. | +| `disableFilters` | `boolean` | `false` | Disable SQON filter support on queries. | +| `enableSets` | `boolean` | `false` | Enable saved Sets. Sets are disabled by default; set to `true` to activate. | +| `disablePlayground` | `boolean` | `false` | Disable the GraphQL Playground UI. | ### Table -| Property | Type | Default | Description | -|---|---|---|---| -| `table.maxResultsWindow` | `number` | `10000` | Maximum hits returnable per query (ES/OS default). | -| `table.rowIdFieldName` | `string` | `'id'` | ES field used as the row identifier in table results. | +| Property | Type | Default | Description | +| ------------------------ | -------- | ------- | ----------------------------------------------------- | +| `table.maxResultsWindow` | `number` | `10000` | Maximum hits returnable per query (ES/OS default). | +| `table.rowIdFieldName` | `string` | `'id'` | ES field used as the row identifier in table results. | ### Query limits -| Property | Type | Default | Description | -|---|---|---|---| +| Property | Type | Default | Description | +| ------------ | -------- | --------- | ---------------------------------- | | `maxAliases` | `number` | unlimited | Maximum aliases per GraphQL query. | -| `maxDepth` | `number` | unlimited | Maximum depth of a GraphQL query. | +| `maxDepth` | `number` | unlimited | Maximum depth of a GraphQL query. | --- @@ -110,37 +113,37 @@ A catalogue can federate aggregation queries across multiple remote Arranger nod ```ts const router = await arrangerRouter({ - configs: { - esHost: 'http://localhost:9200', - esIndex: 'file_centric', - documentType: 'File', - network: { - localNode: { - displayName: 'Local', - nodeId: 'local', - }, - remoteRequests: { - headers: ['Authorization'], // forwarded to all remote nodes by default - }, - remoteNodes: [ - { - displayName: 'Node A', - documentType: 'FileAggs', - graphqlUrl: 'http://node-a:5050/graphql', - nodeId: 'node-a', - requests: { - headers: ['Authorization'], // per-node override; merged with remoteRequests.headers - }, - }, - { - displayName: 'Node B', - documentType: 'FileAggs', - graphqlUrl: 'http://node-b:5050/graphql', - nodeId: 'node-b', - }, - ], - }, - }, + configs: { + esHost: 'http://localhost:9200', + esIndex: 'file_centric', + documentType: 'File', + network: { + localNode: { + displayName: 'Local', + nodeId: 'local', + }, + remoteRequests: { + headers: ['Authorization'], // forwarded to all remote nodes by default + }, + remoteNodes: [ + { + displayName: 'Node A', + documentType: 'FileAggs', + graphqlUrl: 'http://node-a:5050/graphql', + nodeId: 'node-a', + requests: { + headers: ['Authorization'], // per-node override; merged with remoteRequests.headers + }, + }, + { + displayName: 'Node B', + documentType: 'FileAggs', + graphqlUrl: 'http://node-b:5050/graphql', + nodeId: 'node-b', + }, + ], + }, + }, }); ``` @@ -148,15 +151,15 @@ When using `apps/search-server`, this config lives in `network.json` inside the #### Network config fields -| Field | Description | -|---|---| -| `localNode.displayName` | Human-readable label for this node's results in aggregation responses. | -| `localNode.nodeId` | Stable identifier for this node, used when filtering results by node. | -| `remoteRequests.headers` | Header names to forward from the incoming request to **all** remote nodes. | -| `remoteNodes[].graphqlUrl` | GraphQL endpoint URL of the remote Arranger instance. | -| `remoteNodes[].documentType` | Aggregation type name on the remote node. | -| `remoteNodes[].displayName` | Human-readable label for this remote node's results. | -| `remoteNodes[].nodeId` | Stable identifier for this node, used when filtering results by node. | +| Field | Description | +| -------------------------------- | ---------------------------------------------------------------------------------------------- | +| `localNode.displayName` | Human-readable label for this node's results in aggregation responses. | +| `localNode.nodeId` | Stable identifier for this node, used when filtering results by node. | +| `remoteRequests.headers` | Header names to forward from the incoming request to **all** remote nodes. | +| `remoteNodes[].graphqlUrl` | GraphQL endpoint URL of the remote Arranger instance. | +| `remoteNodes[].documentType` | Aggregation type name on the remote node. | +| `remoteNodes[].displayName` | Human-readable label for this remote node's results. | +| `remoteNodes[].nodeId` | Stable identifier for this node, used when filtering results by node. | | `remoteNodes[].requests.headers` | Header names to forward to this specific node. Takes precedence over `remoteRequests.headers`. | All nodes must serve overlapping index field names. Fields with the same name and GraphQL type are merged across nodes; fields unique to one node are excluded from federation. @@ -172,15 +175,13 @@ import arrangerRouter from '@overture-stack/arranger-graphql-router'; import type { GetServerSideFilterFn } from '@overture-stack/arranger-types/configs'; const getServerSideFilter: GetServerSideFilterFn = (context) => { - const userId = context.req.headers['x-user-id']; - if (!userId) return null; - - return { - op: 'and', - content: [ - { op: 'in', content: { field: 'acl', value: [String(userId)] } }, - ], - }; + const userId = context.req.headers['x-user-id']; + if (!userId) return null; + + return { + op: 'and', + content: [{ op: 'in', content: { field: 'acl', value: [String(userId)] } }], + }; }; const router = await arrangerRouter({ configs, getServerSideFilter }); @@ -202,10 +203,10 @@ Creates an OpenSearch or Elasticsearch client: import { buildSearchClient } from '@overture-stack/arranger-graphql-router'; const client = await buildSearchClient({ - client: 'opensearch', // 'elasticsearch', or omit to auto-detect - node: 'http://localhost:9200', - username: 'elastic', - password: 'secret', + client: 'opensearch', // 'elasticsearch', or omit to auto-detect + node: 'http://localhost:9200', + username: 'elastic', + password: 'secret', }); ``` @@ -227,7 +228,7 @@ import type { SearchClient, SupportedClientTypes } from '@overture-stack/arrange ### Sub-path exports -| Import path | Contents | -|---|---| -| `@overture-stack/arranger-graphql-router/utils` | Internal utilities (`ajax`, `runGraphQLQuery`). Not part of the stable API. | -| `@overture-stack/arranger-graphql-router/download` | Download route helpers. Consumed internally by `arrangerRouter`. | +| Import path | Contents | +| -------------------------------------------------- | --------------------------------------------------------------------------- | +| `@overture-stack/arranger-graphql-router/utils` | Internal utilities (`ajax`, `runGraphQLQuery`). Not part of the stable API. | +| `@overture-stack/arranger-graphql-router/download` | Download route helpers. Consumed internally by `arrangerRouter`. | From 897442d8b2fe0acd389003dcf46551736c2c99d9 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Tue, 7 Jul 2026 17:02:58 -0400 Subject: [PATCH 14/21] Change key name to clientType, removed unused import --- modules/graphql-router/src/router.ts | 2 +- modules/graphql-router/src/searchClient/index.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/graphql-router/src/router.ts b/modules/graphql-router/src/router.ts index 17c2f8f77..2f92fac10 100644 --- a/modules/graphql-router/src/router.ts +++ b/modules/graphql-router/src/router.ts @@ -76,7 +76,7 @@ const arrangerRouter = async ({ const esClient = customEsClient || (await buildSearchClient({ - client: searchEngine, + clientType: searchEngine, node: esHost, auth: { password: esPass, diff --git a/modules/graphql-router/src/searchClient/index.ts b/modules/graphql-router/src/searchClient/index.ts index 990baf3ad..6750bc99f 100644 --- a/modules/graphql-router/src/searchClient/index.ts +++ b/modules/graphql-router/src/searchClient/index.ts @@ -1,5 +1,4 @@ import { AwsSigv4Signer } from '@opensearch-project/opensearch/aws'; -import type { Prettify } from '@overture-stack/arranger-types/tools'; import { createElasticSearchClient, type ESClientOptions } from './createElasticSearchClient.js'; import { createOpenSearchClient, type OSClientOptions } from './createOpenSearchClient.js'; From 439d760a252b62ba560caafd038620403755629f Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Wed, 8 Jul 2026 10:44:52 -0400 Subject: [PATCH 15/21] Reinstall, Remove AWS SDK --- package-lock.json | 415 ---------------------------------------------- 1 file changed, 415 deletions(-) diff --git a/package-lock.json b/package-lock.json index 343901369..514aface2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -78,7 +78,6 @@ "name": "@overture-stack/arranger-search-server", "version": "0.0.0-dev", "dependencies": { - "@aws-sdk/credential-provider-node": "^3.972.60", "@overture-stack/arranger-graphql-router": "file:../../modules/graphql-router", "@overture-stack/arranger-types": "file:../../modules/types", "@overture-stack/sqon": "file:../../modules/sqon", @@ -425,35 +424,6 @@ "typescript-transform-paths": "^3.5.6" } }, - "modules/sqon/node_modules/postcss": { - "version": "8.5.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", - "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", - "extraneous": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "modules/sqon/node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -636,35 +606,6 @@ "typescript-transform-paths": "^3.5.6" } }, - "modules/types/node_modules/postcss": { - "version": "8.5.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", - "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", - "extraneous": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "modules/types/node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -1002,265 +943,6 @@ "xss": "^1.0.8" } }, - "node_modules/@aws-sdk/core": { - "version": "3.974.26", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.26.tgz", - "integrity": "sha512-wRj7Pthvjk3anees97pUWlxlTa0DUjeGrEQU5fKDZVdWZV0ekaprbof0df2uaE9g8u67t035v2j+ne2AW2UMkA==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "^3.973.15", - "@aws-sdk/xml-builder": "^3.972.33", - "@aws/lambda-invoke-store": "^0.2.2", - "@smithy/core": "^3.29.0", - "@smithy/signature-v4": "^5.6.1", - "@smithy/types": "^4.15.1", - "bowser": "^2.11.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/core/node_modules/bowser": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", - "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", - "license": "MIT" - }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.52", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.52.tgz", - "integrity": "sha512-sxuaHZGHqOgKB8OdL3doXa1NJjqmO60FPfyTnYVKGjX9taRsIEGS9pd+2yALmo06hijZ8L94uSK0kfXZsRmVyA==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.974.26", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.54", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.54.tgz", - "integrity": "sha512-e6yz52nq3SpR1oPLcvfsDM7H7k2gIYk/NSn/rwsFqzGXEwr3g0mRMlPbLaKCPCGNZJMU/gZg6/64B3eSam+gBw==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.974.26", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/fetch-http-handler": "^5.6.2", - "@smithy/node-http-handler": "^4.9.2", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.972.59", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.59.tgz", - "integrity": "sha512-9Um/UpruN76AdpiLnvwChVkJJwJ9Vx9ykk/2AeLxxSCM/YYRD8Kkq2towUk9fZQLV7dd9ATlsi87U7hKs0z/iQ==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.974.26", - "@aws-sdk/credential-provider-env": "^3.972.52", - "@aws-sdk/credential-provider-http": "^3.972.54", - "@aws-sdk/credential-provider-login": "^3.972.58", - "@aws-sdk/credential-provider-process": "^3.972.52", - "@aws-sdk/credential-provider-sso": "^3.972.58", - "@aws-sdk/credential-provider-web-identity": "^3.972.58", - "@aws-sdk/nested-clients": "^3.997.26", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/credential-provider-imds": "^4.4.5", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.58", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.58.tgz", - "integrity": "sha512-H3q96qF8/DJsPsXMVtMRqSWOc85K5O4zos32untdw+vE5vw0f3a6qJo1YqbND4BsEIKd4iZmzzVUq9kV4LjbHg==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.974.26", - "@aws-sdk/nested-clients": "^3.997.26", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.61", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.61.tgz", - "integrity": "sha512-2U2KHMRCt1dlZoLU3KZR5g5EL4b0h2HHw96SkaUBK7qvEXPZj5rGRO/3ZTeJmh37dIYQuCnA2273rZOQvmsiHw==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.52", - "@aws-sdk/credential-provider-http": "^3.972.54", - "@aws-sdk/credential-provider-ini": "^3.972.59", - "@aws-sdk/credential-provider-process": "^3.972.52", - "@aws-sdk/credential-provider-sso": "^3.972.58", - "@aws-sdk/credential-provider-web-identity": "^3.972.58", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/credential-provider-imds": "^4.4.5", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.52", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.52.tgz", - "integrity": "sha512-Aff9Ebs42lz+Ep1wkS+Nlwh5S0eahakpyskPsuKGjiBJ6ExOjNtxbfKJTKovQtQNgJ7oG1BH6esJwGrbs7qgSA==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.974.26", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.972.58", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.58.tgz", - "integrity": "sha512-syloC58mXOacUqM2toPNfwd7X3jT+tWj0F/cN7qdW1FQyI0q41J0tPf6DIZ56BF0x82iS9j3ALP45MoBz79YuQ==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.974.26", - "@aws-sdk/nested-clients": "^3.997.26", - "@aws-sdk/token-providers": "3.1078.0", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.58", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.58.tgz", - "integrity": "sha512-pTBImKzcGK+pcMKjL0fAJbnYzzYd1c0UDc7BSIOGNQhF9Nuk66vWlIXfYTYyzNSs+w8Q/vfbbNDDU8zdrouwLg==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.974.26", - "@aws-sdk/nested-clients": "^3.997.26", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/nested-clients": { - "version": "3.997.26", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.26.tgz", - "integrity": "sha512-Lwe3F6K7bs+jEubp1LbrvzeMBYb5fMazJ1IxV9TtKWPF8CSh67Fmwyq9fLz3NL/k55Dfpuph5Dimw76JFgr+SA==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.974.26", - "@aws-sdk/signature-v4-multi-region": "^3.996.38", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/fetch-http-handler": "^5.6.2", - "@smithy/node-http-handler": "^4.9.2", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.996.38", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.38.tgz", - "integrity": "sha512-C379Sk+MiFZCfWZphKlMyLHKxV22OjoGM5KJjj5IJNJcOCWL4IGIpnEGzv1FQiRwhYXfq55SJMfxlqPE08JJ9g==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "^3.973.15", - "@smithy/signature-v4": "^5.6.1", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.1078.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1078.0.tgz", - "integrity": "sha512-/uyXLBGu3Lw1GbBA2X66hcOMnKtMcqAIF+3/eHfxBQmUeXF2sdqozDPrTfEr/TnSd0D6deZar+eVyhEqqWu29w==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.974.26", - "@aws-sdk/nested-clients": "^3.997.26", - "@aws-sdk/types": "^3.973.15", - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/types": { - "version": "3.973.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.15.tgz", - "integrity": "sha512-IULn8uBV/SMtmOIANsm4WHXIOtVPBWfOWs3WGL0j/sI+KhaYehvOw0ET+9urnn8MBpiijuU/0JOpuwKOE451PQ==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws-sdk/xml-builder": { - "version": "3.972.33", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.33.tgz", - "integrity": "sha512-ezbwz9WpuLctm6o7P2t2naDhVVPI5jFGrVefVybhcKGjU57VIyT46pQVO0RI2RYkUdhdj2Z9uSIlAzGZE9NW9A==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@aws/lambda-invoke-store": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.4.tgz", - "integrity": "sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/@babel/cli": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.29.7.tgz", @@ -6938,87 +6620,6 @@ "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@smithy/core": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.29.0.tgz", - "integrity": "sha512-sEvpvkBVoMxjoek35XyJFn2ZD3EJ1RpiZrT47WaZodxzAIWS44zkdvbqGE/ZlugtjiQp62cffYZ9ldyRkjAGnA==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/credential-provider-imds": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.4.5.tgz", - "integrity": "sha512-LnjUTNG0GgQlKIq7IioeOrPaEmC5xOd1WtAz24TLSiYQnWX2uHr53GrFuQhkrJBktPYCMga/NbUOW7hFbSA2Cg==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/fetch-http-handler": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.6.2.tgz", - "integrity": "sha512-q96PSDOAGw+X+nuELd7Cjebps0SYr+YlPbviEX9sLVw+VM4M7VV8hn1nL1mGS6urDu33eQ5A7WhlphaDO6kUyQ==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/node-http-handler": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.2.tgz", - "integrity": "sha512-s0yAIRj6TVfHgl+QzVyqal1KMGZ9B5512IrxKc6+dOpw8fUmFL3CvuAhjv0J+aNjUPfVZ2IhqPEDvkB5Ncx9oA==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/signature-v4": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.6.1.tgz", - "integrity": "sha512-SqvuP75p/DmgWWI7jv4kf/UW+V4LFmlUn19s604SgAcRuJRB1vDnWwzZMYCLUcmKxko9wDn6iLgGEIpTNgZbIQ==", - "license": "Apache-2.0", - "dependencies": { - "@smithy/core": "^3.29.0", - "@smithy/types": "^4.15.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@smithy/types": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.15.1.tgz", - "integrity": "sha512-x3L0XSACF6UYzKpa9biqiRMgvH5+wnFFew9Tm/grFYqgaupPwx/+ojDPpPJM8dZON3S9tjz5U+PQYsCBd1Mw5Q==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/@storybook/addon-actions": { "version": "3.4.12", "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-3.4.12.tgz", @@ -36488,22 +36089,6 @@ "dev": true, "license": "ISC" }, - "node_modules/yaml": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", - "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", - "extraneous": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", From 5fa7b182750bcb88f0ab693847a023ad08b6b03d Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Wed, 8 Jul 2026 14:06:36 -0400 Subject: [PATCH 16/21] Use StandardAuth config definition --- .../searchClient/createElasticSearchClient.ts | 4 +-- .../searchClient/createOpenSearchClient.ts | 4 +-- .../graphql-router/src/searchClient/types.ts | 28 ++++++++----------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/modules/graphql-router/src/searchClient/createElasticSearchClient.ts b/modules/graphql-router/src/searchClient/createElasticSearchClient.ts index 81f8af97c..c62f52c15 100644 --- a/modules/graphql-router/src/searchClient/createElasticSearchClient.ts +++ b/modules/graphql-router/src/searchClient/createElasticSearchClient.ts @@ -1,7 +1,7 @@ import { Client } from '@elastic/elasticsearch'; import type { - DefaultAuthConfig, + StandardAuthConfig, SearchClient, SearchClientAcknowledgedResponseBody, SearchClientBulkResponseBody, @@ -18,7 +18,7 @@ import type { export type ESClientOptions = SearchConfigWithClient & { clientType: 'elasticsearch'; - auth?: DefaultAuthConfig | undefined; + auth?: StandardAuthConfig | undefined; }; export function createElasticSearchClient(options: ESClientOptions): SearchClient { diff --git a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts index 349ca01c7..9b83b7ce0 100644 --- a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts +++ b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts @@ -1,10 +1,10 @@ import { Client } from '@opensearch-project/opensearch'; -import type { SearchClient, SearchConfigWithClient, DefaultAuthConfig, AWSAuthConfig } from './types.js'; +import type { SearchClient, SearchConfigWithClient, StandardAuthConfig, AWSAuthConfig } from './types.js'; export type OSClientOptions = SearchConfigWithClient & { clientType: 'opensearch'; - auth?: DefaultAuthConfig | AWSAuthConfig; + auth?: StandardAuthConfig | AWSAuthConfig; }; export function createOpenSearchClient(options: OSClientOptions): SearchClient { diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 5ae64ef0a..02a81e83c 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -1,6 +1,5 @@ import type { Client as ElasticClient } from '@elastic/elasticsearch'; import type { Client as OpenSearchClient } from '@opensearch-project/opensearch'; -import type { AuthTypes } from '@overture-stack/arranger-types/configs'; import type { Prettify } from '@overture-stack/arranger-types/tools'; import { type ESClientOptions } from './createElasticSearchClient.js'; @@ -12,26 +11,23 @@ export type SupportedClients = { opensearch: OpenSearchClient; }; export type SupportedClientTypes = keyof SupportedClients; -export type BaseAuthConfig = { + +export type StandardAuthConfig = { password: string; - type?: AuthTypes; username: string; + type: 'standard'; +}; + +export type AWSAuthConfig = { + password: string; + username: string; + type: 'AWS'; + region: string; + service?: 'es' | 'aoss'; }; -export type DefaultAuthConfig = Prettify< - BaseAuthConfig & { - type: 'standard'; - } ->; -export type AWSAuthConfig = Prettify< - BaseAuthConfig & { - type: 'AWS'; - region: string; - service?: 'es' | 'aoss'; - } ->; export type SearchConfig = { - auth?: Partial | Partial; + auth?: Partial | Partial; node: string; clientType?: string; }; From 94db9a741182baca2cfa6744808287a08092e336 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Wed, 8 Jul 2026 15:12:38 -0400 Subject: [PATCH 17/21] Use Type aliases --- modules/graphql-router/src/searchClient/types.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 02a81e83c..3fb015ad4 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -18,12 +18,16 @@ export type StandardAuthConfig = { type: 'standard'; }; +type AWS_SERVICE_OPENSEARCH = 'es'; +type AWS_SERVICE_OPENSEARCH_SERVERLESS = 'aoss'; +type AwsService = AWS_SERVICE_OPENSEARCH | AWS_SERVICE_OPENSEARCH_SERVERLESS; + export type AWSAuthConfig = { password: string; username: string; type: 'AWS'; region: string; - service?: 'es' | 'aoss'; + service?: AwsService; }; export type SearchConfig = { From 739358958068737f9f42b210c2ae2b03ba441906 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Wed, 8 Jul 2026 15:13:43 -0400 Subject: [PATCH 18/21] Lowercase Aws names --- modules/graphql-router/src/searchClient/types.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 3fb015ad4..05b6676b9 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -22,7 +22,7 @@ type AWS_SERVICE_OPENSEARCH = 'es'; type AWS_SERVICE_OPENSEARCH_SERVERLESS = 'aoss'; type AwsService = AWS_SERVICE_OPENSEARCH | AWS_SERVICE_OPENSEARCH_SERVERLESS; -export type AWSAuthConfig = { +export type AwsAuthConfig = { password: string; username: string; type: 'AWS'; @@ -31,7 +31,7 @@ export type AWSAuthConfig = { }; export type SearchConfig = { - auth?: Partial | Partial; + auth?: Partial | Partial; node: string; clientType?: string; }; From e39af2a0f71cac07e404ad31fd78c258add5b731 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Wed, 8 Jul 2026 15:17:00 -0400 Subject: [PATCH 19/21] Revert enableDebugging coercion --- modules/graphql-router/src/router.ts | 2 +- modules/graphql-router/src/searchClient/fetchMapping.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/graphql-router/src/router.ts b/modules/graphql-router/src/router.ts index 2f92fac10..5efea5c5e 100644 --- a/modules/graphql-router/src/router.ts +++ b/modules/graphql-router/src/router.ts @@ -93,7 +93,7 @@ const arrangerRouter = async ({ ); const mappingFromIndex = await getIndexMapping({ - enableDebug: !!enableDebug, + enableDebug, searchClient: esClient, esIndex: configs[configRootProperties.ES_INDEX], }); diff --git a/modules/graphql-router/src/searchClient/fetchMapping.ts b/modules/graphql-router/src/searchClient/fetchMapping.ts index 6ac68541f..9756ec141 100644 --- a/modules/graphql-router/src/searchClient/fetchMapping.ts +++ b/modules/graphql-router/src/searchClient/fetchMapping.ts @@ -116,7 +116,7 @@ export const getIndexMapping = async ({ searchClient, esIndex, }: { - enableDebug: boolean; + enableDebug?: boolean; searchClient: SearchClient; esIndex: string; }) => { From 7f995d32fad77f8c50953850c9d1f16c7cff5afc Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Wed, 8 Jul 2026 15:19:13 -0400 Subject: [PATCH 20/21] Additional Capitalize Changes --- .../graphql-router/src/searchClient/createOpenSearchClient.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts index 9b83b7ce0..29abce6e1 100644 --- a/modules/graphql-router/src/searchClient/createOpenSearchClient.ts +++ b/modules/graphql-router/src/searchClient/createOpenSearchClient.ts @@ -1,10 +1,10 @@ import { Client } from '@opensearch-project/opensearch'; -import type { SearchClient, SearchConfigWithClient, StandardAuthConfig, AWSAuthConfig } from './types.js'; +import type { SearchClient, SearchConfigWithClient, StandardAuthConfig, AwsAuthConfig } from './types.js'; export type OSClientOptions = SearchConfigWithClient & { clientType: 'opensearch'; - auth?: StandardAuthConfig | AWSAuthConfig; + auth?: StandardAuthConfig | AwsAuthConfig; }; export function createOpenSearchClient(options: OSClientOptions): SearchClient { From b97e8f28418d936ae43eca0b687fd060f8999f08 Mon Sep 17 00:00:00 2001 From: Dan DeMaria Date: Wed, 8 Jul 2026 15:52:38 -0400 Subject: [PATCH 21/21] Standard Refresh type --- modules/graphql-router/src/searchClient/types.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/graphql-router/src/searchClient/types.ts b/modules/graphql-router/src/searchClient/types.ts index 05b6676b9..ce932290a 100644 --- a/modules/graphql-router/src/searchClient/types.ts +++ b/modules/graphql-router/src/searchClient/types.ts @@ -68,13 +68,14 @@ export type SearchClientIndicesOpenParams = { index: string | string[] }; export type SearchClientIndicesPutMappingsParams = { index: string; body: Record }; export type SearchClientIndicesPutSettingsParams = { body: Record }; export type SearchClientBulkParams = { body: Record[] }; +export type ClientParamRefreshValues = boolean | 'wait_for'; export type SearchClientCreateParams = { id: string; index: string; body: Record; - refresh?: boolean | 'wait_for'; + refresh?: ClientParamRefreshValues; }; -export type SearchClientDeleteParams = { index: string; id: string; refresh?: boolean | 'wait_for' }; +export type SearchClientDeleteParams = { index: string; id: string; refresh?: ClientParamRefreshValues }; export type SearchClientDeleteByQueryParams = { index: string; body: Record }; export type SearchClientIndexParams = { index: string; body: Record }; export type SearchClientUpdateParams = { id: string; index: string; body: Record };