diff --git a/.github/workflows/merge-to-main.yml b/.github/workflows/merge-to-main.yml index d31c50e..ab70f9a 100644 --- a/.github/workflows/merge-to-main.yml +++ b/.github/workflows/merge-to-main.yml @@ -29,60 +29,68 @@ jobs: - uses: apollosolutions/rover-actions/install-rover-cli@v1 - name: Publish checkout schema - working-directory: ./subgraphs/checkout - run: | - rover subgraph publish apollo-retail-supergraph@prod \ - --name checkout \ - --schema schema.graphql + uses: apollosolutions/rover-actions/subgraph-publish@v1 + with: + apollo-key: ${{ secrets.APOLLO_KEY }} + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} + name: checkout + schema: ./subgraphs/checkout/schema.graphql - name: Publish discovery schema - working-directory: ./subgraphs/discovery - run: | - rover subgraph publish apollo-retail-supergraph@prod \ - --name discovery \ - --schema schema.graphql + uses: apollosolutions/rover-actions/subgraph-publish@v1 + with: + apollo-key: ${{ secrets.APOLLO_KEY }} + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} + name: discovery + schema: ./subgraphs/discovery/schema.graphql - name: Publish inventory schema - working-directory: ./subgraphs/inventory - run: | - rover subgraph publish apollo-retail-supergraph@prod \ - --name inventory \ - --schema schema.graphql + uses: apollosolutions/rover-actions/subgraph-publish@v1 + with: + apollo-key: ${{ secrets.APOLLO_KEY }} + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} + name: inventory + schema: ./subgraphs/inventory/schema.graphql - name: Publish orders schema - working-directory: ./subgraphs/orders - run: | - rover subgraph publish apollo-retail-supergraph@prod \ - --name orders \ - --schema schema.graphql + uses: apollosolutions/rover-actions/subgraph-publish@v1 + with: + apollo-key: ${{ secrets.APOLLO_KEY }} + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} + name: orders + schema: ./subgraphs/orders/schema.graphql - name: Publish products schema - working-directory: ./subgraphs/products - run: | - rover subgraph publish apollo-retail-supergraph@prod \ - --name products \ - --schema schema.graphql + uses: apollosolutions/rover-actions/subgraph-publish@v1 + with: + apollo-key: ${{ secrets.APOLLO_KEY }} + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} + name: products + schema: ./subgraphs/products/schema.graphql - name: Publish reviews schema - working-directory: ./subgraphs/reviews - run: | - rover subgraph publish apollo-retail-supergraph@prod \ - --name reviews \ - --schema schema.graphql + uses: apollosolutions/rover-actions/subgraph-publish@v1 + with: + apollo-key: ${{ secrets.APOLLO_KEY }} + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} + name: reviews + schema: ./subgraphs/reviews/schema.graphql - name: Publish shipping schema - working-directory: ./subgraphs/shipping - run: | - rover subgraph publish apollo-retail-supergraph@prod \ - --name shipping \ - --schema schema.graphql + uses: apollosolutions/rover-actions/subgraph-publish@v1 + with: + apollo-key: ${{ secrets.APOLLO_KEY }} + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} + name: shipping + schema: ./subgraphs/shipping/schema.graphql - name: Publish users schema - working-directory: ./subgraphs/users - run: | - rover subgraph publish apollo-retail-supergraph@prod \ - --name users \ - --schema schema.graphql + uses: apollosolutions/rover-actions/subgraph-publish@v1 + with: + apollo-key: ${{ secrets.APOLLO_KEY }} + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} + name: users + schema: ./subgraphs/users/schema.graphql publish-README: runs-on: ubuntu-latest @@ -92,4 +100,4 @@ jobs: - uses: apollosolutions/rover-actions/install-rover-cli@v1 - name: Publish README - run: rover readme publish apollo-retail-supergraph@prod --file README.md + run: rover readme publish ${{ vars.APOLLO_GRAPH_REF }} --file README.md diff --git a/.github/workflows/pr-check-code.yml b/.github/workflows/pr-check-code.yml index 7f64774..08d4aa0 100644 --- a/.github/workflows/pr-check-code.yml +++ b/.github/workflows/pr-check-code.yml @@ -36,7 +36,7 @@ jobs: uses: apollosolutions/rover-actions/subgraph-check@v1 with: apollo-key: ${{ secrets.APOLLO_KEY }} - graph-ref: apollo-retail-supergraph@prod + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} name: checkout schema: ./subgraphs/checkout/schema.graphql @@ -44,7 +44,7 @@ jobs: uses: apollosolutions/rover-actions/subgraph-check@v1 with: apollo-key: ${{ secrets.APOLLO_KEY }} - graph-ref: apollo-retail-supergraph@prod + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} name: discovery schema: ./subgraphs/discovery/schema.graphql @@ -52,7 +52,7 @@ jobs: uses: apollosolutions/rover-actions/subgraph-check@v1 with: apollo-key: ${{ secrets.APOLLO_KEY }} - graph-ref: apollo-retail-supergraph@prod + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} name: inventory schema: ./subgraphs/inventory/schema.graphql @@ -60,7 +60,7 @@ jobs: uses: apollosolutions/rover-actions/subgraph-check@v1 with: apollo-key: ${{ secrets.APOLLO_KEY }} - graph-ref: apollo-retail-supergraph@prod + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} name: orders schema: ./subgraphs/orders/schema.graphql @@ -68,7 +68,7 @@ jobs: uses: apollosolutions/rover-actions/subgraph-check@v1 with: apollo-key: ${{ secrets.APOLLO_KEY }} - graph-ref: apollo-retail-supergraph@prod + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} name: products schema: ./subgraphs/products/schema.graphql @@ -76,7 +76,7 @@ jobs: uses: apollosolutions/rover-actions/subgraph-check@v1 with: apollo-key: ${{ secrets.APOLLO_KEY }} - graph-ref: apollo-retail-supergraph@prod + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} name: reviews schema: ./subgraphs/reviews/schema.graphql @@ -84,7 +84,7 @@ jobs: uses: apollosolutions/rover-actions/subgraph-check@v1 with: apollo-key: ${{ secrets.APOLLO_KEY }} - graph-ref: apollo-retail-supergraph@prod + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} name: shipping schema: ./subgraphs/shipping/schema.graphql @@ -92,7 +92,7 @@ jobs: uses: apollosolutions/rover-actions/subgraph-check@v1 with: apollo-key: ${{ secrets.APOLLO_KEY }} - graph-ref: apollo-retail-supergraph@prod + graph-ref: ${{ vars.APOLLO_GRAPH_REF }} name: users schema: ./subgraphs/users/schema.graphql diff --git a/package-lock.json b/package-lock.json index a050723..750f7b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,17 +7,17 @@ "name": "@apollosolutions/retail-supergraph", "license": "MIT", "dependencies": { - "@apollo/server": "^4.9.5", - "@apollo/subgraph": "^2.5.6", + "@apollo/server": "^4.10.4", + "@apollo/subgraph": "^2.8.1", "body-parser": "^1.20.2", "cors": "^2.8.5", - "express": "^4.18.2", - "graphql": "^16.8.1", + "express": "^4.19.2", + "graphql": "^16.9.0", "uuid": "^9.0.1" }, "devDependencies": { - "nodemon": "^2.0.22", - "typescript": "^5.0.4" + "nodemon": "^3.1.4", + "typescript": "^5.5.2" } }, "gateway": { @@ -31,6 +31,23 @@ "graphql": "14.x || 15.x || 16.x" } }, + "node_modules/@apollo/federation-internals": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@apollo/federation-internals/-/federation-internals-2.8.1.tgz", + "integrity": "sha512-UiWHNfZFESaYgR/STuyx9yzyFSmnpQkVWRBTMjsX6GN3fwbDZ0BHqn2ql2Lx+Jv6ezcdEYS6u6h3fcXNsVmMQw==", + "dependencies": { + "@types/uuid": "^9.0.0", + "chalk": "^4.1.0", + "js-levenshtein": "^1.1.6", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "graphql": "^16.5.0" + } + }, "node_modules/@apollo/protobufjs": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", @@ -56,9 +73,9 @@ } }, "node_modules/@apollo/server": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@apollo/server/-/server-4.9.5.tgz", - "integrity": "sha512-eDBfArYbZaTm1AGa82M1aL7lOscVhnZsH85+OWmHMIR98qntzEjNpWpQPYDTru63Qxs4kHcY29NUx/kMGZfGEA==", + "version": "4.10.4", + "resolved": "https://registry.npmjs.org/@apollo/server/-/server-4.10.4.tgz", + "integrity": "sha512-HS12CUa1wq8f5zKXOKJRwRdESFp4por9AINecpcsEUV9jsCP/NqPILgx0hCOOFJuKxmnaL7070xO6l5xmOq4Fw==", "dependencies": { "@apollo/cache-control-types": "^1.0.3", "@apollo/server-gateway-interface": "^1.1.1", @@ -76,7 +93,6 @@ "@types/express-serve-static-core": "^4.17.30", "@types/node-fetch": "^2.6.1", "async-retry": "^1.2.1", - "body-parser": "^1.20.0", "cors": "^2.8.5", "express": "^4.17.1", "loglevel": "^1.6.8", @@ -133,29 +149,12 @@ } }, "node_modules/@apollo/subgraph": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@apollo/subgraph/-/subgraph-2.5.6.tgz", - "integrity": "sha512-Swn0+M32Xr7HHippE0zJU/1vfCZDfM86Yir199jdUEYH4/9tqmx+OSq3QSCaSwiPJnzJlGgVmZhDCcqG90pDUA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@apollo/subgraph/-/subgraph-2.8.1.tgz", + "integrity": "sha512-zzYTjup7UEej4jLzPkARCm34yhZTP2PJBRYOkBtOsOdnYiZSjDkPcro2UnT68bLTCMg+Bvp6kPNPv5jZZACAaQ==", "dependencies": { "@apollo/cache-control-types": "^1.0.2", - "@apollo/federation-internals": "2.5.6" - }, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "graphql": "^16.5.0" - } - }, - "node_modules/@apollo/subgraph/node_modules/@apollo/federation-internals": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@apollo/federation-internals/-/federation-internals-2.5.6.tgz", - "integrity": "sha512-ZNJdEcWfKXlFDRYtoCftApQBJl1/aDUBnBfFJeXeTXW4FVhyGotVkWbJUIBlCHMISGmQQDNfRay9Dcp7uIda9A==", - "dependencies": { - "@types/uuid": "^9.0.0", - "chalk": "^4.1.0", - "js-levenshtein": "^1.1.6", - "uuid": "^9.0.0" + "@apollo/federation-internals": "2.8.1" }, "engines": { "node": ">=14.15.0" @@ -444,9 +443,9 @@ } }, "node_modules/@types/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==" + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" }, "node_modules/abbrev": { "version": "1.1.1", @@ -542,11 +541,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -662,8 +662,9 @@ } }, "node_modules/cookie": { - "version": "0.5.0", - "license": "MIT", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "engines": { "node": ">= 0.6" } @@ -756,15 +757,16 @@ } }, "node_modules/express": { - "version": "4.18.2", - "license": "MIT", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -795,47 +797,11 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/fill-range": { - "version": "7.0.1", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -926,9 +892,9 @@ } }, "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -1034,8 +1000,9 @@ }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -1156,18 +1123,18 @@ } }, "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz", + "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==", "dev": true, "dependencies": { "chokidar": "^3.5.2", - "debug": "^3.2.7", + "debug": "^4", "ignore-by-default": "^1.0.1", "minimatch": "^3.1.2", "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.5" @@ -1176,7 +1143,7 @@ "nodemon": "bin/nodemon.js" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" }, "funding": { "type": "opencollective", @@ -1193,11 +1160,20 @@ } }, "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/nodemon/node_modules/has-flag": { @@ -1220,17 +1196,10 @@ } }, "node_modules/nodemon/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/nodemon/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/nodemon/node_modules/supports-color": { "version": "5.5.0", @@ -1398,6 +1367,18 @@ "version": "2.1.2", "license": "MIT" }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/send": { "version": "0.18.0", "license": "MIT", @@ -1465,22 +1446,15 @@ } }, "node_modules/simple-update-notifier": { - "version": "1.0.7", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, - "license": "MIT", "dependencies": { - "semver": "~7.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">=10" } }, "node_modules/statuses": { @@ -1503,8 +1477,9 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -1550,16 +1525,16 @@ } }, "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", + "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, "node_modules/undefsafe": { @@ -1658,6 +1633,17 @@ "integrity": "sha512-F17/vCp7QVwom9eG7ToauIKdAxpSoadsJnqIfyryLFSkLSOEqu+eC5Z3N8OXcUVStuOMcNHlyraRsA6rRICu4g==", "requires": {} }, + "@apollo/federation-internals": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@apollo/federation-internals/-/federation-internals-2.8.1.tgz", + "integrity": "sha512-UiWHNfZFESaYgR/STuyx9yzyFSmnpQkVWRBTMjsX6GN3fwbDZ0BHqn2ql2Lx+Jv6ezcdEYS6u6h3fcXNsVmMQw==", + "requires": { + "@types/uuid": "^9.0.0", + "chalk": "^4.1.0", + "js-levenshtein": "^1.1.6", + "uuid": "^9.0.0" + } + }, "@apollo/protobufjs": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", @@ -1678,9 +1664,9 @@ } }, "@apollo/server": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@apollo/server/-/server-4.9.5.tgz", - "integrity": "sha512-eDBfArYbZaTm1AGa82M1aL7lOscVhnZsH85+OWmHMIR98qntzEjNpWpQPYDTru63Qxs4kHcY29NUx/kMGZfGEA==", + "version": "4.10.4", + "resolved": "https://registry.npmjs.org/@apollo/server/-/server-4.10.4.tgz", + "integrity": "sha512-HS12CUa1wq8f5zKXOKJRwRdESFp4por9AINecpcsEUV9jsCP/NqPILgx0hCOOFJuKxmnaL7070xO6l5xmOq4Fw==", "requires": { "@apollo/cache-control-types": "^1.0.3", "@apollo/server-gateway-interface": "^1.1.1", @@ -1698,7 +1684,6 @@ "@types/express-serve-static-core": "^4.17.30", "@types/node-fetch": "^2.6.1", "async-retry": "^1.2.1", - "body-parser": "^1.20.0", "cors": "^2.8.5", "express": "^4.17.1", "loglevel": "^1.6.8", @@ -1740,25 +1725,12 @@ } }, "@apollo/subgraph": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@apollo/subgraph/-/subgraph-2.5.6.tgz", - "integrity": "sha512-Swn0+M32Xr7HHippE0zJU/1vfCZDfM86Yir199jdUEYH4/9tqmx+OSq3QSCaSwiPJnzJlGgVmZhDCcqG90pDUA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@apollo/subgraph/-/subgraph-2.8.1.tgz", + "integrity": "sha512-zzYTjup7UEej4jLzPkARCm34yhZTP2PJBRYOkBtOsOdnYiZSjDkPcro2UnT68bLTCMg+Bvp6kPNPv5jZZACAaQ==", "requires": { "@apollo/cache-control-types": "^1.0.2", - "@apollo/federation-internals": "2.5.6" - }, - "dependencies": { - "@apollo/federation-internals": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@apollo/federation-internals/-/federation-internals-2.5.6.tgz", - "integrity": "sha512-ZNJdEcWfKXlFDRYtoCftApQBJl1/aDUBnBfFJeXeTXW4FVhyGotVkWbJUIBlCHMISGmQQDNfRay9Dcp7uIda9A==", - "requires": { - "@types/uuid": "^9.0.0", - "chalk": "^4.1.0", - "js-levenshtein": "^1.1.6", - "uuid": "^9.0.0" - } - } + "@apollo/federation-internals": "2.8.1" } }, "@apollo/usage-reporting-protobuf": { @@ -1975,9 +1947,9 @@ } }, "@types/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==" + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" }, "abbrev": { "version": "1.1.1", @@ -2046,10 +2018,12 @@ } }, "braces": { - "version": "3.0.2", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "bytes": { @@ -2122,7 +2096,9 @@ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" }, "cookie": { - "version": "0.5.0" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" }, "cookie-signature": { "version": "1.0.6" @@ -2180,14 +2156,16 @@ "version": "1.8.1" }, "express": { - "version": "4.18.2", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -2213,42 +2191,12 @@ "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" - }, - "dependencies": { - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - } } }, "fill-range": { - "version": "7.0.1", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -2306,9 +2254,9 @@ } }, "graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==" }, "has": { "version": "1.0.3", @@ -2372,6 +2320,8 @@ }, "is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "js-levenshtein": { @@ -2434,18 +2384,18 @@ } }, "nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz", + "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==", "dev": true, "requires": { "chokidar": "^3.5.2", - "debug": "^3.2.7", + "debug": "^4", "ignore-by-default": "^1.0.1", "minimatch": "^3.1.2", "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.5" @@ -2460,10 +2410,12 @@ } }, "debug": { - "version": "3.2.7", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "has-flag": { @@ -2478,11 +2430,9 @@ } }, "ms": { - "version": "2.1.3", - "dev": true - }, - "semver": { - "version": "5.7.1", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "supports-color": { @@ -2574,6 +2524,12 @@ "safer-buffer": { "version": "2.1.2" }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + }, "send": { "version": "0.18.0", "requires": { @@ -2625,16 +2581,12 @@ } }, "simple-update-notifier": { - "version": "1.0.7", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, "requires": { - "semver": "~7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "dev": true - } + "semver": "^7.5.3" } }, "statuses": { @@ -2650,6 +2602,8 @@ }, "to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" @@ -2679,9 +2633,9 @@ } }, "typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", + "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", "dev": true }, "undefsafe": { diff --git a/package.json b/package.json index 072fa6d..be2813c 100644 --- a/package.json +++ b/package.json @@ -9,21 +9,20 @@ "start": "node index.js", "test": "npm run test:compile && npm run test:compose", "test:compose": "APOLLO_ELV2_LICENSE=accept rover supergraph compose --config supergraph-config-dev.yaml --output supergraph.graphql", - "test:compile": "tsc", - "test:partial-schema-schema": "rover subgraph check apollo-retail-supergraph@prod --name checkout --schema ./subgraphs/checkout/schema.graphql" + "test:compile": "tsc" }, "dependencies": { - "@apollo/server": "^4.9.5", - "@apollo/subgraph": "^2.5.6", + "@apollo/server": "^4.10.4", + "@apollo/subgraph": "^2.8.1", "body-parser": "^1.20.2", "cors": "^2.8.5", - "express": "^4.18.2", - "graphql": "^16.8.1", + "express": "^4.19.2", + "graphql": "^16.9.0", "uuid": "^9.0.1" }, "devDependencies": { - "nodemon": "^2.0.22", - "typescript": "^5.0.4" + "nodemon": "^3.1.4", + "typescript": "^5.5.2" }, "nodemonConfig": { "ext": "js,json,graphql" diff --git a/subgraphs/subgraphs.js b/subgraphs/subgraphs.js index eccaacb..c88607a 100644 --- a/subgraphs/subgraphs.js +++ b/subgraphs/subgraphs.js @@ -88,4 +88,6 @@ export const startSubgraphs = async (httpPort) => { // Start entire monolith at given port await new Promise((resolve) => httpServer.listen({ port: serverPort }, resolve)); + + console.log('All subgraphs started.') }; diff --git a/supergraph-config-dev.yaml b/supergraph-config-dev.yaml index 77c6eba..5435845 100644 --- a/supergraph-config-dev.yaml +++ b/supergraph-config-dev.yaml @@ -1,4 +1,4 @@ -federation_version: =2.5.0 +federation_version: =2.8.1 subgraphs: checkout: routing_url: http://localhost:4001/checkout/graphql