{"_id":"@apollo/core-schema","_rev":"16-f65309ed17728000082615bf704a3a45","name":"@apollo/core-schema","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@apollo/core-schema","version":"0.1.0","keywords":["graphql","federation","apollo"],"author":{"name":"Apollo","email":"opensource@apollographql.com"},"license":"MIT","_id":"@apollo/core-schema@0.1.0","maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"homepage":"https://github.com/apollographql/core-schema-js#readme","bugs":{"url":"https://github.com/apollographql/core-schema-js/issues"},"dist":{"shasum":"a9444f60deaded118657eb3373ddd64ced9ba0cd","tarball":"https://registry.npmjs.org/@apollo/core-schema/-/core-schema-0.1.0.tgz","fileCount":67,"integrity":"sha512-BwOWRnDLj1Y3mMdfjdcv8/h7jcfVnUqb+LfpWRX3siXWtGCGsrg+OTj0l7M7uJGOnN6ZM0XJyY9Pk5Lisb7q6Q==","signatures":[{"sig":"MEUCIQDxBcpTEnPd0xDpbMeUT9toNx8rWL9pFAAQcbhoI0YS9AIgdT7CkVagpC5vdlbvajv7R+ueJcLkrwcT/HhKV7e0CNQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":136212,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFohGCRA9TVsSAnZWagAAB1QP/3aR+EICO1ESe+YPQ5Ih\nrWOpY1+2R+y2IRheLRfK+WZpVH9GZGYzUbU7JxfgEe5+ItAOdzHbiQvg6vvu\nD6ctX60nGGHktsPSm4QKm8WENTJQcTp2EhLZyaG7FmNZGaRXp6PAkEuoyrUo\n36aTGlWseIg6w/ySQRVVhoSBViNyqSnfhPh730k3WsHgA/1fsnFsYYfoOQoF\nQBE+nVa0CzlQkgRztzc8M1I9h6loWVaRKEYsOZ0OeifoamBzmTYzO/emje93\nESUA43iC9pSnitBl5KagYGkVu8Wtw+PRjYw6ruftyhOkolC25dP2KCnKBZ28\nWUIXP3Wxea86Ec4Q36GZD4X7LL+waF8V+5MF1lLZC5nLPo8iKHKC6yWovc/5\nMuNbR/6Z5BH0fEmBWb7Cvo/jPeH3MYqwTkMiiRoXsHY4nRrQvKILx/K1/bes\nnkxZnzUuw/ExYfin5d8dAQa2tYjGqaXDWCQ9DXPQGUqKMaUyBEDvrPkComfE\noodJiT7eQlx+kHiBLGtUiZvyj8TWHQOd6v7vLNaH+eN9hpsD/PblYKN8lrOf\naRJOlHS3RxHYrTbX+1KIUf9vCFUrlm/WJqp3ieivd+S4UAs2wbZM+xUkiZI+\n9j8LyWGdp1LJY3W+JawnKyQylOzwheCMvvm7BjIgSko+cQPCHa7tXXxnCu83\nYT33\r\n=Gnhi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":"7.x","node":">=12.13.0 <17.0"},"gitHead":"e6c318e62ebab6a1f9a4b4752b5bc192158368a1","scripts":{"test":"jest","build":"tsc -p .","watch":"tsc -p . -w","prepare":"npm run build","watch:test":"jest --watch"},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"repository":{"url":"git+https://github.com/apollographql/core-schema-js.git","type":"git"},"_npmVersion":"7.19.1","description":"Apollo Core Schema processing library","directories":{},"_nodeVersion":"16.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","graphql":"^15.5.1","ts-jest":"^26.5.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/jest":"^26.0.20"},"peerDependencies":{"graphql":"^14.5.0 || ^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core-schema_0.1.0_1628866630082_0.9721372868006684","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@apollo/core-schema","version":"0.1.1","keywords":["graphql","federation","apollo"],"author":{"name":"Apollo","email":"opensource@apollographql.com"},"license":"MIT","_id":"@apollo/core-schema@0.1.1","maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"homepage":"https://github.com/apollographql/core-schema-js#readme","bugs":{"url":"https://github.com/apollographql/core-schema-js/issues"},"dist":{"shasum":"5b7ecb69719a0f68e2005830cfaa8ecdbb75add7","tarball":"https://registry.npmjs.org/@apollo/core-schema/-/core-schema-0.1.1.tgz","fileCount":68,"integrity":"sha512-6VImC4vO3GjIapSKP84EQTo0KmRP21SKrNatpexKmuGltKe5b62M3wBA6uJgrUfWnGWXsH4SAAgCxsn37k26eg==","signatures":[{"sig":"MEQCIDcwjO4hlZyZMhMDjjILt6pXbNDRb2Kc2wiDjBAe7fLaAiBHYjh2wwI1E+Sw7kkNTP1PyIjh0nj2gGHu4YOaaOlO7Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138631},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=12.13.0 <17.0"},"gitHead":"f36ba1857ba01888d01c3d116b658a4cb1824725","scripts":{"test":"jest","build":"tsc -p .","watch":"tsc -p . -w","prepare":"npm run build","watch:test":"jest --watch"},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"repository":{"url":"git+https://github.com/apollographql/core-schema-js.git","type":"git"},"_npmVersion":"6.14.12","description":"Apollo Core Schema processing library","directories":{},"_nodeVersion":"12.22.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","graphql":"15.6.1","ts-jest":"27.0.7","prettier":"2.4.1","typescript":"4.4.4","@types/jest":"27.0.2"},"peerDependencies":{"graphql":"^14.5.0 || ^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core-schema_0.1.1_1634752015020_0.5123386896818609","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@apollo/core-schema","version":"0.2.0","keywords":["graphql","federation","apollo"],"author":{"name":"Apollo","email":"opensource@apollographql.com"},"license":"MIT","_id":"@apollo/core-schema@0.2.0","maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"homepage":"https://github.com/apollographql/core-schema-js#readme","bugs":{"url":"https://github.com/apollographql/core-schema-js/issues"},"dist":{"shasum":"4eb529ee27553eeb6c18cd27eb0b94f2bd8b22a8","tarball":"https://registry.npmjs.org/@apollo/core-schema/-/core-schema-0.2.0.tgz","fileCount":69,"integrity":"sha512-bhzZMIyzP3rynXwtUuEt2ENJIgKd9P/iR98VsuA3tOyYdWPjD5BfsrdWO0oIJXW/pjbbr0oHX5gqutFRKYuwAA==","signatures":[{"sig":"MEUCICAmzu8TxJLNsJ7tIQONLoPT77RHc70kXrsWIHsZJmbeAiEA0LCvnf1ePkafvxrZpTvrg6yjEa9g8wY82jiwOPqMOps=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":139039},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=12.13.0 <17.0"},"gitHead":"7772eedc4d6279d05ae6e5b579b4675fbd579752","scripts":{"test":"jest","build":"tsc -p .","watch":"tsc -p . -w","prepare":"npm run build","watch:test":"jest --watch"},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"repository":{"url":"git+https://github.com/apollographql/core-schema-js.git","type":"git"},"_npmVersion":"8.0.0","description":"Apollo Core Schema processing library","directories":{},"_nodeVersion":"16.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","graphql":"15.7.2","ts-jest":"27.0.7","prettier":"2.4.1","typescript":"4.4.4","@types/jest":"27.0.2"},"peerDependencies":{"graphql":"^15.7.2"},"_npmOperationalInternal":{"tmp":"tmp/core-schema_0.2.0_1635978685841_0.2779758008738993","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@apollo/core-schema","version":"0.2.1","keywords":["graphql","federation","apollo"],"author":{"name":"Apollo","email":"opensource@apollographql.com"},"license":"MIT","_id":"@apollo/core-schema@0.2.1","maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"homepage":"https://github.com/apollographql/core-schema-js#readme","bugs":{"url":"https://github.com/apollographql/core-schema-js/issues"},"dist":{"shasum":"9d8503e60ef0e28fd3f5ee78e933aaeaef396f81","tarball":"https://registry.npmjs.org/@apollo/core-schema/-/core-schema-0.2.1.tgz","fileCount":69,"integrity":"sha512-0pyui77dJu3LLju0dUVyZEJBWUiBmf/YLadl9sRR9zj8ZY3M9ky7St6e7O7Ja+UAP43jLGSpBeJ9Cf80prCZwQ==","signatures":[{"sig":"MEYCIQDJhpmDrFuepyTsah68LwMpxu6DA/s5LZAIBCr2P6PMpwIhAJXsKBVp8LoZL2nayuQda7BbRZvAunbpNzoJHFGtiuAC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":141857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhu5InCRA9TVsSAnZWagAAsoUQAJzfia4nveuZ8htyK33F\ntoANJC8JoMXU93RsIqZMs9vgVOQjqu9nJ4e7sL1ob55XO8/vNrD4SjFS2wLC\nW/ZcBtRx+N4iVPXrlduIonGr9IxgtTCqmRA7fDa8WK9rT+Y/eNNgqFk+Vlrd\nNm/k0Z52Ce1D4eGTZNzFqSH5+6PmMlmyOQPKnlNg/Dl5NzQEP5aifM1JD3pK\nfCLKYQ+yTkudLPFn+EHWtTo4vwswUyfalnF7i6+vRUs6sg0MGpC9szWRVf18\n/7o7dIOl/4Q0T9DvMQug2qb6RlOoxpTTWCef6W6lsFXo0eXCQlYAxsdyWS04\nb3p0lz1NyVDcbTClY/axhsUh6mHMaydKzrfOhgFQg5he7HXB6+VUWoiXdYa3\n+koPJ1EHaJHeFvk4WtKPqD/5BFpuX2NsvnAlPOLqmiDJauTBk9IUcQPd0oCm\nPjGaQ5QYZcbGV1kJTiyeWn/ZjpGO1sZy8UXGB9yrGchSRdhwPAMOV+JdTXGe\n2AdL4sW/fZSEI81rTsGBc9XqSXImZUF6gUPtk381XU1EaeyjP4bbetg3ft1T\nVzjMiWeFl3uLr2HXCPAt5SEA94bhpqRzccBWjmTpexGZB8yhz9YuNJNaOIsv\nJ3mtJ0bnzuOUQZS18yqowoR1sg5LT4mOtWEY6m/x2NjYO7dihtZPyLAq5t+J\nK/9e\r\n=BPaH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=12.13.0 <17.0"},"gitHead":"88e63fba5ede2e3367e3574627eb8eb9d6c7f162","scripts":{"test":"jest","build":"tsc -p .","watch":"tsc -p . -w","prepare":"npm run build","watch:test":"jest --watch"},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"repository":{"url":"git+https://github.com/apollographql/core-schema-js.git","type":"git"},"_npmVersion":"8.0.0","description":"Apollo Core Schema processing library","directories":{},"_nodeVersion":"16.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.4.4","graphql":"16.0.1","ts-jest":"27.1.1","prettier":"2.5.1","typescript":"4.5.3","@types/jest":"27.0.3","jest-config":"27.0.3"},"peerDependencies":{"graphql":"^15.7.2 || ^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core-schema_0.2.1_1639682599063_0.18121521501164617","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@apollo/core-schema","version":"0.2.2","keywords":["graphql","federation","apollo"],"author":{"name":"Apollo","email":"opensource@apollographql.com"},"license":"MIT","_id":"@apollo/core-schema@0.2.2","maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"homepage":"https://github.com/apollographql/core-schema-js#readme","bugs":{"url":"https://github.com/apollographql/core-schema-js/issues"},"dist":{"shasum":"f3b704b31849c48c2dfc2cd1c725df7b971321ec","tarball":"https://registry.npmjs.org/@apollo/core-schema/-/core-schema-0.2.2.tgz","fileCount":69,"integrity":"sha512-ZsUn1HhnnWlLopVX/rv+0u7zGhUZzdMMnLeCBhb8tkFckkZ4QaQe4FaIQquDKegUwz6/DLE9O9AbldI/uklxpA==","signatures":[{"sig":"MEUCIQD1zP6O7/ScrRGW3l7j2Dje0wDFu+lPX6UXv9c9GHeHbgIgBKhvfaJQCZmcZaoRxnSJ1cJdrBlr06O2OuEbjIBBM00=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDUHLCRA9TVsSAnZWagAAmgMP/34BRvb8v4xsK+61w+7u\n+HdH9RauitcmI1Glwy0NB8SFLT1F+CbLAVCRirW1F1K8tP3r3Jvq1LBvorcA\nvYsba2XL/AMnTxPl4aZKxoCQE64QLoLpVXBJkO75d9lb+2SVkPslHBgMb1JC\n0UtyM93gjOlqapdy2n0yix6homk3qigDCLdshRBdUrLrureaL4/S2w739tsh\nBn1D0+ntfRHzDEv1H48uC/FmEFs9xL4zixCqCaC0LnAsyw8pOtBeOgAxCCJo\nQNDpW/xnS54wuZnl59etXIDpGaayBgFDXblcvVshshuxfkxDoM+VPiKk17r9\nM9Y1Fth/O3reqjqZpC1gJqXwTXh9OwOsQ930yH5V0TkEHERQpPuzHASvc8ej\nYgb832rQYB3Ccw5Pcqu3jsJgnPJe/LDwLEGvvatvrvbuR+iN7UHxDVQdFpVV\nupy7CQnG7wRnZZ9bKw1Cu/QVpuPUwMjsw40Itjb9x8xMYxDq8327mNw9vSAl\ny43qx9YbR8Yy5JMZXqryJ8wU2Xkl17tLoogbiSj4JcrdPrf7zydtJA7Gle1i\nl6aVlJpgGcv2q/b5NfIyTwuf6do2ZZuNfsfWg2PNYf87mF//PIOaf3+qkiy4\nZVzzG/4M6ypGa1pbec2cowG2WkzC0q3ZWIvEKX14p6UO6S4DNp502DHaKjTk\nPqxM\r\n=YbmV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=12.13.0 <17.0"},"gitHead":"ddfc39cc8d303cfcd078aba9b884ad0d021a5535","scripts":{"test":"jest","build":"tsc -p .","watch":"tsc -p . -w","prepare":"npm run build","watch:test":"jest --watch"},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"repository":{"url":"git+https://github.com/apollographql/core-schema-js.git","type":"git"},"_npmVersion":"8.5.0","description":"Apollo Core Schema processing library","directories":{},"_nodeVersion":"16.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","graphql":"16.3.0","ts-jest":"27.1.3","prettier":"2.5.1","typescript":"4.5.5","@types/jest":"27.4.0","jest-config":"27.5.1"},"peerDependencies":{"graphql":"^15.7.2 || ^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core-schema_0.2.2_1645035979130_0.1881786341975682","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@apollo/core-schema","version":"0.2.3","keywords":["graphql","federation","apollo"],"author":{"name":"Apollo","email":"opensource@apollographql.com"},"license":"MIT","_id":"@apollo/core-schema@0.2.3","maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"homepage":"https://github.com/apollographql/core-schema-js#readme","bugs":{"url":"https://github.com/apollographql/core-schema-js/issues"},"dist":{"shasum":"33a64bd2d6516009e1616e556ff0098834d4d29e","tarball":"https://registry.npmjs.org/@apollo/core-schema/-/core-schema-0.2.3.tgz","fileCount":69,"integrity":"sha512-0MXK/rlo2Es6qp4nb5lkMcN8jz3AaXm7TiPENO9Cyyy8kIC6rTKKpHCd1yv/E5aDEIFFq44LJcL+WrLONSy7+g==","signatures":[{"sig":"MEQCIDDAcuEVBGOLuNXvS9WisjiTOstWoY0WBhU4jUX6XfsmAiBSPg0qV26cySnsqWjUy+pdATjxb+Fj4+Dd/yPt553T6A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiQdLcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmryTRAAgLhjpt4z6JLGlEuWjWaiuWio+1lG4ABoUalkFmqNOM66inIY\r\ngsYJOqp4XnacxX+0+3RrTXrU5lTGSLZhyEdfKyRPP5bwfLZH/Bbc6gICqvml\r\nzNk8dhVbjP6xH2VVoOlUCNGe0IlJsprTUMObJtyL90CgGEEcQczjc9w8UYuM\r\npY+yVSz3VJm/KGc90HsFP2pAkxvBWqXecgdHn60TKRKxfklViGl2aqijYtIz\r\nFb1GgUAd4QSCTjvcQWf873Awy+6lgao/76EQEshUKdmCMY3tISTIUEn+On+5\r\nbnEABp/fZY1pmQyt5UFT6SOarKkeEuz3LgJ6KWiEpXBowZdanX/qn382Ll5d\r\n1Pp1sbPGqUzCfXkYvX3gHfZn47GQOBfu3YqNVYe4T06XioKEFU60VHKMrzDp\r\nr1tqpeyqzIKprSD5ifyQTGCWQB4NhX8i7+Dvrb/aQU24B1tE6I3k07UxHd4i\r\nfQZRZt9a7eW3fUL9/7bjgsMq++3nTvM1nblrOfGcDtfkGjjTNeS5gfyw6vYO\r\nfx+5DLVqNq5UooW/Y/1ZB1MUFVS7HyxcZtjEBn5qQew309pxTYojxnVsZ99W\r\nPqPP6snof2MyBi9FnTMovqkdSCzgpLg/sTGHvNjaB7HLWYiF9CMoPUMBdD6F\r\n0M/idacRQre/Vxbd/DgtrHPSx5v3BgyJlHw=\r\n=YAxM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=12.13.0 <18.0"},"gitHead":"a8e100ba6627344f7d219842998e3928c0956fbc","scripts":{"test":"jest","build":"tsc -p .","watch":"tsc -p . -w","prepare":"npm run build","watch:test":"jest --watch"},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"repository":{"url":"git+https://github.com/apollographql/core-schema-js.git","type":"git"},"_npmVersion":"8.5.0","description":"Apollo Core Schema processing library","directories":{},"_nodeVersion":"16.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","graphql":"16.3.0","ts-jest":"27.1.3","typescript":"4.5.5","@types/jest":"27.4.0","jest-config":"27.5.1"},"peerDependencies":{"graphql":"^15.7.2 || ^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core-schema_0.2.3_1648480988608_0.7237379378414417","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@apollo/core-schema","version":"0.3.0","keywords":["graphql","federation","apollo"],"author":{"name":"Apollo","email":"opensource@apollographql.com"},"license":"MIT","_id":"@apollo/core-schema@0.3.0","maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"homepage":"https://github.com/apollographql/core-schema-js#readme","bugs":{"url":"https://github.com/apollographql/core-schema-js/issues"},"dist":{"shasum":"c6c1a6821fb326501d73eb85d920bbf57906cc77","tarball":"https://registry.npmjs.org/@apollo/core-schema/-/core-schema-0.3.0.tgz","fileCount":132,"integrity":"sha512-v+Ys6+W1pDQu+XwP++tI5y4oZdzKrEuVXwsEenOmg2FO/3/G08C+qMhQ9YQ9Ug34rvQGQtgbIDssHEVk4YZS7g==","signatures":[{"sig":"MEYCIQDdT1le1OWigW/vvwYGOGlw3Gj0EyUZ9LKHwB7cneA/QgIhAKRqWwT2GtkvVP1XSausHyA2qwsiUPFu9Kvx9zukssn+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":701961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiT4UdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqeHw/+IhVQ9wBQzlwDfGKFeprZu9VFcJ1gv+9Hs5mgUGjgsE6ro5Lp\r\n0rsmBMZe54s5z+KyZ037QsRIX5tL/zoWshCxaW44zze/73BVXPIq6py2zRjm\r\nFyXjvzFdu0G0U+D4hF4GpJMQr6yvVbplmEIaH8DyxvUgwX0YU0wykKkLRscQ\r\nw3YWI2sEFRem+Tq41ivbSPdhib5elpxinLTQEYF4jSgVBkMKW0M/S6/awpQg\r\nBc7sLNMNWFLQ8Xe8xzUATKVqZnYtBKygZHmVTctF3WmL+V5OoB1bULhTRUAR\r\n8EBeYD5IgAwhFmP0RutjGzicyFC2DI49+E69wwiNP7p7TFqDzVIxRCzx/CSv\r\n+28CoHF/NllfuycHcFfSWvABJ/6yCU0eruNb2eBrvqp2sdx6fFNODvtrFjmD\r\ndJfJ6MgHDrBa50d//gEZBuh97gfLaTGeZxFlIIMY7B0MdqN2Q0Y2kQgNxTrZ\r\nqJfkQRIDK5PUDksAP7y5skOGrpmu742hGQ63oduiVPjNQdaOFgtUhIdrxT7A\r\nag7VDYxMw8p0NxyYUjjdFmZlOOSk7MflvekOv62Rj6M0pQpmjR2Iz7wkHqJX\r\nA/YKtD9aLjxmlIkKy9jB+VTR3TyucTtwypFCa7rS+PJi5aEJ0yUL616k3MRE\r\nTVKoV7PDoKCIHl1zyEVM0o38m3Jui++z7Pk=\r\n=tbQF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=12.13.0"},"gitHead":"36476869e4c9ba934fd982844a0469de3cbeb5ec","scripts":{"test":"jest","build":"tsc -p .","watch":"tsc -p . -w","prepare":"npm run build","watch:test":"jest --watch"},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"repository":{"url":"git+https://github.com/apollographql/core-schema-js.git","type":"git"},"_npmVersion":"7.19.1","description":"Apollo Core Schema processing library","directories":{},"_nodeVersion":"16.5.0","dependencies":{"@protoplasm/recall":"^0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","graphql":"16.3.0","ts-jest":"27.1.4","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","jest-config":"27.5.1"},"peerDependencies":{"graphql":"^15 || ^16"},"_npmOperationalInternal":{"tmp":"tmp/core-schema_0.3.0_1649378589133_0.6852268023086909","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-08-13T14:57:10.001Z","modified":"2026-01-22T17:29:56.240Z","0.1.0":"2021-08-13T14:57:10.214Z","0.1.1":"2021-10-20T17:46:55.281Z","0.2.0":"2021-11-03T22:31:26.068Z","0.2.1":"2021-12-16T19:23:19.248Z","0.2.2":"2022-02-16T18:26:19.277Z","0.2.3":"2022-03-28T15:23:08.810Z","0.3.0":"2022-04-08T00:43:09.293Z"},"bugs":{"url":"https://github.com/apollographql/core-schema-js/issues"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"license":"MIT","homepage":"https://github.com/apollographql/core-schema-js#readme","keywords":["graphql","federation","apollo"],"repository":{"url":"git+https://github.com/apollographql/core-schema-js.git","type":"git"},"description":"Apollo Core Schema processing library","maintainers":[{"email":"dariusz_kuc@hotmail.com","name":"dkuc"},{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"mail@lenzw.de","name":"phryneas"},{"email":"npmjs@jro.cc","name":"abernix"}],"readme":"# @apollo/core-schema\n\n*typescript library for processing core schemas*\n\nto install via npm:\n\n```sh\nnpm install @apollo/core-schema\n```\n\nto build from source:\n\n```sh\nnpm install\nnpm test\n```\n\n# quickly\n\n## parse a schema\n\n```typescript\nimport { Schema, gql } from '@apollo/core-schema'\n\nconst schema = Schema.basic(gql`${\"example.graphql\"}\n  @link(url: \"https://specs.apollo.dev/federation/v1.0\")\n  @link(url: \"https://specs.apollo.dev/inaccessible/v0.1\")\n\n  type User @inaccessible {\n    id: ID!\n  }\n`);\n\nexpect([...schema]).toMatchInlineSnapshot(`\n  Array [\n    <>[GraphQL request] 👉@link(url: \"https://specs.apollo.dev/federation/v1.0\"),\n    <#User>[GraphQL request] 👉type User @inaccessible {,\n  ]\n`);\n\nexpect([...schema.scope]).toMatchInlineSnapshot()\n\nexpect([...schema.refs]).toMatchInlineSnapshot(`\n  Array [\n    <>[example.graphql] 👉@link(url: \"https://specs.apollo.dev/federation/v1.0\"),\n    <https://specs.apollo.dev/link/v1.0#@>[example.graphql] 👉@link(url: \"https://specs.apollo.dev/federation/v1.0\"),\n    <https://specs.apollo.dev/link/v1.0#@>[example.graphql] 👉@link(url: \"https://specs.apollo.dev/inaccessible/v0.1\"),\n    <#User>[example.graphql] 👉type User @inaccessible {,\n    <https://specs.apollo.dev/inaccessible/v0.1#@>[example.graphql] type User 👉@inaccessible {,\n    <#ID>[example.graphql] id: 👉ID!,\n  ]\n`);\n```\n\n\n## look for directives by their global graph position\n\n```typescript\nimport {Schema, Defs, GRef, directives} from '@apollo/core-schema'\n\nconst schema = Schema.basic(gql `\n  extend schema\n    @link(url: \"https://spec.example.io/hidden/v1.0\", as: \"private\")\n\n  type Product\n  type Admin @private\n  type User\n`)\n\nconst HIDDEN = GRef.rootDirective('https://spec.example.io/hidden/v1.0')\nfunction *hiddenDefs(defs: Defs) {\n  for (const def of defs) {\n    for (const directive of directives(def)) {\n      if (directive.gref === HIDDEN) {\n        yield def\n        break\n      }\n    }\n  }\n}\n\nexpect([...hiddenDefs(schema)].map(def => def.name))\n  .toEqual(['Admin'])\n```\n\n## lookup names in a core schema\n\nget a `Schema` from a document with `Schema.from` and then\nlook up document names via `schema.scope`:\n\n```typescript\nimport {Schema, GRef, ref} from '@apollo/core-schema'\n\nconst doc = Schema.from(gql `\n  extend schema\n    @link(url: \"https://specs.apollo.dev/link/v1.0\")\n    @link(url: \"https://example.com/someSpec/v1.0\")\n    @link(url: \"https://spec.example.io/another/v1.0\", as: \"renamed\")\n`)\nexpect(doc.scope.lookup('@link')).toBe(\n  GRef.rootDirective('https://specs.apollo.dev/link/v1.0')\n)\nexpect(doc.scope.lookup('renamed__Type'))).toBe(\n  GRef.named('Type', \"https://spec.example.io/another/v1.0\")\n)\n```\n\n## build a document with implicit scope\n\nit's often useful to interpret a document with a set of builtin\nlinks already in scope.\n\n`Scope.from` takes a second argument—the so-called `frame`—to\nenable this:\n\n```typescript\nconst SUBGRAPH_BUILTINS = Schema.from(gql `\n  extend schema\n    @link(url: \"https://specs.apollo.dev/link/v1.0\")\n    @link(url: \"https://specs.apollo.dev/federation/v1.0\",\n          import: \"@key @requires @provides @external\")\n`)\n\nfunction subgraph(document: DocumentNode) {\n  return Schema.from(document, SUBGRAPH_BUILTINS)\n}\n\nsubgraph(gql `\n  # @key in the next line will be linked to:\n  #\n  #   https://specs.apollo.dev/federation/v1.0#@key\n  type User @key(field: \"id\") {\n    id: ID!\n  }\n`)\n\nsubgraph(gql `\n  # this will shadow the built-in link to @key:\n  extend schema @link(url: \"https://specs.apollo.dev/federation/v2.0\",\n    import: \"@key\")\n\n  # @key in the next line will be linked to:\n  #\n  #   https://specs.apollo.dev/federation/v2.0#@key\n  type User @key(field: \"id\") {\n    id: ID!\n  }`)\n```\n\n## iterate over links from a document\n```typescript\nfunction linksFed2(doc: Schema) {\n  for (const link of doc.scope) {\n    if (link.gref.graph.satisfies(LinkUrl.from(\"https://specs.apollo.dev/federation/v2.0\"))) {\n      // child links federation 2.0\n      return true\n    }  \n  }\n  return false\n}\n\nexpect(\n  linksFed2(Schema.basicFrom(gql `\n    extend schema @link(url: \"https://specs.apollo.dev/federation/v2.0\")\n  `))\n).toBe(true)\n\nexpect(\n  linksFed2(Schema.basicFrom(gql `\n    extend schema @link(url: \"https://specs.apollo.dev/federation/v1.9\")\n  `))\n).toBe(false)\n\nexpect(\n  linksFed2(Schema.basicFrom(gql ``))\n).toBe(false)\n```\n\n## standardize names within a document\n\nperhaps you want to scan directives in a document without having to worry about whether the user has renamed them.\n\nthe `schema.standardize(...urls)` method can help:\n\n```typescript\nconst subgraph = Schema.basic(gql `\n  @link(url: \"https://specs.apollo.dev/federation/v2.0\",\n        # what weird naming choices!\n        import: \"\"\"\n          @key      (as @fkey)\n          @requires (as @frequires)\n          @provides (as @fprovides)\n          @tag      (as @ftag)\n        \"\"\")\n\n  type User @fkey(fields: \"id\") {\n    id: ID! @ftag(name: \"hi\") @tag(name: \"my tag\")\n  }\n\n  # note: this is our *own* @tag directive, which looks\n  # just like but means something different than\n  # federation's @tag:\n  directive @tag(name: string) on FIELD_DEFINITION\n`);\n\nexpect(\n  raw(\n    // standardize takes LinkUrls and ensures that all references to that schema\n    // are prefixed with its standard name\n    subgraph.standardize(\"https://specs.apollo.dev/federation/v2.0\").print()\n  )\n).toMatchInlineSnapshot(`\n  extend schema @link(url: \"https://specs.apollo.dev/link/v1.0\") @link(url: \"https://specs.apollo.dev/id/v1.0\") @link(url: \"https://specs.apollo.dev/federation/v2.0\")\n\n  type User @federation__key(fields: \"id\") {\n    id: ID! @federation__tag(name: \"hi\") @tag(name: \"my tag\")\n  }\n\n  directive @tag(name: string) on FIELD_DEFINITION\n`);\n```\n\n# motivation\n\nthis library exists to help you read and manipulate core schemas.\n## background\n\n[core schemas](https://specs.apollo.dev/core/v0.2) can reference elements from one another.\n\nfor example, this schema references federation 2.0 and uses the `@key` directive from it:\n\n```graphql\nextend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.0\")\n\ntype User @federation__key(fields: \"id\") {\n  id: ID!\n}\n```\n\nhere, we link the `federation` spec by its url. this links the name `federation` to the url `https://specs.apollo.dev/federation/v2.0`, instructing core-aware processors that identifiers like `federation__FieldSet` and `@federation__key` are defined by https://specs.apollo.dev/federation/v2.0.\n\n`@link` inferred the name `federation` (and also the version `2.0`) from the url. you can also set the name explicitly:\n\n```graphql\nextend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.0\", as: fedv2)\n\ntype User @fedv2__key(fields: \"id\") {\n  id: ID!\n}\n```\n\nthese namespaced names can get annoying, so `@link` also provides an `import` argument, which links unprefixed names to remote definitions:\n\n```graphql\nextend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.0\",\n        import: \"@key\")\n\ntype User @key(fields: \"id\") {\n  id: ID!\n}\n```\n\nthe lets us fix name conflicts. for example, say i have this schema:\n\n```graphql\ntype User @key(column: \"id\") {\n  id: ID!\n}\n\ndirective @key(column: string) on OBJECT\n```\n\nnow say i want to make this schema a federation subgraph. federation already defines a `@key` directive; it will conflict with my own `@key` directive, which is unrelated.\n\nwith `@link`, i can give federation's `@key` directive any name i want, avoiding the conflict:\n\n```graphql\nextend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.0\",\n        import: \"@fedKey: @key\")\n\ntype User @fedKey(fields: \"id\") @key(column: \"id\") {\n  id: ID!\n}\n\ndirective @key(column: string) on OBJECT\n```\n\nnote that this also works for the `@link` directive itself:\n\n```graphql\nextend schema\n  @coreLink(url: \"https://specs.apollo.dev/link/v1.0\", as: coreLink)\n  @coreLink(url: \"https://specs.apollo.dev/federation/v2.0\",\n        import: \"@fedKey: @key\")\n```\n\n\n## compilation\n\nthe examples above are not valid GraphQL schemas because they do not contain definitions of all the elements they name. specifically, they don't contain definitions of the federation directives, nor of `@link` itself. if you feed them to a tool which expects a valid GraphQL schema, that tool will break.\n\nit seems like we should be able to fix this. `@link` strongly resembles an `import` statement—its existence seems to imply some compilation process which can somehow look up the relevant definitions and insert them into the document.\n\nthis library provides such a mechanism. along the way, it provides a framework for working with *global graph* definitions—constructing schemas out of them, copying them from one document to another, and so on.\n\n### the compiler's problem\n\ntake this schema again:\n\n```graphql\nextend schema\n  @link(url: \"https://specs.apollo.dev/federation/v2.0\",\n        import: \"@fedKey: @key\")\n\ntype User @fedKey(fields: \"id\") {\n  id: ID!\n}\n```\n\nthe compiler has to look at this schema and insert definitions for any elements which are referenced but not defined in the document. say we have an atlas with one schema in it:\n\n```graphql\nextend schema\n  # @id is @link's sister, specifying this schema's\n  # position within the global graph\n  @id(url: \"https://specs.apollo.dev/federation/v2.0\")\n\ndirective @key(fields: FieldSet!) on OBJECT\nscalar FieldSet\n```\n\nthe compiler needs to copy the definition for `@key` into the document. and then it also needs to copy the definition for `FieldSet`, since `@key` references `FieldSet`. and when it inserts these definitions into the document, it needs to change their names to fit the namespace of the document. core schemas can transitively `@link` other core schemas, so this may involve adding `@link`s to other schemas as well.\n\nthis library exposes an editing model designed to make this tricky task—and others like it—much easier.\n\n# editing model\n\nthe basic approach is:\n1. read a schema and construct its scope by examining its `@link` directives. the scope manages the namespace—it is able to look at any definition or reference in the document and associate it with a global graph position (a url, essentially). the scope is completely unconcerned with whether a given element has a definition within the document—its only job is to associate names with urls.\n2. when copying nodes out of a document, annotate those nodes and their descendants with their global graph positions. we call this process *detachment* or *denormalization* (because the metadata carried by the `@link` directives has been denormalized into the entire tree).\n3. move definitions around as needed without worrying about namespaces\n4. before emitting a finished document, collect all its references, generate appropriate `@link` headers, and *renormalize* all its nodes, setting their names as appropriate.\n\nthe process of denormalizing and renormalizing nodes is mostly transparent.\n\n## in practice\n\nyou can construct a `Schema` from a GraphQL document like so:\n\n```typescript\nimport {Schema, gql} from '@apollo/core-schema'\n\nconst schema = Schema.from(gql `\n  extend schema\n    @id(url: \"https://my/schema\")\n    @link(url: \"https://specs.apollo.dev/link/v1.0\")\n    @link(url: \"https://specs.apollo.dev/federation\", import: \"@key\")\n    @link(url: \"https://myorg.internal/future\")\n\n  type User @key(fields: \"id\") @future\n`)\n```\n\n`Schema`s are iterable, yielding each of the definitions in the document:\n\n```typescript\nconst defs = [...schema]\n```\n\n`Schema`s always yield detached subtrees. definitions and references in a detached subtree have a `.gref` property, which locates the node within the global graph:\n\n```typescript\nimport {GRef} from '@apollo/core-schema'\n\nexpect(defs[defs.length - 1].gref).toBe(\n  GRef.named('User', 'https://my/schema')\n)\n```\n\n(an \"gref\" is an \"href\" for the \"g\"raph).\n\nyou can insert detached nodes into the document using whatever mechanism:\n\n```typescript\n// helper to create a detached @tag directive\nfunction $tag(name: string) {\n  return {\n    kind: Kind.DIRECTIVE,\n    name: \"tag\",\n    arguments: [{\n      name: { kind: Kind.NAME, value: \"name\" },\n      value: { kind: Kind.STRING, value: name }\n    }],\n    gref: GRef.rootDirective(\"https://specs.apollo.dev/tag/v0.1\")\n  }\n])\n\n// replace @future with @tag(name: \"future\")\nconst newSchema = schema.mapDoc(schema =>\n  visit(schema.document, {\n    Directive(node) {\n      if (!hasRef(node)) return\n      if (node.gref === GRef.rootDirective(\"https://myorg.internal/future\")) {\n        // replace @future with @tag(name: \"future\")\n        return $tag(\"future\")\n      }\n    }\n  }))\n```\n\nfinally, we can call `compile` to renormalize everything and ensure the appropriate `@link` headers are present:\n\n```typescript\nreturn newSchema.compile()\n```\n\n`schema.compile()` takes an optional argument, an `atlas` from which it will try to fill any definitions which are referenced but not present in the document. `atlas` can be any iterable over detached definitions. for example, it can be another `Schema`:\n\n```typescript\nconst tagSchema = Schema.basic(gql`\n  @id(url: \"https://specs.apollo.dev/tag/v0.1\")\n  directive @tag(name: string) repeatable on OBJECT\n`)\nreturn newSchema.compile(tagSchema)\n```\n\nyou can use the `Atlas` class to join multiple schemas together into an atlas.\n\n## design principles\n\n### AST-focused\n\nthis library takes an AST-focused approach to working with schemas.\n\nthis is nice because the AST can represent many situations which cannot be represented with a `GraphQLSchema`. for example, schemas which do not contain all their definitions (a principle motivation for this library!) cannot be represented in the `GraphQL*` class structure. thus, we just don't try: this library never calls `buildSchema`, nor do we touch execution-focused classes like `GraphQLSchema`.\n\nadditionally, working with the AST gives us the ability to make *small* changes to the document without radically changing the structure. by default, operations implemented here try to make minimal changes to the document, preserving its structure as well as possible. alas, limitations in the graphql parser mean that we cannot currently preserve comments.\n\nfinally, AST nodes are given a source position by the parser and retain that position even across complex transforms. this helps with error reporting, and would also make it relatively easy to generate sourcemaps, though we do not currently do this.\n\n### pure and immutable\n\nessentially this whole library is implemented as pure functions on immutable data structures, starting with ASTNodes (which we treat as immutable). expensive operations are memoized.\n\n### lazy\n\na consequence of the pure/immutable/memoized design is that we generally do not compute anything until we need it. for example, `Schema.from` does not even scan the document's `@link`s and construct a scope until `schema.scope` is actually used. similarly, nodes are not denormalized until they are accessed.\n\n### canonized value types\n\na few types—notably `GRef`, `LinkUrl`, and `Version`—are *canonized*. that is, they can only be created via a memoized function, which ensures that two equivalent instances will always be the same instance:\n\n```typescript\nexpect(LinkUrl.from('https://specs/example/?extraneous&stuff&ignored'))\n  .toBe(LinkUrl.from('https://specs/example'))\n```\n\nthese are effectively value types, and they can be (and are) used e.g. as keys in `Map`s.","readmeFilename":"README.md"}