{"_id":"apollo-cache-control","_rev":"153-09daded6ed6ed385f1a20d87957cc867","name":"apollo-cache-control","description":"A GraphQL extension for cache control","dist-tags":{"latest":"0.15.0","next":"0.11.0-alpha.1","alpha":"0.14.0-alpha.0","next-v3":"0.300.0-alpha.3","rc":"0.11.2-rc.0","unified":"0.12.1-unified2.1","v2":"0.15.0"},"versions":{"0.0.1":{"name":"apollo-cache-control","version":"0.0.1","description":"Track and expose cache control data for GraphQL requests","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"echo \"Error: no test specified\" && exit 1"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"peerDependencies":{"graphql":"^0.10.0"},"devDependencies":{"@types/graphql":"^0.11.4","@types/node":"^8.0.30","typescript":"^2.5.2"},"dependencies":{"graphql-extensions":"0.0.1"},"gitHead":"b9b5fcf4fa44fe245dfdbe02cff8f20f0fd1c5bd","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.0.1","_shasum":"23400ab2efff33a69e6cb0e9d064475f110aa5c5","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"},"dist":{"shasum":"23400ab2efff33a69e6cb0e9d064475f110aa5c5","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.1.tgz","integrity":"sha512-xgf/cWfY4zbqdJU7tGA0c6quOADy0XUOSlm26WCnqfBI3UH7fiKUMvbzBImq3NXRy1KFvTfK+iFsuvaibM4vZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNnjpvf8O1FOFndm/0zqceulRt7c5lnPh/otLBub9iFwIgdu35tc/XjxHj0bQ6sat0BkRqvZDWYH7U9MLBO1kDFN4="}]},"maintainers":[{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control-0.0.1.tgz_1507726676944_0.42402293416671455"},"directories":{},"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.0.3":{"name":"apollo-cache-control","version":"0.0.3","description":"Track and expose cache control data for GraphQL requests","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"echo \"Error: no test specified\" && exit 1"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"peerDependencies":{"graphql":"^0.10.0"},"devDependencies":{"@types/graphql":"^0.11.4","@types/node":"^8.0.30","typescript":"^2.5.2"},"dependencies":{"graphql-extensions":"0.0.2"},"gitHead":"fff0e43f4b603c0181e02b96be5d6a730ecd7c24","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.0.3","_npmVersion":"5.4.2","_nodeVersion":"6.11.2","_npmUser":{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"},"dist":{"integrity":"sha512-uQkT40wkrq98K3MaVy3v+wQOKu0a38dm8T9v4wtAZKkdlmV2bksY+isrltkQUOfEtwBFduII4tshdVBYHwrgTQ==","shasum":"b48bea13a7e22ad514f4a80b2b2b7052af657d8f","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFYXRT7UmRGNaS1VFF+8qyfsad7u1JwJNHDFTQGnnW8AAiEA2TKd0YCaaVdzdnO1VLE7WhC04cf6zBfy6HsTkCRNvWM="}]},"maintainers":[{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control-0.0.3.tgz_1507728500722_0.8985865274444222"},"directories":{},"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.0.4":{"name":"apollo-cache-control","version":"0.0.4","description":"Collect and expose cache control instructions for GraphQL responses","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"jest"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"dependencies":{"graphql-extensions":"0.0.2"},"peerDependencies":{"graphql":"^0.10.0 || ^0.11.0"},"devDependencies":{"@types/graphql":"^0.11.5","@types/jest":"^21.1.4","@types/node":"^8.0.44","@types/zen-observable":"^0.5.3","graphql":"^0.11.7","graphql-tools":"^2.5.1","jest":"^21.2.1","jest-matcher-utils":"^21.2.1","ts-jest":"^21.1.3","typescript":"^2.5.3"},"jest":{"testEnvironment":"node","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"moduleFileExtensions":["ts","tsx","js","jsx","json"]},"gitHead":"5e8181da0646b3db894c9f4ce4f218c5bd5535ad","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.0.4","_npmVersion":"5.5.1","_nodeVersion":"6.11.2","_npmUser":{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"},"dist":{"integrity":"sha512-8LPSyLMl9hBamQE5gkZJCvn8WewPFC/PUb/0euWXoZyo3bUHqCNTN71mQ4FR2ThVk0ZMnfsXc58OVQJ2aTj8uw==","shasum":"bad1c5d582012518e88756d879d74be085bc8e70","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSW6+ARTMaQEMxUJhbTf4uPCVjuii1gPjY/KbG4Pg1iwIgaTzplKmGSg0ERAY+ChM2Cg29SapQ6nQyC8Lk9XJMq2E="}]},"maintainers":[{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control-0.0.4.tgz_1508359083484_0.0016687659081071615"},"directories":{},"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.0.5":{"name":"apollo-cache-control","version":"0.0.5","description":"Collect and expose cache control instructions for GraphQL responses","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"jest"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"dependencies":{"graphql-extensions":"0.0.3"},"peerDependencies":{"graphql":"^0.10.0 || ^0.11.0"},"devDependencies":{"@types/graphql":"^0.11.5","@types/jest":"^21.1.4","@types/node":"^8.0.44","@types/zen-observable":"^0.5.3","graphql":"^0.11.7","graphql-tools":"^2.5.1","jest":"^21.2.1","jest-matcher-utils":"^21.2.1","ts-jest":"^21.1.3","typescript":"^2.5.3"},"jest":{"testEnvironment":"node","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"moduleFileExtensions":["ts","tsx","js","jsx","json"]},"gitHead":"35f5067256b9cbebd4d50aadc3353583dcaaabb4","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.0.5","_npmVersion":"5.5.1","_nodeVersion":"6.11.2","_npmUser":{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"},"dist":{"integrity":"sha512-gRrOluOli6gagnS2vBjDqa0HpwfKIKaqERndrKFY95dUIpf3utCJs+W6/VavVOTUlQ3Zq76Fc6WIivpojJrUDQ==","shasum":"cc639a8b4a1081ccc25f51fcfb2756b5ba852469","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCz7z4zD2UVJESLpmRQJk/9LnIXFYuRxak5rPltExfEnAIgQF+TAOn7iNn+nvwdYNdQcrjvbBW5noyRN0/L2wsQ+cQ="}]},"maintainers":[{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control-0.0.5.tgz_1508451550131_0.7111614893656224"},"directories":{},"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.0.6":{"name":"apollo-cache-control","version":"0.0.6","description":"A GraphQL extension for cache control","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"jest"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"dependencies":{"graphql-extensions":"0.0.4"},"peerDependencies":{"graphql":"^0.10.0 || ^0.11.0"},"devDependencies":{"@types/graphql":"^0.11.5","@types/jest":"^21.1.4","@types/node":"^8.0.44","@types/zen-observable":"^0.5.3","graphql":"^0.11.7","graphql-tools":"^2.5.1","jest":"^21.2.1","jest-matcher-utils":"^21.2.1","ts-jest":"^21.1.3","typescript":"^2.5.3"},"jest":{"testEnvironment":"node","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"moduleFileExtensions":["ts","tsx","js","jsx","json"]},"gitHead":"7ebe3e87ba6c07d943adc812f7053621add6d444","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.0.6","_npmVersion":"5.5.1","_nodeVersion":"8.7.0","_npmUser":{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"},"dist":{"integrity":"sha512-Rs4PtWcBP+LrXEPq6ufQm+03p8tuHN8OAkyvsCGU1RQjV4aIPU0uJ6k2JYTKeI/hhIeMflk56MsLqV6DmGHFNQ==","shasum":"f2068e65bc6f9248bd24f20032ba76f4d79e1219","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICbw6AXzDZ52arATDwRMsy4uXwTE/jr5cVGy9g0p6WqyAiEAgMDlk0q9qec3yAG/EzTSUvIVX7m3bByFHVWzd7dn+p4="}]},"maintainers":[{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control-0.0.6.tgz_1508810639889_0.005698891822248697"},"directories":{},"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.0.7":{"name":"apollo-cache-control","version":"0.0.7","description":"A GraphQL extension for cache control","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"jest"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"dependencies":{"graphql-extensions":"^0.0.x"},"peerDependencies":{"graphql":"^0.10.0 || ^0.11.0"},"devDependencies":{"@types/graphql":"^0.11.5","@types/jest":"^21.1.4","@types/node":"^8.0.44","@types/zen-observable":"^0.5.3","graphql":"^0.11.7","graphql-tools":"^2.5.1","jest":"^21.2.1","jest-matcher-utils":"^21.2.1","ts-jest":"^21.1.3","typescript":"^2.5.3"},"jest":{"testEnvironment":"node","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"moduleFileExtensions":["ts","tsx","js","jsx","json"]},"gitHead":"cefda245ca11d61f85eb5e84eb97ab56a9b9df69","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.0.7","_npmVersion":"5.5.1","_nodeVersion":"8.7.0","_npmUser":{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"},"dist":{"integrity":"sha512-DoMTr3uTC5Cx9ukSO63wlzHD15C37FwZuoOZEu+m/UTzVFKQ4PnlBKzwZ0H2+iIwcdSulV0xte6Z3wBe9lHAOA==","shasum":"ffef56413a429a1ce204be5b78d248c4fe3b67ac","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+rLdM6RhQM366/4DfO/skav+gzFhtzTe9FHgYygkksAiBip6uwxIfHgeaSkijQdVz95hcz9Zy6Tfx6rQVJ7Q9+tA=="}]},"maintainers":[{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control-0.0.7.tgz_1508815879063_0.09180640266276896"},"directories":{},"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.0.8":{"name":"apollo-cache-control","version":"0.0.8","description":"A GraphQL extension for cache control","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"jest"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"dependencies":{"graphql-extensions":"^0.0.x"},"peerDependencies":{"graphql":"^0.10.0 || ^0.11.0 || ^0.12.0"},"devDependencies":{"@types/graphql":"^0.11.8","@types/jest":"^22.0.1","@types/node":"^9.3.0","@types/zen-observable":"^0.5.3","graphql":"^0.12.3","graphql-tools":"^2.18.0","jest":"^22.1.1","jest-matcher-utils":"^22.1.0","ts-jest":"^22.0.1","typescript":"^2.6.2"},"jest":{"testEnvironment":"node","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"moduleFileExtensions":["ts","tsx","js","jsx","json"]},"gitHead":"5ccd8cb6e5fd25e223a6922eaf6908872b2cf3e8","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.0.8","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"},"dist":{"integrity":"sha512-+8UgfsRgaS6ycKy5iuhJpkJ2NlHtCA4IUWEcsl/EWKaX5q7lYHnk+l0sz7ID8Ee98nPmHVL/Tk8AiOakRGCdww==","shasum":"ad9f6003b885d4e8f1d4ed9c2123e0a708f7a5e5","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaN7wQTmeHr5FIyawYpkrI4T50qWbEr3/edeMsZJF66AIgUC0T6sehNIaC1RAsgyCGIAviP2PxJNrWK5g/tepDcvs="}]},"maintainers":[{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control-0.0.8.tgz_1516139237788_0.983063668012619"},"directories":{},"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.0.9":{"name":"apollo-cache-control","version":"0.0.9","description":"A GraphQL extension for cache control","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"jest"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"dependencies":{"graphql-extensions":"^0.0.x"},"peerDependencies":{"graphql":"^0.10.0 || ^0.11.0 || ^0.12.0"},"devDependencies":{"@types/graphql":"^0.11.8","@types/jest":"^22.0.1","@types/node":"^9.3.0","@types/zen-observable":"^0.5.3","graphql":"^0.12.3","graphql-tools":"^2.18.0","jest":"^22.1.1","jest-matcher-utils":"^22.1.0","ts-jest":"^22.0.1","typescript":"^2.6.2"},"jest":{"testEnvironment":"node","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"moduleFileExtensions":["ts","tsx","js","jsx","json"]},"gitHead":"070455783b89347683f033d897a6eb0e3ae9ab1a","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.0.9","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"},"dist":{"integrity":"sha512-bspKyM9gBDxv2nnKPSErzzZiSOdvRXnHwS/3gwBucZG1Dz5U4H6xyPtCx754/YfRto1yT9bUMc7vW85jJ/acOA==","shasum":"77100f456fb19526d33b7f595c8ab1a2980dcbb4","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFTOc+w6SG+co64/xbk4s3fFFpLxDWsD9lXmcHqjZCaVAiAaReDlWKpo379zwjZbIOZw4gi9Bx9SpMC1bK3lICsaOQ=="}]},"maintainers":[{"name":"martijnwalraven","email":"martijn@martijnwalraven.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control-0.0.9.tgz_1516139260935_0.8032178990542889"},"directories":{},"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.0.10":{"name":"apollo-cache-control","version":"0.0.10","description":"A GraphQL extension for cache control","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"jest"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"dependencies":{"graphql-extensions":"^0.0.x"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"devDependencies":{"@types/graphql":"^0.11.8","@types/jest":"^22.2.2","@types/node":"^9.6.0","@types/zen-observable":"^0.5.3","graphql":"^0.13.2","graphql-tools":"^2.18.0","jest":"^22.4.3","jest-matcher-utils":"^22.4.3","ts-jest":"^22.4.2","typescript":"^2.7.2"},"jest":{"testEnvironment":"node","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"moduleFileExtensions":["ts","tsx","js","jsx","json"]},"readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n","readmeFilename":"README.md","gitHead":"08c04b9191034ea72f49c4fd2e7b6e2b71ff7020","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.0.10","_npmVersion":"5.8.0","_nodeVersion":"8.10.0","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-M5a41rd+tWyvTTgM6HCXFEsheRuQ8zP2gj4SAm1oszDRncb8wD+39Ra0eMpOeXdZAAXmZe53sRuji5Qp9H7WeQ==","shasum":"7f821ca9f301ae3ee8e20ce4cd69f7cac05502a8","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.10.tgz","fileCount":23,"unpackedSize":51483,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHIC7NSdUiTHjmnBvKco3n5rI5VqNzAdhxwDCMdjQSvZAiB0d5xAHuROipuJwNoSzvkG22Afnp1BnZpbC+J/6RM1gQ=="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.0.10_1522244028588_0.18941711881351964"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.1.0":{"name":"apollo-cache-control","version":"0.1.0","description":"A GraphQL extension for cache control","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"jest"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"dependencies":{"graphql-extensions":"^0.0.x"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"devDependencies":{"@types/graphql":"^0.11.8","@types/jest":"^22.2.2","@types/node":"^9.6.0","@types/zen-observable":"^0.5.3","graphql":"^0.13.2","graphql-tools":"^2.18.0","jest":"^22.4.3","jest-matcher-utils":"^22.4.3","ts-jest":"^22.4.2","typescript":"^2.7.2"},"jest":{"testEnvironment":"node","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"moduleFileExtensions":["ts","tsx","js","jsx","json"]},"gitHead":"0f18a74719e5cde37ef6ee9f4b24fa8715e9a92a","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-GVuT37nn2/9T3pkQL6vLXOpX7IGlJYz0ArpDvzbUC1xaOhMOqEHdFku+qXDfa2dh+5338ib4m/wD5UI4c8IjwA==","shasum":"0c7c9abc312dea3a60e1cb70e0869df2cd970688","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.1.0.tgz","fileCount":25,"unpackedSize":57730,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSsvaGSuSxtZKF5Olc03s04jp4jFdSr4yy35OfCl6rtQIhAImnroVagJuB9424q4BprhMQC4ReUCQ19wHQOjpGxaOo"}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.1.0_1522268959243_0.685345482319311"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.1.1":{"name":"apollo-cache-control","version":"0.1.1","description":"A GraphQL extension for cache control","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rm -rf lib","compile":"tsc","watch":"tsc -w","prepare":"npm run clean && npm run compile","test":"jest"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=4.0"},"dependencies":{"graphql-extensions":"^0.0.x"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"devDependencies":{"@types/graphql":"^0.11.8","@types/jest":"^22.2.2","@types/node":"^9.6.0","@types/zen-observable":"^0.5.3","graphql":"^0.13.2","graphql-tools":"^2.18.0","jest":"^22.4.3","jest-matcher-utils":"^22.4.3","ts-jest":"^22.4.2","typescript":"^2.7.2"},"jest":{"testEnvironment":"node","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"moduleFileExtensions":["ts","tsx","js","jsx","json"]},"gitHead":"c0d1160151708c627c5af8bfa90575187b287381","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.1.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-XJQs167e9u+e5ybSi51nGYr70NPBbswdvTEHtbtXbwkZ+n9t0SLPvUcoqceayOSwjK1XYOdU/EKPawNdb3rLQA==","shasum":"173d14ceb3eb9e7cb53de7eb8b61bee6159d4171","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.1.1.tgz","fileCount":25,"unpackedSize":59782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1TzyCRA9TVsSAnZWagAATrcP/imM1QwsE3g/k3QJVld8\nYtxODQ+RS+E7KpbWU7USndtuLxh/zog99Qhd+wCCBxSe5a9pZtQEYAsleJK2\nuRfpnfkfsBoDMiKl04KFCMnJ1u9v+L+eDHaTxnck9Bj7K9M4k5vdGwNjfWMl\nM+dxp2uEf3CasOGvtzrn9rzmZ0asbLeLGeG28KSbAGXUDjG2hd0aiQxLZDBD\ntXCwzpZJFrAQ76hDF0JNJz5D+cy6z3vtj5hYZdYWBjkJuvGkZ1iaQVK5F1gM\n7GiaHCGukvxtbLRACFs7xJLF+0iFrbWwUI/e0vvc8mU2126iqtxGBdrC6QGS\nxIjBQsCqMgaBEtj3LsBdv3v6qVExpE0WHUFAkH72pDczRAvwJFrahbXkH8JE\nNo9ocd4RR3/gUs4LNKMEkiWTGWZmaIrO32piV5ooIASm//ExQvD++zIqk6de\nVx24eGNJuhICZfWLx2m7Sy+ZGvy6W3hzV45pdnbEeXikg+4hvs1Hh8ICfnbu\nyJo7Muejym3EO36Ccw/o3hTeQrWn6f2izAm0C+NCuZ6ryRJunhngKXbeGIay\nrCurNiwGqmMHzuht615PPrPUKpKIlBFnwfceoo8HD4jv7KRjXnMuQDIahtSW\nyuQunsDC6CbJpENOBott9bh7wGxU2pR8NJt5RocvQE2qU4djRn0JH42cS7wV\nZvHj\r\n=7Hli\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBS9RtqEawlW9bU3BRUOxwJABcPWVfbvx2bwH8UE3UFTAiBIZHkXRLfZlcOc8if4mQeVRUjvhCo6mkUjVeblzH8e9w=="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.1.1_1523924208715_0.11082595104431747"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.0-rc.0":{"name":"apollo-cache-control","version":"0.2.0-rc.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepublish":"npm run clean && npm run compile","test":"jest --verbose","watch":"tsc -w"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.0.0-rc.7","graphql-extensions":"0.1.0-beta.0"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"devDependencies":{"@types/jest":"^23.1.2","graphql-tools":"^3.0.4","jest":"^23.2.0","jest-matcher-utils":"^23.2.0","ts-jest":"^22.4.6"},"jest":{"testEnvironment":"node","setupFiles":["<rootDir>/node_modules/apollo-server-env/dist/index.js"],"transform":{"^.+\\.(ts|js)$":"ts-jest"},"moduleFileExtensions":["ts","js","json"],"testRegex":"src/__tests__/.*$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"globals":{"ts-jest":{"skipBabel":true}}},"readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.0-rc.0","_npmVersion":"5.7.1","_nodeVersion":"8.9.4","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-OR1rWDAHQoVQrTArPo1jiCZUJfDgoRuHOYd6IJ3Nw/qubH8NF1LVXS5PwGp1Gui/NmtP0sy3CGfOxApPNmCWuA==","shasum":"ab580f558a8eccff7b38a9051d3ff838315d0235","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.0-rc.0.tgz","fileCount":11,"unpackedSize":28264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbRBrtCRA9TVsSAnZWagAA1j0P/R9/3/uToMZW+K1uAPNQ\n45x8jKI1foiQck0xzGcVR51bx+eft4X5pB1j3Skvde8Td0MFuAK3uqgzgEPH\nv3kz7IjjKXPAvOcE7s+Tk7YDyLRsz3W5FVXDtxOaLbkeWBUFr1WokIp0+pF5\nbFV4w7Ta/KDSV/s+n9g9foDRoYq6/ZqUUSSdhiH31US53CRYadlWOnmOMxtg\n2+sRfhIlvm2PAG9VjL7aIJto2sNhpyOT1AWv0CFhDrgaoYjGKB2xxcnuQqaz\ndJkDhtVF5IObqAmYJO3r1+MuSoA/N4Q9u1XehG7lJJSoLu6K7AjInzRYBILP\nrB6DqIWFMWlRhGK9k/G5w8zU79S+XhCdl1j5Zqqe+O99igNmZ78QjCg9Qvx+\n+Kwq28ovWh4/CLwxpgvzyThhn9Tmo90UnHoMbrnByo6qObUCMDQgvj3gRWmI\njDxM9aFn0lxYZFPxZNiYCMtCYagx9zxXZ9wEzGdKIUSbJ02vZuQy6f6+0c/1\nL5HVfrM1LnufSVjLlUIxVyFtQU642Bai5gHSGM3cIlvgcF5edicluLHzPb7a\nuYGjuk1ARarBZjjzBp06ldMf86wMPQWc1TYiRMw7wVcZvO6RZaVzhEAsUbcV\nqOEeQQ55EdcJ/J6HZXTsxVliSGmBg/Fr6bM6Qmmu8yriYgpzAFa463bKnfaO\nJ4x+\r\n=97BK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqiWsVYYCLm4lWeiJANnJUKeDX4UdgPbe9REPgVnwuYAIhAIS+wlOJPJq4sL8j4uGR2MEzuSml7YzLqoqckfk53+oG"}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.0-rc.0_1531189996983_0.8409957524212592"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.0-rc.1":{"name":"apollo-cache-control","version":"0.2.0-rc.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepublish":"npm run clean && npm run compile","test":"jest --verbose","watch":"tsc -w"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.0.0-rc.8","graphql-extensions":"0.1.0-beta.0"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"devDependencies":{"@types/jest":"^23.1.2","graphql-tools":"^3.0.4","jest":"^23.2.0","jest-matcher-utils":"^23.2.0","ts-jest":"^22.4.6"},"jest":{"testEnvironment":"node","setupFiles":["<rootDir>/node_modules/apollo-server-env/dist/index.js"],"transform":{"^.+\\.(ts|js)$":"ts-jest"},"moduleFileExtensions":["ts","js","json"],"testRegex":"src/__tests__/.*$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"globals":{"ts-jest":{"skipBabel":true}}},"readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.0-rc.1","_npmVersion":"5.7.1","_nodeVersion":"8.9.4","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-WPGU2iod+Izpmbv2oAG3E8h3WBLHKJDw9m/onZyH2eMWRU6Ymv+qMhfCPoqQuKEjT+4yeFREk+A3utHcRXq9Bg==","shasum":"6356d53fd637771789d654e469ac7bf0a18123bd","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.0-rc.1.tgz","fileCount":11,"unpackedSize":28264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbSUi1CRA9TVsSAnZWagAADYUQAIatFpKMuuDX2MUP6Km9\n73vU9v1Z4utyf2xQ371/hlObMJU/uGON1/eOOpkrme0O579JGx/ffTGSrLmk\nXyrqBRPeAtDU03sO+jPBYagPEX/VjE1bWGfz2ceDVpc536aXJ+VfZeXS1P38\nTYL8pS5NkyW2HnUQjuJx/oSPHgzwQ3f8uU7e+aa+LZ1eLbi+MqXL7ymdOq/Y\nz66A2XYk95Ed2XI9+lC/1dzH77YDqs5WZ+SklbaERXb/WL8i40wz0ERgw5tT\n5Fgl9iqvX6mkhCCh9/WqKl98NVn1E/8/ObZuNYA1L10jt/bTiVMV0rqrv+LM\nmzG6yXVJaqI9oFRPrwIBy5LG3IOagBlIjZU4iKJRQdXAcBBy7+U/KPKlq3/J\nhh0FGiBX9wvnrTXgxkrSCJ7EctSZVhce1rl65XPA20pi0SbsYET1guzishBF\noufzePotN/DP84nOJCJywD0QnSFBOm7xoD0HmJzeTEa1rNgsVjyXjvK97sUk\nZ7hiroBpKs7wQX91jKaTUkJKbE9FhEM4fiel6LWX/XBhg3TwlI0C43C24VYH\noVTt2GwLReWXGfhgV7jR04A9vJAMpqW1u9vC4UQuI9eGYquOsmcoz+T4w4u6\n7S3Rq6oGV6B+ljeOe6FT3Qk/THkzbF1tpY9vig71jQ3xz8Iy5t7hicU/xf5Y\neCBl\r\n=IkCF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzVaOSKuv3LAvGrfcAlfhOi4g56TzEk5iR4HefDXO86gIhAJKiCapnKQWt8XN4l/8nA7K15NV4WrtMA9absoxPNpv0"}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.0-rc.1_1531529397456_0.49408602032435955"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.0-rc.2":{"name":"apollo-cache-control","version":"0.2.0-rc.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepublish":"npm run clean && npm run compile","test":"jest --verbose","watch":"tsc -w"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.0.0-rc.9","graphql-extensions":"^0.1.0-rc.3"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"devDependencies":{"@types/jest":"23.3.0","graphql-tools":"3.0.5","jest":"23.4.1","jest-matcher-utils":"23.2.0","ts-jest":"22.4.6"},"jest":{"testEnvironment":"node","setupFiles":["<rootDir>/node_modules/apollo-server-env/dist/index.js"],"transform":{"^.+\\.(ts|js)$":"ts-jest"},"moduleFileExtensions":["ts","js","json"],"testRegex":"src/__tests__/.*$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"globals":{"ts-jest":{"skipBabel":true}}},"readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.0-rc.2","_npmVersion":"5.7.1","_nodeVersion":"8.9.4","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-+e/F6khjf813mkYaSqacXTSUd7nrPYV1bk6KPVN4DlSP+8YnRsnmls6B+UJmGHBubbj+zOW5Km3zSxY8VhnPvg==","shasum":"83a7e320919994d3ae9b07c13c003571ee3d3449","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.0-rc.2.tgz","fileCount":11,"unpackedSize":28258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTitFCRA9TVsSAnZWagAADSUP/3VcPzsybZ/RpOq3/9tg\njfZ7ShZnT39xcoaRXIT5+mhq4GAEtKl3iQnWLbxBd+9iRcoxyZtMJ8hGF06B\nJuLidAWFtVGK79GsB8+WD3NJMZrHT7ruskXbK6Q/R9dOgTpMN3fNK23ghgpK\nQuR39yxULOy9CasRYkyPSy3v/ytZAOz7XDbwQy0gYuangxaTw6C0/LJTZ8ZW\nIJB+rVtotELKxodJUEbpZwmZWipK6i5kEsN3YLuWDV+rSBLQ0aSC6/LHwDQn\n4Xjl+1BzmXVv+KX728TN5K++VSRR4h0c9mjFNCx3Z1LTFdINy2t6JsQdmImk\nxq1Kwz8BnRohQxYWZq4j2+afJMuadlPnzj1eP3y+A8L82L27XomwUpx/Alqr\njqibVzAnxl1ybPkfwbyzwsETAo8g6Ytiz+ChgMFloGb7UrxV/1cjqtye4SQH\nd8R+nfNfVR4VumtL0Hx+OTFmdA34hbKo6LEQf64jUB5dvl4ReF2zc83ka/HH\nWmL2vNYsYCBQTRV7UG+Fuv2GT7x96x+WzsQkYJmhfyoYP9wfeqfIubiPfIW/\n9lel6vMt5ht0+0qhrfTKV33DSZ+Q0OsR/ta5sMw1l6fvdf7CO1Abj4te0iNn\n1s4g+E/yLLndN55AmIh7sTK0Pmp9ZKHrWcawZpEpaS4VXr78HhT5jo36l8th\npAgQ\r\n=xB1d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDefuAY59BNEOdPQoGoTprSE3zZWDeI1/c4vDnEnGc9DAiEA4XCtq5ENDykwHcCmWGTmw8/US/kem3AYfYtqdXzTaKA="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.0-rc.2_1531849540885_0.8236698208693229"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.0-rc.3":{"name":"apollo-cache-control","version":"0.2.0-rc.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepublish":"npm run clean && npm run compile","test":"jest --verbose","watch":"tsc -w"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.0.0-rc.10","graphql-extensions":"0.1.0-rc.4"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"devDependencies":{"@types/jest":"23.3.0","graphql-tools":"3.0.5","jest":"23.4.1","jest-matcher-utils":"23.2.0","ts-jest":"22.4.6"},"jest":{"testEnvironment":"node","setupFiles":["<rootDir>/node_modules/apollo-server-env/dist/index.js"],"transform":{"^.+\\.(ts|js)$":"ts-jest"},"moduleFileExtensions":["ts","js","json"],"testRegex":"src/__tests__/.*$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"globals":{"ts-jest":{"skipBabel":true}}},"readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.0-rc.3","_npmVersion":"5.7.1","_nodeVersion":"8.9.4","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-115vb39aKP9dkKkaT6DFtIJKX2kyHmiC17eHuoAxS3/stzr+KAxMPMRoT3lDUgRcsqZZta0tgfY/DAADzJ0v1Q==","shasum":"30ae79cc8d4b0dd7bcd7f4a48eb285e9427ba47a","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.0-rc.3.tgz","fileCount":11,"unpackedSize":28257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTi3bCRA9TVsSAnZWagAAjOwP/1zhwcvPT58V927N89SZ\nzQIJApdyEF3Ugn3c/nze6CRSzDZnXjemgHL9YAW3AsPYWlGn/qQlf5QoUfnt\nWDiSrJN74fLeIr/MaDqsjMebc9FNi1ilhCo1rPJOqgwBxNOkX1uOG6aGeH1/\nLjd1J8z5W3qDPSkC0DVsR3s2DxihVHf0xuk+fG2+3rlgBndlNaEdHnWpHdfz\npt8kykPFqbDYuTxL+EmftL/6Gba04Nfo4NzN2jU0cfJegAtUxWFoPbbY/geC\nPan3qRKzg7Uf3cpUreFkEZ/ibTst5Tol4S/XyrzO6I+OpvOBRWLoBDDKsccB\nLMu+1hEYdO1TSBLxacR+8cX/sFT5M24m/HH3Uuk1+3CMAGiHZ2vTU+hhNZjV\nUckV+JbHA5bVWYALYhhfeQ9cMR3+gYamQGjNeDE6M0kcCma1iFxuHP0mxFBo\nA69E6q9i1rWdcnJDeyx6y7iuDvmeQAzfCdroRuqAR5B8ueaiGzwDwH6SL2Cf\nDmGG08aFJpUU6AqdV/358/ihgVkKFUzTH7qjRrdb5jAV91tovBf3mNWBAlmB\nVfa78z0WFeMkRpH4w6uTfjKJXmls419JDt19zezSOhgDnlMqLsyFN5SLNmDi\nKRyE2arJO3OJJX1enys594WRidal0WWwCP+tZH/wT0dzQOi5mmohvFhjMdI/\n6zD9\r\n=+fmD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICJ/zGmfGSTQE7ToTRInKxARRC4DL4Q3EAL7tDeout7mAiAuaenPiwDJhPXcKvs0IXO24QOGISJLYWk7qJLD4pmFDQ=="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.0-rc.3_1531850203411_0.3456249046829414"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.0-rc.4":{"name":"apollo-cache-control","version":"0.2.0-rc.4","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepublish":"npm run clean && npm run compile","test":"jest --verbose","watch":"tsc -w"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.0.0-rc.11","graphql-extensions":"0.1.0-rc.5"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"devDependencies":{"@types/jest":"23.3.0","graphql-tools":"3.0.5","jest":"23.4.1","jest-matcher-utils":"23.2.0","ts-jest":"22.4.6"},"jest":{"testEnvironment":"node","setupFiles":["<rootDir>/node_modules/apollo-server-env/dist/index.js"],"transform":{"^.+\\.(ts|js)$":"ts-jest"},"moduleFileExtensions":["ts","js","json"],"testRegex":"src/__tests__/.*$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"globals":{"ts-jest":{"skipBabel":true}}},"bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.0-rc.4","_npmVersion":"6.2.0","_nodeVersion":"8.11.2","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-ZZ2UR6afCPNa1XTdaqaDx6JtPJo6+/VIaKqsG/dyGKyT/JS3KmAXRX3zIlVpOyiPRcp3L4jp7YpxYblV10VhKg==","shasum":"ad662342317fecb290b540a28f1ff7c328d76536","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.0-rc.4.tgz","fileCount":11,"unpackedSize":28257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTnseCRA9TVsSAnZWagAA7mkP/3au5X00wBNcm9WU6mTb\nZ02hthFcnYDjSX206hUnWwVKjTQQuwdM4AS/MqfXcRleqxFZcrLrXQSeD2i/\nrL4Rd095MKsZYZlOniOUo6vnwEVutLhGxDvHwbn6634S8/MQceRDP7g5Olf/\nRI1xmv1yLwFPGEkk4/LtIgphyzUKXNLQFt/newrm/O7lUd6R71sHh7iFxl+M\ni2tsScByH5FhIU7PpR9TY1WTOJrqMRay0cBmCHgO/IQt7tg3bpPcCFwWHTRd\n7fw1osIfwR3rNB/PmHZI3cbSfODW4ASpr9l07He2WynVlmyCr9sJ2NYJsaLC\nN1nfO/iR3Lj8WmJgg8mjGO/xIpzFtxfSGMOJT+hlzjXdAfeV1Hd/eEU0j6Cc\nNpsq+ey7NF1ZfQ+m5N1JeOcHCXIFhwiYHOPfXqlrRpM72n2BvzNFMxLsxJEe\nDD0PbyxiVlJOvakuoMktJdZv9Te8lEY6SnPm7Y2x49/DL5WmNgRKKMWATKQN\njNrL1G51qTEFLB/R8/s2qRAB6AQcCtWArIzzVGAlfDJsUFyDOh4Tl+DIcNKn\nyKHsEKC2BdkSeNGfxBbfyBilnO7XPi5CLjQJgq7H8aMGcDUaTAqelfhteFcs\nFn42b1Axk5MrvF1VjJZkwlyOjuH0xqXj6u9cErYfi4cgGDLWqMLKXhB8P4VR\nnY4w\r\n=bw59\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDEm67tYCD9ljujU0jtmmkP4wD2fR0BB9wEMev4woj4KAiEAsAquz8Aln7FwxIQSbekhUHOOsF9564WV2E6Mf8Mg/V0="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.0-rc.4_1531869982334_0.9341271788587955"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.0":{"name":"apollo-cache-control","version":"0.2.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepublish":"npm run clean && npm run compile","test":"jest --verbose","watch":"tsc -w"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.0.0","graphql-extensions":"0.1.0"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"devDependencies":{"@types/jest":"23.3.0","graphql-tools":"3.0.5","jest":"23.4.1","jest-matcher-utils":"23.2.0","ts-jest":"22.4.6"},"jest":{"testEnvironment":"node","setupFiles":["<rootDir>/node_modules/apollo-server-env/dist/index.js"],"transform":{"^.+\\.(ts|js)$":"ts-jest"},"moduleFileExtensions":["ts","js","json"],"testRegex":"src/__tests__/.*$","testPathIgnorePatterns":["<rootDir>/node_modules/","<rootDir>/lib/","test-utils"],"globals":{"ts-jest":{"skipBabel":true}}},"bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.0","_npmVersion":"5.7.1","_nodeVersion":"8.9.4","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-+heDVE2Q2d/NqAQjGMAJJ4LabzOnA1+qvIFoeVZXYUdeVX0d4eqKJYvzJz88vf+p5v5wEVO09vlrLPHUIf1nuA==","shasum":"266df191047d99b957cc78167f4843fd66c39117","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.0.tgz","fileCount":11,"unpackedSize":28241,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbUOuTCRA9TVsSAnZWagAAfV0P+gNaFo2mkUmZYQwPkj7j\nCaH0bjLcs9ebK/0XwQ1kdcNNiZs3Mj7CfwQjI9A4Yb55SMvE8rqRbpcfhwdT\nAtGRsVkJQ5pmSJka37qg0wXt2jby5AZDFkDuGT1QIvNb0VWEd1J+cQmZ7fCh\nE7Z2grq8DRLFWe4ZgsnXkasylqMOn2wJUVI3BUJMQAudIqEjd6Z4J8oLjZVn\nTRRzg5G7JDrSmii2OzOV/geX0NeSBED8UIHCjBroobl8sWDZUbMd5uQNj/ni\n4NOg3n55dlQGhXMTSd1J2JCMN4EFfQE9T+4x40izDj3zVnf4n9D4A+mdLgbE\naDTjjtJ0bKii8J4LfOJIjyz8BSzcAAo77kxOeRcFnLcLnV/l4DJV3NkntdT/\neEPRWCZi6c9i/P+Pj7pdbz3QB1OMCViH1x3MyerREM4K8FPXA0r9ZPgphwu2\nldWLSCLUTtCCZ8+DOo0VcwPf28y1/ndaT8SkKc25RmPUYVd9K6fqyqkMpq2d\n+T7GXSIiJSZipGKEIGGjOikjtW6Hqp8PeLAWYNRWc3NzcGVIdkNTRFVyUlet\nMZrAJbnVQLgiO/l8BQkoiXDIuYlhbC0xhLKxO3a+equNkUyHsuqol9gwm+X0\nmXpY2sXs1Mxgf+4W6UWJQhvd1vFVXjjriiNbZkkLKYV6gBRX7p7flVSGty18\nDTT0\r\n=nzVY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdfkd+5P7JVn/UF98yiVHdFc7tlL36+ewbiIt8zSp9ZwIgWyAn/SWuu4IyFGCKQm9yG8gU/KUqC7McssJDX00MaoA="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.0_1532029843861_0.6951113817630095"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.1":{"name":"apollo-cache-control","version":"0.2.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepare":"npm run clean && npm run compile"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"file:../apollo-server-env","graphql-extensions":"file:../graphql-extensions"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.1","_npmVersion":"5.7.1","_nodeVersion":"8.9.4","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-05i0VXun11MFvpkVXD6aQtLZMVQbpoIEDIj9gs9y4mrFwzFkVs8Qy9w2kXGgqci5gjoveWlmHBA+IR1i7kHFew==","shasum":"fcbfb8745d4b4e43bff90282ec31d16fb1eaab4b","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.1.tgz","fileCount":11,"unpackedSize":27556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcxnzCRA9TVsSAnZWagAAq4cP/AhLuSqCzjLkFBhvUwgx\nu8Ilpb2AGiNdcNZnUUpiWwEFWq4gtjDSLmD24pA1T2PdkDBPkrS2ITFFnMtJ\njrwiseICg/CREMcNIAGv9hrjJkKhpk+nT4fwE0sqjpKgNEAAFX002Jjr50aQ\nCEmwRNGB9IJ77wfCy6wVc0c1LCJ0v5zPsvlciGGXo0fhtxd87KaEBDRNA3p4\nG/zwHuiK1Lg2mdueAULGFRtbZnS+79ijJIzUKnJGZn75IQn1b6RaAPuJj2XH\nFRVATt609aer90SdWvCEVpR8DtiIHL/QRd0vK5UvX4E5DTFTnb5US+bdMQlE\n1qMbp5TRkqfuAZJ7kfdauWTcMC36f0ElN1c23J9TmsfYDGhRsynHdHIW9UfK\nH0kWfue51owwxKkLhhW3MPGEbwEOqsBSyOENg7kb9xRiTwBJMdrGo1rK36gc\nMPe+AfxSB/wNbD/57T6VSYoZaEeeQ55agUYeHi+XValACvtLHsp/qxgOL9aj\nD7O/Iynw2v3ARgjsheQINA2D9tcojUaY39f+rkb6hu9jSxjt3Myj9guPpDLi\nvWBhp7ekdBx3qqUAEIP6cYaiKrEzx+FTatvuQLGPBWomLTV1qz3thiSfg9a3\nNy/zkOlPw0NTe7bwPx7FQE+LV+V94QYxONfesb53XqtO8bm2MWyrpwq5mR/6\nQdll\r\n=nSMA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiERXSn00q+OqPeDsVwlqo2TSnADuvIYczub7KCvqQAAIgDs4cuL4UaN1k9ZQguMRB9y1ew3o6oU+pBmVL2+Goqu0="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.1_1534269939231_0.9380163198344549"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.2":{"name":"apollo-cache-control","version":"0.2.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepare":"npm run clean && npm run compile"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.0.2","graphql-extensions":"0.1.2"},"peerDependencies":{"graphql":"0.10.x - 0.13.x"},"gitHead":"f7b5d63d038384409fd4d664a3bcce04c721bc6d","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.2.2.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.2","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-N5A1hO6nHZBCR+OCV58IlE7k6hZrFJZTf/Ab2WD8wduLSa0qLLRlCp3rXvD05+jpWa6sdKw03whW2omJ+SyT+w==","shasum":"2b361a89434bf4ace5981140512a857b8ae09ddd","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.2.tgz","fileCount":12,"unpackedSize":28669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcyR4CRA9TVsSAnZWagAAcZQP/1sCc0H3BK4AiqZT8n5H\n200BITMUlgYJdzU0UNbJV/hQ9NXC4neKrMzei4S3kNGjxxoqEjuA0Gu4b4Af\nT8GcKnRX/LzIBw0c1QGKuYqfCle6Cs2SLoqg5Dwz0N3+sx12riQuueThJugb\n7U6oKpPUxxuaQci/g22kwM9x5l7CL9jOfhpUxf1DCXW488A1RsBbJQle4bET\nfThGCOKBBoCUrYJd2j1VzTE7ZhLgcthGZ3CwSWh0SttMyle0rrAk15WambEd\n94YOXs9+JUvKzHmdlycAXDey9DrRVBsSyuU5gztmHuzHl6A/uiOSYoB8DoUh\nTFTX572ZXCGWP/+7fTupiCdBq6EAaI8gF+ltTuYlDNF46tDJ9ps4+Zi1Qrru\nQx8vH7S71LBR8YQ97Yme8pAJllcNjEUHYy5KgM1v0kIQg244UdydI5nz6IuE\nKljZadz9EgyDwspQzRIbEhpHTdniqDkXz2xzOaNjxTF7stPlvcJ3zI8SlTei\nL/F+/MoVwCig6yp2LvUTEQ10zzXjZHbtYcxaYoBcm5puSLcZHe0vTcXLeroV\nR7exZXKF/MhfhRfmiM8APWboHqR76mQcrfyxtaUeNRwBkGEijqUM/UIz/Srh\nMGcZi8HZwOnR4q1Vb105DI01nj54HH/O/GkX8w/1FRaoRrjDa81d/7Ks/jte\nyeFR\r\n=hpqY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLooyKNydzt5BBB9ugBu2IWPXHGDqYttfNGTTjhGbaWwIgbGK22s7UFpaUdLLnCB+jvT3LBfY9W13UmQHfZHLjwy4="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.2_1534272632102_0.1568125115316279"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.3":{"name":"apollo-cache-control","version":"0.2.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepare":"npm run clean && npm run compile"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.0.3","graphql-extensions":"0.1.3"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"b80a8f050c8d473ae6804cd3be6430308a66eb43","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.2.3.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.3","_npmVersion":"6.4.1","_nodeVersion":"8.11.4","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-W/SJouLRv1VqVd79yeMbDNrv77zJ+8vKbZW2aDjbzMUEyA1nODdJhsrxqlxlh+naK5L4i12DEEG/YhfQjnzM2w==","shasum":"4f08a1390e4cadcfc43b1f1cb697b37983c6851c","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.3.tgz","fileCount":12,"unpackedSize":28729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjTIICRA9TVsSAnZWagAAhCAP/jYtrFdGcSYffI7sH4im\nXdyev0Wb2P2F3VTt19gpuaFx+98NrJtsRuhTY4Wk66HkZuS6tNhtRhPhasNk\nyFr/s/w1/mA23uuUR08imCOAumVy5R96mJ1XSx6WdGde3ZGvcVISzRY/tD23\nAfACNyUR7NRrDKwfHcvBLvTsh6q2+yW2V3oPif1P5U7XOiUrkzTnI61UJZN0\nkcksbJ/qZlOCNHXl4k8wjvkGZyJ7/1olJdFYMO5x+2Q5xv1Fv/v4VH3KbNgs\nLatd+OSHD5X6ly6kbw0GxzfNDXLOXl6Bx7te9Yz56CJ6j35MNNw3PCpgATfD\nCodFDevikIKgjSBDRpJCqI20r3Y1ZQav9iUMFf3DyVKe7YRaqHTKaXQ2yZP0\ndzPLJadnKKC8+IMfXjPzdhj0Enkxlzp71PrRByZIsOEj+Hylq9Wup3jx9YA/\nZYTPvxVEzCwQAr6heKf2F+GAZ9rlXVxH3j+eLtLVWRROdrbGllUr4PCgFa9a\nDocPO2xxpw9FvdbMUONktKWZhCp+twNwtIq7IbLXkVe4dhT4StjDTKf8b09c\nruIiqdP1+ajPdl8VEKraLtsvvIqd25WR/qfHUYqCTZtYZzvYOD29tAFxb5rP\ng1Zw3sDMN6rIJB74yssWDIk9uP9xv2R8hFlIEVbm46jtBv1LY27Tio0qAWq3\nU0tm\r\n=QZ9E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC34K7aodnS/LimlgwtHJi/dUzEPBDFY2TEMFXxxmRqGQIgK0gcss0Rcp+bbkGlQhsLwIJVbN9NG9klZJR5aH9/JyM="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.3_1535980039774_0.16986769596420448"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.4":{"name":"apollo-cache-control","version":"0.2.4","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepare":"npm run clean && npm run compile"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.0.3","graphql-extensions":"0.2.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"5adae649e3e9018b061fdf35d8fe646b98d38fdd","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.2.4.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.4","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"mdg","email":"npm@meteor.com"},"dist":{"integrity":"sha512-Duswm5utdKGaRPuGtUSe7+gjQPYdb9VscLmEFRWYcfyrNBF5tYtycliY3wOSF0zEUE1CersSAwBEWFTTiD50ug==","shasum":"af32b27cde9c86bda8e1ff2db3ab14951c26f92c","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.4.tgz","fileCount":12,"unpackedSize":28729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbm/GsCRA9TVsSAnZWagAAxXQP/3lTZXarssk3Bde3yvMz\n5BVHXjAcIswFHJD7kw0uZ6mwmGcTSborsOJP8nr89ywLWIZSp07opIUT3OOf\ncm4rRLr32gRrHxKxjmJXVxN/eQjSbz3CqFGHM5pFbeWwJ+Si9sDyCP3LLW2Q\nC0MmJAXitXxGBSuxHzze6/fFfAIPNx84mK7TLA+aYXmSy1ua49tBRX22w2dj\niEbWKrrNJrs38YPC8aB2anKm8bnNGlVnqLYpI77w8pbf9orHjA7Ry34KFWY+\nJg07GCaWoOMYjfOEEw8Agd7uk4kH69DRKuCyBFCfWrJuhL1bdRXkRm/iUx0O\n1fftjAclHWyB6OoWRj+6OrviUEkCpQKziIgTyI2MSLQB7EZGle4BOZ99D2vb\nYJNsBtWFQQmg98QehGxMPj8ZttlQBkurX2z4kGwzJFLrS16AhdqMrg8sEq28\nMKUIUUbjJd5jmOFFghtyZ5Ph73ZLf1v5of8KVpwQLMJO4MYPzKTxPEDi83h3\nOjAoBPRC6rdajpS5KXD7/GgbRk34neoJTeIMlY1n0qxePjC/stni18kPMv3M\nZyBredKfnHmADxJsMpwwFKxQp90mU1PM6bM8WS4/g586EuXY9Nv+Bm4+zbzA\n2FRl142Kf4KZhVcBCqyxPFhmUgSH3ezDudh0VJglaiVOdwTUIu7A8rMQ9WtS\nPzhg\r\n=SQ/J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBVYoJ6hpQTw9MlhRJnjgJGyALfiEfW706Jy9b58NVGhAiEAoROxqV6KdTdhpOoyy+u6rHulS4tknLANuIj5VGkStOk="}]},"maintainers":[{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"},{"email":"npm@meteor.com","name":"mdg"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.4_1536946603139_0.26663056470795965"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.2.5":{"name":"apollo-cache-control","version":"0.2.5","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rm -rf dist","compile":"tsc","prepare":"npm run clean && npm run compile"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.0.3","graphql-extensions":"^0.2.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"86dd95e223460f8e1768141a8cefa58bcd409b03","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.2.5.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.2.5","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-xEDrUvo3U2mQKSzA8NzQmgeqK4ytwFnTGl2YKGKPfG0+r8fZdswKp6CDBue29KLO8KkSuqW/hntveWrAdK51FQ==","shasum":"0831ad796754a7beec858668f99e7517fe744a1e","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.2.5.tgz","fileCount":12,"unpackedSize":28731,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJboYclCRA9TVsSAnZWagAAuOEQAIrC3FVDU3MZs9vw7F6u\nNMtnZaachqpZFXNJGw2pRgw/UWDBgJNkpHwuAoCnCHb/ccZXbtxMp61rk2dS\naO8FncFm+UsnIxwhL363uxHptjtusKw6gWqu/fN3I9c1nYwdbupSPHWYOOve\ndvYy3oADxMFwjrklpkDxr5L4DByXj18fXHM5HXKV6M3XA46KYckPQ1KGrLsp\nSbssMAsQMqxxDXa6JG7heey2VCTd8Feb9NDixnXVb5WCnq6vTYmtC4wg8tQN\nr//Np9KKS98asZK8aclYVbCa1uSmiFaiAdAJ4zQgqy0aUM2hD5DVm3OZnGRk\nH6Ba964iH22pZWOsHiZaA4bCfhBTr+7Csgz1umMWZ9tFnfwsEBc1Gv2Ya1zd\ny2R1IawKkHApTTJasSEn0ONqZE7dsQaaWPv0jpSzvSEtPqg7JlDink3hx6hg\n8dYzjuvNTkcXCl08qj5tkxJYYdOdhVZQKdqDIGM1nGXIl4nYgu2TmxDGtKZP\nE3L/3flVbd+of4pS03YEnmPlCRKx4JYuHllI/FlvpEphJudFjG2CDZasoSIF\n8uQa2J9MFa3Ca6bVf6MXPOeTz/Je44UqcrrBQ/xUcZbO/AX+kGmyCfcIt8Xy\nWLrl3owju/d4enWnWwGknVvIo6XpA+uw1ahzfnPESNEk9/Kct+Gm6VZWImdR\nco2l\r\n=EdeU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAyV3mMKDNgES7Dcc+ugg7+RkBL/dFKrJ67piJF4QCapAiEA5e/4LG+r/fPEBF9pFzAC5/y2U4vMI8iX7mM5DAVXizY="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.2.5_1537312548930_0.7993962548629034"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.0-register.2195":{"name":"apollo-cache-control","version":"0.3.0-register.2195","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.1.0-register.2195+e44b5bd","graphql-extensions":"0.3.0-register.2195+e44b5bd"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"e44b5bd3c8b602f549ae52c4cb9d9c7e2488a5c1","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.0-register.2195.tgz","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.0-register.2195","_npmVersion":"6.4.1","_nodeVersion":"10.5.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-6eHFe9SAXW/uPW859hVZcLyX66xBDjq+x7CZftWoh0qdlk29jCkIqUTpQ3YSa0boSjcdNa5TcbG6sz/j/GtVoA==","shasum":"f5b7b41b555a03e6d7ae59dcb5378edbf90b29f3","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.0-register.2195.tgz","fileCount":12,"unpackedSize":32497,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbvAlDCRA9TVsSAnZWagAAVWkP/i6eY3J4AtIMkVkB6zZM\n6EmVE69Deq6jSlI5u5i8sh3KvnTwfnRMDuvrvl45vFzcMblPJmasm8WlciGz\nka9Cfn8K3CEmuE4rVl0/Y4v61/uakC0qMPCfd+N+mOa3E5TJHTjRqT3XNTK2\ncKOr6EWdyLvcMBkKYPU7cfZ2m1VR1SsD+rVVMx6ExNwjxKJGmLXtaJjqe6Um\nWOCBQFxFeZRmMKnDW03SPU1C6RR2vDlw6mSQpwSA9+5C2SCZs7YFhtYKt7XG\nQZC4/cuEUYHksH9BQlQviUCGQqsBD3sOh+U9jWWt52wREUNybuJuZBxdO4+d\nd+NQgdjVwG48a900EE4znpsE5R3Mmb01zpJNCyMWD6/dM9TlPrpTwI3B7DYk\n3xd5WF63RvpwbU+dai22OOVc+wfkN2FbMNAyLfKjUOcKtgWSnCJqx6V+N6xr\n8RFHePU2AABDSWPkP/cNFVRQVLgJ074Iacs30z7XalZtg9kM1WXV647YTA53\nbNW01CyakxmuzflNZ/FbELkVCpVqDkQTBF+QFVwa6GFDzrpY8tEhljeen/VU\nRzdvMeCxQSa7ceNlg6iKJu/obORWfKUAmi2cWpwvyfe0ef7eGeqUgeaha53t\nF6LmWvaVOHXHvDuClfeAMyr42CurK+KeqSjRJosY2fgNagraCfVeYI6RfZ6B\nUWpp\r\n=oLrL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCucNiJiLl1+kcyuSnaAVmbwDzKEhKMdMcyEVjXVlyW6gIhANJiQ55ql/H5ObGw/7ALmXfU39SpWEGxchtl6iukIAnV"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.0-register.2195_1539049794983_0.9338844401890596"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.0-alpha.0":{"name":"apollo-cache-control","version":"0.3.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.1.0-alpha.0","graphql-extensions":"0.3.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"dec2b94a0e309c1c75b3e9f3d7b4011e36a7e48a","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.0-alpha.0.tgz","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.0-alpha.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-2M6b3ZOz+WECdtLiXq12YeireJkniChmXqJtiH34uahDEIIB6ahN323ur+uUhFzSTulFrvn89nYNs9COEi+eUw==","shasum":"e603506b09570d54747406094d6481cd94c93beb","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.0-alpha.0.tgz","fileCount":12,"unpackedSize":32455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbvlOTCRA9TVsSAnZWagAAOhIP/0mJbO8+cNTUDE0fIBX9\nSwEEAMF1J5loq9UHxpupFM3EXVZLKxX818l7Dm5ECeszhYZ9+und9GV7rNQo\nHIaHE6/ESiFdnGUHL+QtNk68nZCVSyxo5EaffG+wUUeiSMEOlOZpUFC7X2QW\nuW/u/hW93gdLmBWUwR31NJtdI8j8JpLfY83CVNqSihMp4NlWH3B4pXlbn6SX\nH5B2ocJ3wbXASpRrOON+FcJbAprIrj6Fpsg/6STGlGhe+5KvBR6vF+YXxlyN\nq0+qiU1cZTvpfLeE4H4Tnuf4/Ae5AvLPB0bvIvCmkfV5hzR1FXx0f7salt4E\nNY1XgU/vdR9zuFsApDeNfEK4xbStAwMhHx6jwnWrN4+miOALLZEsFANl6UMB\n/smJoaXWqRYvIRyxnZQfH9qgfPDO71jKjpTXeQh3EKxYiit5GScXSygoKiGQ\nrfTYjDG6StqXyGEAwIepB9KIsUVF/r47lsG02jUexKT3M2k8pf+7VllY9ItA\ntNM2KkXNXVn0VnkcMU0WQwc3OZ5s1y1xKfOV/JNimYNt9Ii/Xh+nlYKWhftX\nJ60IayqHvU6GLWvwz6s7mTZlTI4mL4JJ59creTO0d4xaPeJ99km4B/eeDhCm\njXz6EjJTrjmrumrSpiioBsj1tMOEeDJLB4VUAoINSdTQ7Ve+4sZRYyUFRYfb\n7d49\r\n=F0AA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2EWu3mEOw1z2m215oN3OTr8N3RPc++b07xt5g9qhzUAIgWVASEJkEQyfaEsW892817LsgTllruUg3h4+kpGHFVW0="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.0-alpha.0_1539199891033_0.5564326651139475"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.0-alpha.1":{"name":"apollo-cache-control","version":"0.3.0-alpha.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.1.0-alpha.1","graphql-extensions":"0.3.0-alpha.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"5b8388323325c14970601310d7864b86010cbebe","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.0-alpha.1.tgz","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.0-alpha.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-MD9u9S58uzbU/jEmdkdeBCnL5shqce8hOoalq9TmKAJ1DM3EJ7hOXYfyeAaupgL9NpZg+bmKpF3KZ+itYAHyAQ==","shasum":"0b03fc3556ee9afd7e2eb0446868a830aed76a09","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.0-alpha.1.tgz","fileCount":14,"unpackedSize":33810,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb01zvCRA9TVsSAnZWagAA/3kP/0Cg6BamVJ4g/eAdsb22\nX8J9cuctTUsLGxa24uh8792mEjJ9cIbCFUsZzIjb9r4TtzX62kS6sMNr3nEQ\n8DKK5deb+gVOOWX63IGvb9JSfT9w/L8ywBsqMEur36O/GvORznKr1H2VdxLW\nD3fMZ0RgvvLJzZPIOizI2ckJZ7xyA4PmMPfq+EwzWGvWg7kJQVtcyP1orMvk\nsmm6141n8bPflVRzb0Oen8mMAXMXg5NNwu8nlOg42mBFySWLAB0gr2JvDX6C\nm02x8eVmv8xWdQn+PjoA7dlTPSxvTGHd2kEstQGVkw6jayYQo69Ov92rIMlo\nlsAtOnopk5BgG8l8bcP0zlnarW2ofLOqQlIsNZFG94YVHCxaH2F7Kwm2TsEz\nqzHDaCrIx+/2lptonY49PmPrY8OYE27/I11qbYerBxbJiQA/sD2xz0T2ZcFx\nAsY4wyF62nHb3Qqthw0tPgU/TF1B5TyTzhEWLrTAH7q6NJi25V0Xir/V9NUT\nnuLmPMYuCZ6MYgl3slJikuL3HY24HzfCN+zMur/+4gjEorOGI0bzognZmm1k\nNhCKGrIAkysXTBETxp/SKO+HUwE33ReEL9EHWgGZDBBfSefC0h/gNJS106Lt\ndtQtzpdaq3h/EFivQzVHxfXNQ4UWEn0L8iqNh3H5rxrhHALF+IOVjjIFk73Z\nUHaS\r\n=2JMU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXFe27Po1IBv8iFVMyhUpWOkn+QUPh6NcMO+uVRcFSZgIhAPBwK8tacIVM5uhu2gAbQZoU9C7xNwX1H+txCQNo+v0d"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.0-alpha.1_1540578542650_0.636642361733915"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.0-alpha.2":{"name":"apollo-cache-control","version":"0.3.0-alpha.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.1.0-alpha.1","graphql-extensions":"0.3.0-alpha.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"a6872c2f6ca2db03e9f237510b3fc6802d390785","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.0-alpha.2.tgz","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.0-alpha.2","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-TFryFuR/bAetMpB9as9ybgQnrfdpScH/4dWJeqQivMp2U59DPOiY56Q4MZrIz/Aky3/A/RYKhEyu629Y7/DtuQ==","shasum":"9f74d97e025746ad3058dcb44cfe440548161de6","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.0-alpha.2.tgz","fileCount":14,"unpackedSize":33810,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4J4PCRA9TVsSAnZWagAAqJoP/0vfbJXRVAzjkUQilOdV\n5UeGiCwEu46H7oNo0bya/JVgZKP0vYTLD8hBWS9IjM08NYPmTurgnQUo86OF\nBbkwOBGu2IbipaD+j1gdmF0gyN5mx2ptK9EvnJ96DZ5DBrsxcDOF9xyrYoQR\noK2ZtAXhYXzzBbWGYWGowTkrhPQzcPDHgW/yAp7D1GJG0jRVkjk6Tbdb/0Zc\n5fzQM3hcrStAIwQzhpXPG6V+Bqj+94J80YJGVGeTOcl0TyCTf6En1Xp68lKW\nW9OoAL63hRphP//Kfd1ZRYwyCB11BOzN9SJfyI06fF2PcpT6FvK8D+ky/AJ4\nDr20gx5uqbM3hInh/tucrhyI9Ecuh4tXS2B0Bs5S9ilEIODHLpYFFunCmO/Y\nt///Ih2Spi1fxm5K6YUPzKAEGnS8lVlzEociNO5bWjFlKFi4O6FCFcOiEfaI\nLW9Smn8uXGINzMgfoFe2Vc88/fgnGi///NlwwHsoTzhFn5Rg6y2ArekRi+kO\n/nYM+DllxnykENoT0Ws/wRFeFhAv8S29Ihgn6WTIdJ/RCsRSr5aXly+NVQJP\nX4g5enDcmgkN5L6yvZgHsxsDRJVOo1d/wob+9vCk58Iht2hRS7NZQs6ORbjm\no7HjVHpybqS0DBtQbXpYVRB3D7K6euFbA/4NNN385Gkg89Y0bzyu8jVBMCfn\n3n0a\r\n=vo+h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDaSlkMf/HU9fWqB1t91yhv72ZpP0JjYmLc6+4r7d4GVAiAu0+8920yPntFSmZqPv89kfobqSLAc5/jU6/xEmAYnig=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.0-alpha.2_1541447182941_0.8111416929057975"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.0-alpha.3":{"name":"apollo-cache-control","version":"0.3.0-alpha.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.1.0-alpha.1","graphql-extensions":"0.3.0-alpha.3"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"5ca4c07bd5d07e7e753204726983dd7064d18967","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.0-alpha.3.tgz","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.0-alpha.3","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-+EvgNp2Of7Y57YubYfYOEr4JZ1GER58/9lJGE+5wC7QFecuUyYt3d+FCzEn5m/X5uDqc+hnURoksphvw9kIj1g==","shasum":"b9f1433bdd6729443b04b9d089e72549c6b79a4d","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.0-alpha.3.tgz","fileCount":14,"unpackedSize":33810,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4SiGCRA9TVsSAnZWagAAIhoP/iuRPc5dJG9VpKz+qDAb\nWzLXiHpAijfMcJR1739gyxxxOjWoS5RNmoSQPK8TTmIIYKWi9s4b0IfMO4v6\ntu7xUkahtnEX300+HgOw5u06upMFfi9Db9SmjQtmXSKOZF6uTMEA2PPyrfTr\nNDiaRSFMFusyHwhxPDl3P8tjN9/Q6qzIzDRb4Rsu4fXt7jzS8scdWbkVY95n\nOimD8gTqZsSKjUNlJu7mSN/5LaN2nw+M590P6L4Pb5QIRMdfgUPmnjU4UAAd\nGBaoZooHHwGaNxgCQPvNbT6kD7lRixNTwvPw2oDnxHo8pReyBapOeBRkMr9z\nHf/rQvd8efAnvzeUEjzdlY4M6jsJBRdnAsA32lD7R6NvsbGUpMQ1H+rHFA0N\nICVnLw1PLVmONEftQeW0i5rWllHC7IYd45X5lM+uit1RTDI8QKuIi+8uEmqG\naOGyBetEtSosc+PemvkcBMkrMZskEumWoyo6y9cPDG6fsj01KC6ZLmSBJKFi\nCmCmo72dx/8HDkeWZramBybR2vEn7wPbjNmXtQzg6/BIkH2FzouUqYNH59tK\nWKmOOLKCtl1R2FvWu9OQfUA5qNuCmvJletC5o06RWzPXtaqIk4Am6MrjdJBV\nOXI+op0c+ZwUkRAtiU3q0rWOmYZqUtuQr/OjHQ+0vYuYdL9ofVqn7iM6acpj\nEOAe\r\n=4g4F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCa1RQVacVwrZrfZ1W7Pfq+uiMBUqTtqWRknzXmJAkqtwIhAJPbjeXPsOegPASG0uXQ+hk2fzegCO4pCWpr88Iuw36K"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.0-alpha.3_1541482630010_0.9650310105949447"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.0":{"name":"apollo-cache-control","version":"0.3.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.3.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"6bd73b175ff628a5e9858e2a5da1aa9dab5ed348","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.0.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-XtkinmravL9/IEAPXzJod9fKx4iesS0TNBV/619xwurv8eopZkbAiKVZ3WB4rbjoGQpBgEs0bekWIAhYGWLyOw==","shasum":"e01e7b902d097c49b15642664ded9a96713a8578","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.0.tgz","fileCount":14,"unpackedSize":33786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4xAxCRA9TVsSAnZWagAAySoP+wUeoHyizGL6NDNQa49Q\nZgmNp3S9CKZkQqJYrXbpswsBrHPG6V+nxml/oW1X264vDckCgtFl/GswpLQ9\nNkjFuOL6D7ubd2pucdZw4r5V8eyQo6iamLocp/32TE2XmAgC4ePauMHolPWL\n66aPLyr3ychL1fKSjQcXOTY9Il44lNPC4ZgJ65cZXRYxRPyaFp4yfndQEQmW\nARDUpOlv5eoLyOUf2O/nOBFk5GLDuhcpaHqTPnadKPFpXjYhsHXLmf2OGtMd\nk2knmSNhetVertN3qRZxcVAPGPo3K/l7RWKTR/kXNJ57ZFIliHzohQHUTcFA\npErMq3dsZvdG27Ju91mqf5oXSpbQamYmHDKk/9K0JRYPx2pvmQlUVTVkTQD5\nSXe1Ww6CXkvPlMrD/KdPYlGYJBcM5P5fwsFUs0jBDpUnBCt0brgnWZrCJ5gj\nLmih6fTwD+w6jvS/U2rajX7J/U90OZTZlh5z87WaUK+XPggpcG9Z7w9klV3N\nwa1djxAF+dpjCk5kUDfYqOuonVcN7fexfj8gHDaCRytKcytEBhJE3ui6kb4S\nH0kZLb9eQAFTL6i6g4YF0ZQDDkNV2i6vnOxGY1iLzFu4NP5DcQAb93h4SXNm\ntexedPQ1mbFK8NzGpZgZE13pJA9n8Tm1HruJeH/w3c3cgQ6mSSQK1hyXXOr4\nkuB7\r\n=Qv6j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDhJcuBv/CBc6gJGn+NHYe+EIJJ8g2wTvCwkRnTyv91lAiEA22E1rd4VDT6al9OcDr0WfE7Mtg6ieMST2ddyrROjVuk="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.0_1541607472887_0.6385628100513574"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.1":{"name":"apollo-cache-control","version":"0.3.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.3.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"20eb2e9e0353b58c0e445cc8e9b56f3a93d64db2","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.1.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.1","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-k5jIdTEaFbxwsx7kqTfzwWF32zS1qfY2RNby0/z2AYD5Xn37fpfS1cn+CA0SgJC944G/4ybmOlKcmLjqAVU41g==","shasum":"56eeb1c80d380210e0c3078929b7f42c02e16f69","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.1.tgz","fileCount":14,"unpackedSize":33786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6X+WCRA9TVsSAnZWagAAQOQQAIy746uEO9X1RsoKdOlF\n+4JS9BzfLg7SuClmrnRenjt3NWzD14MFkqWkvOC5ntP5FbeaMpVSm8DeUFTX\nW/m3A4tmRL0ntd9jmif2YEsxS+u/sP9fg2CaVlBoX9eLam5v+4p1kxCC0Jf/\n7Z/mWYvj4HgcHdxSP1977hhkzEDQc0+aoUKwOxXCNjt3eLQRwYMi9w9Os0vx\nVMigCXh6eAPOXQ6ECD/6rySs9vTMyQY8phxbiqUm3Y2P9JJYpCBMCDbXpLsx\nmvOkVA7OyhnYDq5FnFfHGQ0lQekMJMDQC0wZaXtKha9xOV+jP5uF0dIIZ+76\n+wWKRBExLkbEiyy5AZnojTfXMMBVr49jm27MhVMPhUbpzh/q9ZLfZFnsosrd\nKCfW3bU5tHNPqjAqyMthDNPQOjTtn0AA0rsbLkEBy/CCJdgYyZU6MyeIk6GG\n82J5ickpdQ0McSJsBpPIJBk1llj023s7tVh/CVAvHmjCivU2jBLtGlQqNFEB\nVqynjJvx7Q6pvdoVVUrVxqjhSudh3xrjJ5hS51p6gtahNsbDCwi9I2h8WsY+\n3VYpi2X9Iq+AeZypE87ROLT1YXT+//7RhCYu/kp4thSoXmyuedU7ZhxL15wW\ndZNRefSO1Cn9RPWY7LJ4KhKe91fqWstjLr9fBvquIETFEiimglKK05kB3PnQ\nGjkj\r\n=WDV5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIElzxp1vgRgHNRkEXfFb5jPuhLWPZrVk73kNavGvnJH2AiEAsF4LjJh8/8RO6GAOZAyFNLTM81CQozXhXvHxyP1c0OA="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.1_1542029205967_0.8750159518225313"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.2":{"name":"apollo-cache-control","version":"0.3.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.3.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"47676e0cd965515554e171ea7d2a99573125ae58","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.2.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.2","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-/fhgCWGEoTsgyA83usy/1NvJWi6hbD4rSGO5jvyNNtMZ9ledOvKUvIdzSQ1r5hxK5yds/eehWXhMJ4Pu200qrQ==","shasum":"fc98781e6df60346a20b0540450d02842c1212f2","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.2.tgz","fileCount":14,"unpackedSize":33786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6ti0CRA9TVsSAnZWagAAhfMP+wZBuKSXQwXtl6WuOkUh\ndBf2qgGo3jFDc5tgfZccTGHp7lO8kr5jhDP1/WgZL8k7NjhCuhXAMHeOWHbB\nh1zywEifjD32b3ke5UuUs4a08/z+o0ObsAahEoIjr8SeAo8YXa9IM+bsvsB4\n1ohUVVSbL89o0/8XZ3ye0Mo5qv6YBXBrJ07T1P9N4FeINsRbRsQbrOrUqFLw\nORWE/KW5dAGpWtJAMvaV0vV0Vm5dhBfzaRu+xorTYSxRkfnG8i44VU12WYfs\n+lPiRqZO0m5us+XMvZDpEsYE7BQ4LoSpt1BxvyzeUTqjZQ5d8zR37FVveAU2\nbJulSFSZ09fZg+dKesX2dX0xsxOA1LDxD+e0G8ZBNLkAjGkO951G/Bq7kfTl\nNw1xxwGmm1Zdzg/3LfQF9jOIamzlYYK53UVpGMsFS3lQxTaha3LwzaAHxIlm\n2YBf08/J/waWMmE3lF8+r3P7r0F8FSQUdZomBdWFYUuqOTUWhXOEvGW3nOWJ\nuZ4rdQli+ogeCKOFr7p2rnohXgjFhfYje4eH7NDLcYuP94mw8zyafZ/Ntj1B\nX800ufFJ3j9XF1IK5ibv8J0lT0bTBVXJK4v0k6gJz0LhLtBBOsi4Hk4Qy1Fu\nY6Vu3g/ghooo9z63qllu3qlRQ8ofrmmEkad50uJgvfYODNM5LSprrcSCmDGo\nDreq\r\n=J6j3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGNKaie+fPB6z7oITq6ZH7OPocf2G0bchNRBlwJP+7fVAiEAirSxQIW3trAla/N/fD/hUOUrDmqCkQXS10GAPMF4g2Q="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.2_1542117555777_0.3198205819119444"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.3":{"name":"apollo-cache-control","version":"0.3.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.3.3"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"1f3801c94967941f539e4bf925c92134b56478e7","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.3.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.3","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-X6JhKfIaMLfl2jpsK/880BflXA+2lmm2sAsOZL4Bn2VrMsDtOssI1Ij9vNRbch9k9cA4WJvKed7Sql/wUIa1Eg==","shasum":"ad71d8f786e06f0275b2432004c15c2d37c48484","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.3.tgz","fileCount":14,"unpackedSize":33786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/EJgCRA9TVsSAnZWagAAvY0P/iQxA4Ivkp+ARGNOWpLW\nTKIBAohS76M0/wGAoXyDVX9hjRFXr1vYNUeIlmHWovs7jdN4ypgcixz7q0lI\naBiUG2s4bXVywYqfFy7w6gpKZQpaLUX9oDCPlwta7H5CiDngDYh5BGeDGmFw\ncRfLl7TwEKICw4ISTH9o3bzkxDb0dPeGsEhsbg9qaIzEy07CXBTAVX59EOyN\n8BZHSsiTnK/IWhgTAtKNwBueK0oopgkwO6NCR4+qUoYJ2fkUI0FnZcVDSf9Q\nTQVBKSs5CNNVxvLj5qSaWBf8QWCPbDYiisJVod0RYFqJlEtCIsZgW0/eTQOm\nFiUBHJU8T+0Hz+iZ2u+04IyJA6MlsBGvW/7Esm/ImqvNiEubR0LFWaXsYbCz\nrDwbb9jpFrjKFlibKCCUtoVuXxksO2Rz5fVjFDPWaHP11CFNbrNW8KT+8KtG\nsTzSR8ZrIWCHKpNuyTFJ6YtjJcrZr9E4yFI5t6NzwfTLWu+4RZMLunJUyYk2\niHmGpbBGX2nSWvvwRAIcu3uB0EWaAy34ZzjsZQUJBouGhYgEA8+YRSXJNkcg\nL1WGPyfBNRQPJ9A4loEeGkqPeBHe5P/9zu7o51T280NUnwuGQkEp3RetEz8i\nB99wiBnKqJyP7OGETzYn77qrHqhAam7iDiQq9rVd9AcQDcs/ZBmSdJTRU6wk\nBVIi\r\n=10z/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZpPK7Gweg8enmpQypDQA1sCy7zaVQBmf/AMId8jkJ/wIgashV38hnYUTYHuVBrTLx7q8HVPGhANzEWQ8crxkJaH4="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.3_1543258719580_0.2349033241095384"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.4-alpha.0":{"name":"apollo-cache-control","version":"0.3.4-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.3.7-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"ccf0aa54769d368399fe643efc2f529e20fda4a5","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.4-alpha.0.tgz","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.4-alpha.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-fWRSjP/J/9QjsFcPuAxlaXkHc8XHyXX4Z+5ccDodFUZ7cQ1EAq3D7Vw6QWFfmey0F7hNEPhQfwPwf0d0rkpo6Q==","shasum":"b77faed1c5a382374bfd2ef38354387145cc819c","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.4-alpha.0.tgz","fileCount":14,"unpackedSize":33802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcBmiaCRA9TVsSAnZWagAA1x0P/Ri/3V/PfsvrGH1TxbK1\ncHRzQb2qZNYSaSjUNS1N31VvuJCGInt0lyNV6y81NIaj5kqy2GqbHeX/gi59\nv0M0YAysroAFlYKQisvkwGn1mU+NyyIewFYiioRrAnJh3jKj3tWAuugeo1kO\nBYt9HXkcQVL+M0fOjvvpyW3zsZ8DUK0P4ayHf7rTVZ+GTR6JyBbZCVH2STeU\novKummxmmvwjhKqJWRkzZJYNCn6xc6sDgJ2q/GWwz7bo6iqzQh8bTjEtWzhm\n/fqB3YiQ0Bf1Xb1djENeLNPga+wq+7EBc606fWSzRHi6kdFcPM9Fko+lcyHO\n4dLO8Q8LTsxYE/rV9hxyBoE7gNQ5AOWnRSJSAGasLjYaLZUWZCcovZfP60Yg\nSDULFy+biI+kzHJZkj/aP9ZH/8b3n4cjFsmDsahsm75O7pmUZvKJD8ffCz3M\nZHacqsCtLMg54KyE7f+BzEqH9ffIH56iYZSmOgrPwNPfC7zIysyKv2xuW90R\nxyTnwU2xJPqUDIMJ4auwJvQ0n2T+xEpDrF81h5VLzPuz2Du9X1o21vGzSrxN\n4ig4vFI0ml8GiA+ILwR+aw5tNEk3WdMTdW4El/jxxc1C7W+ZBZKuj2Sv75cT\nXsWNiOaTSXhLrHsec+S+AR2lWv6PNRBqUiJORmMEoaFw5ZpjG7TMvIxeaigE\nhEE2\r\n=4O0k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3G+5uJ+r1CJCQAtMw1gyvipESEginjcSoKjA9N/KbjQIgL2K4J4LRwAKojasfRaR9l0tLHSqnmXJgVLW7iMen47c="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.4-alpha.0_1543923865867_0.09302973295197337"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.4.0-alpha.0":{"name":"apollo-cache-control","version":"0.4.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.4.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"ef31818629b673e3e68563f773a1113e9e9ca750","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.4.0-alpha.0.tgz","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.4.0-alpha.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-5sqSkGsJiaREWHMr++CgGxXPYMe39NbuEVqZdbo9QOHdiqe7K7PJRRZYrL3E/9IRh6l4olVcqUZHsTfJxMbgkA==","shasum":"693cba774db6f7fe2f8ce5b8ffd7ec83dc9ed43a","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.4.0-alpha.0.tgz","fileCount":14,"unpackedSize":33802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcBtG2CRA9TVsSAnZWagAAbYQP/RCjjAdzFpfPU1iE2fl8\nbmp6Z6amMSftpPlL3/KEum59GAZR2skdmPTWUHDON9u67S56Mbctj38pp6cC\ne6/fHPFOFOs8/5NfyNCeFwDQQ/2HaF8YMNjA/9Y9DTm4HliFQIjP4rITDfsI\nu9L6kR9AgKBtSH5/42de/C6M/csoeSht+YttKeD1mEYlgMf+p+PbTyGZ/9WW\ngzGJgXV5MwIP6aXOFU81VP6D1YoMabCTd80IbLLHUY93ytETFj56KZM6Zn7A\n/yffy5ZDv2UR2zryesSwyCSVQE8UQ15FnXnqNCvGXz4mtyooSRE69OvaWM23\ngmygniEE3j8nGu6nnGLaU3ed99wK3Np3LK/usI9nwlKYOvb/Poi5Eu/6jSlO\n0R8E7xrQFSrbKG6QPnQSvaTxslz4RI7QF/4PKAFDBIYnwHAynHDiz0areQTN\n1KDNWp4cNFhpD941ulpyOvfQjlZj4KY0bHc52wo7XF1UckuA5YWK8CDtlIhv\nGsHjo33of0FjF/HoGdxsG0Eusltw8aMKY5Py/XY3ccmXN81v0Fnev73qLxn/\njuy+/EryFJ8kFEPRFcNN5I4a4nRDAmScliNyiW1q5eEwN1PtFQAJlrk4HvUn\nGMJOgDZqh8LYBGLsTAz+G9NptCBx2GlLB3lHajUIzBR4qGB2zPX6K5AlOP5o\nDCWk\r\n=YTmW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClyufRkrXMky25hMs2n3+5MyF+Nf8Q62sMXXy0ORP3iAIhAK+S2ZJkCTrSiH0KmF9PE/sGVtQaa1Vl76C1yAR4+xID"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.4.0-alpha.0_1543950774226_0.8400234215523177"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.3.4":{"name":"apollo-cache-control","version":"0.3.4","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.3.7"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"d7e7834633ea9f703473aa432247a3523c86c597","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.3.4.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.3.4","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-9Z9cAfsTQELGvn0CZ4lEg/Kk5WnjRafU58Q9lMi+XOqSrYyX+MRe5pX4dI6jMVMTWfD0D7lyJZxAzoNrF/yZHA==","shasum":"286344a417f5489ab034f9fb22ba106ebafbd666","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.3.4.tgz","fileCount":14,"unpackedSize":33786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcElhxCRA9TVsSAnZWagAANp4P/2R251kjeXa0+aF5zyex\niUCwfkToQWvVl3+WfnCo6fM322DYxAfMn9PO3adt42gVubee4CX5SQDscxO7\n8fXIQwztSya+9YMa5UjqiCn84M6GfqfDwv5+VxVYEOj/USt+zz6PyQNldU+N\nyy9bukVDwQ6/4iFbKX4HUgKALxH+y8+wSsXCPjG++UL1BSKhK40TbnmgLO0u\nHqFsErmEe8ywyyDiA062XNeez6J7iM8F00QAaW5I+CbJBmRaC3hFm1KinhWt\ns120ryTXp5SYMjZcUP4X3QdPNTvmDJ/qiC7gLHKLL4ajlQ8mPi3h5IvckTSD\nyrs36CudRbU6QVhhpQvKUorTHCrES2tYJBQrBvS6RjdGGjL6YRuNc3buNzIa\nrNR8i+TM6w/q8YsVheiIPhrtRza5fPLxAzWCm/mRaIoTxfXOzCIoyJHbSyaO\nzw872KTwMiQWG5Q/8KtkgK129YShGgXpMmb3GJfzeptMMMZlqLBL4HKXAG18\neKti/9qfWVTa2VLQNJeqPoSgVkbmbJeSZgtNH24DYMdaHWwPF1YTyjb8bmt7\nV9HnQ8uAgy/5SqtV4lAypLIWCHYXFNZqX3e2yKAwYCjIgmJuQEF06IEwUC10\nEllaJKtRdx6dtkIUGdldJMqkjwbj+HJwqKbqxU5HX0hpg+rw/zmF7cgwi/Sb\nqj8T\r\n=Lppi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOJf6kJZ0mrM7YMX0yOkQhomU6QSf7yPJTjfK04OwUKQIhAI7cJcUbkivfzY+MSbH4bMGlt1KQkbRHPYocIzrgT8Wr"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.3.4_1544706160641_0.03859648493071588"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.4.0":{"name":"apollo-cache-control","version":"0.4.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.4.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"3545c32e2a93ba3de03cbf2751db8e055835a392","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.4.0.tgz","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.4.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-WuriaNQIugTE8gYwfBWWCbbQTSKul/cV4JMi5UgqNIUvjHvnKZQLKbt5uYWow6QQNMkLT9hey8QPYkWpogkeSA==","shasum":"fec343e6ec95aa4f1b88e07e62f067bee0c48397","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.4.0.tgz","fileCount":14,"unpackedSize":33786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcEl7oCRA9TVsSAnZWagAARHAP/1Lh6sq5m9n7qYVpbW7f\nAki2kKR0CU349/Ji1z+dV9rmlSIq2nh51pl4z3kDvWu9IgYf9+fgwWZsBCoM\nkCqNF/8uPKEEEXEHjsHmlBmJlc1r92URfVxUPsSffIBk3WPfqDH2ux56wdXZ\nWUYIITyYrI0mSwy9GjeFTXoXPqLPzmDWWLfA2sq20YjKQ/yoGWDf46C4tNeT\nBgORpWzXNnXrYkgltuTHN1lvrXen4Q1fRbVxlPz0OxL6aPiY2y8Z7NrhJaVH\nBe4wU58wlPLbl/2dtENbCldi31nwEIixRzmpaCLoljv8TaJ8tRwfsBHdQ7+c\nIlByMteDuMJ27+B0PiUrBUieeyAabK530xNDVqd2inLw38SXNr6kJiPzRx29\nuag+mhbOXFwE5iHtTZ9lRGgMnyHxR/mJfzSZDFL55RSvuujges3U2Q3RGMpg\n9Y0M68oNDUFlC04gcSGdA1IwT4KbpQFDVbLvBsNXea6pl5Z7aIeQBAWSSFmb\niJ1WivmfArrw8jVaXcHUVV62T7lO/AE3U1xXXqvLVJzkPmS7lGilV3y3M/UI\n40O3rkYQvJ5hW4PMUrWvqG9jFAFWoUAN2rTV+qRNaabFky/spoJlXqMH1RjI\nEgY4b5zgvP9IJ3lBiA6gWkiVqmXuW8sZ2lg3HbGcVMfoNpeiPXCXy08aJFmG\nmIaq\r\n=MXji\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIL3mf4po18HKqka54F6WRpHNNe+EJhHtF3kJXE2ChMwIhAPiGMwMvVRfVG5ndTbmJDlVmcVgln9YiqlnWqY6WRynw"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.4.0_1544707815967_0.09882436738358047"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.5.0-alpha.0":{"name":"apollo-cache-control","version":"0.5.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.5.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"7697623789a0c07cc65b496657d3e85bd96e1408","_resolved":"","_integrity":"","_from":"file:apollo-cache-control-0.5.0-alpha.0.tgz","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.5.0-alpha.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"dist":{"integrity":"sha512-vb1tU8+oE6WAPvUwz18SBvxKUfG6OMJlaIiBLFQ+1bFkqZneTil7A3L4QgRSTPZKus7ckCZ9WR7DNx/zj7hn8A==","shasum":"aed22e09121b90f6f5ab24a38429c2551d1d870d","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.5.0-alpha.0.tgz","fileCount":14,"unpackedSize":33802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGQ7OCRA9TVsSAnZWagAA7Z8P/3XrdUA0rb7jMVi6OlyU\n3kOxQuZvtyoj5MqKp1VnGMDEugLZ2qd0shNIek3to9XIjFBuLoGTQtzjr30W\nrjzHn/Wi5crm1fHg/Jbwl+afN5R+HsNUP1IhsHhRn4VY67J3DKiEDutQ/p9Y\n35vnUwhKQJ3HS/ybGzV2W6oqYkdaXTz4lMqywXSf5L8rKMAs0ICmTUASK9IE\nzZcAGyQwQY4EMhTQHr9gJ0zxRJULERUs87n8x7uNYD4lkpBMkEWJQ2qFhyMJ\n9A6SgxIvPevK1DqQfnZGFHRjR4aWekFquM/WPAw8k7cGk5OF8kmXEBvOJjY3\nnaJj5td6D1Bw2FKfF8GccOHHCYbn8n9n41RY3tZ0AqLARfS+8VAj7KaLcnXV\n3uRR48AhgSQhQtlDFe7EJVn5CNs9SbWesS0i5PasXGffwdPJjFn5D8frWvGJ\n4H4WzKF6aErurKU7XxmfMGTlQhhlH/uy59oVxzHNE476HqNMIv+LXFdnUg1n\nKyG+cnU/KnmlLSL+lTg2TMaPrOcAB9Eacqlz1v7F//RWbjtVawPfTgzg1cKf\nTI271AL/zOathr/4O0yfJicQkJL/cT+BTeS5vwhLFPUyFqZU+0p/eY6aaeuV\nuaZFjLttiX2UtW3CjlUsTuxxK8UaFRVsPzte7Gm9xjn5b4GAXGcdqjVO2sKM\nN+XC\r\n=IhrI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3NrsPU0jG8S/OT4Lb3ux9noUv8HY45DFCFQ5ZhiOQ9gIgZB91yqgzN0oNYsVhEmUMhRUG6zirILwgcG9sbfOJqJg="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.5.0-alpha.0_1545146061415_0.37030169044299033"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.5.0-alpha.1":{"name":"apollo-cache-control","version":"0.5.0-alpha.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.5.0-alpha.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"33d1f828141826f4d874aa783fa302e381101ab5","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.5.0-alpha.1","_nodeVersion":"8.12.0","_npmVersion":"lerna/3.10.5/node@v8.12.0+x64 (darwin)","dist":{"integrity":"sha512-F6KssNnRrwHRSb1GXgHQOHqXJy2caZc9US2aN4kLXZpVp1byz94fGCFoDbmhadnZq1grT2aO+N9YoZF80LUYzA==","shasum":"c6f2803317d79cb2670936094721f89b44169d02","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.5.0-alpha.1.tgz","fileCount":14,"unpackedSize":33802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPxFpCRA9TVsSAnZWagAAjCsP/29abhzSQ0/eEO4Zappo\nE4O6DHu1nKF1A4binKekytzY9JqWAVHRo++VGpeOJGDDfTIA2STfTZeOfeNX\nHitCgiNpLWJBi8qH2qvgZc0C4zmP7xLAt+3mUQFf3zZF/YGJuKmhhRSNZUtp\n0D3IG+dTCusgKW13/1UMQ4cXEKyIFaJcAkU/Jlq0gOo16k4J6u76Sbekhfxm\nNyS+TRNcidt2xVi3oqgiWNb+WeqmkZ1xHnkS3CYiOC2WK5g1H6wgli+ppl6s\nlM01nFhfajHwHVQze8xSN9gWHkX6j4fIBCedZc17pKlXD/s4jUV3u41MZk7r\nUZTF3YtK0iPQzMNVblNyRa22DQTjC9RfUgtMcUckw5QJzIj8yKvYd+o+DSDF\nedL4i8Ys2GIbMwi6vhkNm8eAKWlV7lO3Rg9tsoCpjVQH9LOekpLmQpmWOL41\nx9xh91Vf08V2gDQcwCcIBKMCNAGix7PoOpMCYP08InN1CObHiCxNkf/kXZUW\nAMGZoz1dJbwYGn2Ki5ZCk6GZC56Cn0JAYRr2Yq8ZTEGMPEqJajwGPbARlr2Y\nnJLK+550Yhztpjaxhx3zwfEaH8o2KRxIiHp7tL3SPA7zs5eaqGBrJQMYgzkn\nlFjff//8wt0SyYOC8cPbV622x80sZalfJmE/bsSVrHDUxmf27tbyaQ1kCUMx\nwt1p\r\n=VXV6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDav/mIdDGBHqeQU87VDbOQgyCs+SyGtanVCbLFlmnNqwIgEmXd+UVozzeG+jvEPU0QfY0bL8p8pzONN4e6Y6+dQxU="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.5.0-alpha.1_1547637097148_0.7277940451229761"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.5.0-alpha.2":{"name":"apollo-cache-control","version":"0.5.0-alpha.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.5.0-alpha.3"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"f045a4d0c94faa61433a933edd34e274319f8f32","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.5.0-alpha.2","_nodeVersion":"8.15.0","_npmVersion":"lerna/3.10.6/node@v8.15.0+x64 (darwin)","dist":{"integrity":"sha512-KeYoluLAsLAvVnfhYEviy7x4QPJgiDdvQ5y/8EtpAS39huE9xeZvS6/vZ3d/heMIf/FSvk9zyrE7hsGPziSk+Q==","shasum":"2b2c96cf4caaa5f51644ace8e060b006afe1060d","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.5.0-alpha.2.tgz","fileCount":14,"unpackedSize":33802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSHMrCRA9TVsSAnZWagAAwpQP/016fYCMtsnFOgNr/ghm\npk6WQgw/owqkbYuheVEUGd9LvUJq0oEIAJrShO36qGGjsYwQ8aVjthhSJCVc\nHFv53JSurZY6JCd3GiSWOlyxY27in+VdJpBRLkZNJCq7GBS0CisM8lkoD2rV\nu3wqCDaAsfTns6QZqTaZ7afWKSgPSvRcGrezgh4jRdOjhDQl6I4lZoPFacw7\n5iq4zPZg7P9yudBLNpz6olfxwwU98Jlbb0cO0GqsMzD96ZvZolwzcAjn+775\nqU+0i31AFZY5aRCmzAUVh2Yy7xyczn6UZ40hUPgSuwBjXTUVho58L5x+hWbR\n7eYNLKNLWsa1YIM+tb9t2juSznzZ/pIMnthYJpzB/w+2QnZBrRdHCuTvY5wW\nm3kOiuBSgPvOQQLbi7D9BYI85aBuAv4QSlIIYO6Ab7V/5Q2TpWM2CNoflahM\n8xLg+fvq+GdoHoZcQ17GH2nVi+zsaNdAUwik5Kosipr3fiS5BxZpda80kE70\nyKG3qMGKGZFqd6GwSOx3cCt/z5WdGmWHXONIW9xRh96BpqRLmZ4/527gLYPs\nJIYrbhIQ6IxVYi5O3D8gUpgofElvWjV/Nnz/58QwwHeAQzGQtzg0a2DinACc\nS8cWsSMP75qkO6cr6BbbbmWy0av3PIZYJexXhAiItlIU335YkIfyTIAQZBlh\nOMG2\r\n=otlS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpHj+E7nDwWFLYTJHTz+IeBZHadolbJkO6PC2AtjxvbwIhANkUCxUPs0OXXa9oeSarLNRNwA6Yp3Ry1VfsVf3tw8mS"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.5.0-alpha.2_1548251947077_0.23850878888628224"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.4.1":{"name":"apollo-cache-control","version":"0.4.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.4.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"d48d0972c5730ea63969daa892f58a34aa1db543","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.4.1","_nodeVersion":"8.15.0","_npmVersion":"lerna/3.10.7/node@v8.15.0+x64 (darwin)","dist":{"integrity":"sha512-1wGSlIkL1V4S8qmwnWL96F9kq3m4WTeFVUtZ/L2M5BsKkl74YqLa8+UzORJyGE3rfyRbAGa3qg7p21f/DgeezA==","shasum":"24eb3fd46ca7b8a4a6665e11d3b4ec53181bcad7","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.4.1.tgz","fileCount":15,"unpackedSize":37645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSz3hCRA9TVsSAnZWagAACJkQAJ/OVuafROyhDBYTaGzW\nTl7wR0zszovSdMzNLumnQpmSyliCTXlPxFYkKJrN8YeVGYLSHtYtJRvunDiI\nxzzmIVFwk4DHxPf5tav9xqsaT7lSPzy92R6ecidkJTOZksBU8qLmkAXahgdf\n90S3kgD4Ya2KspTWwJl1r3f8p+WMIgK0qGsdDsNslxP9PIqObBaB7yBqjvwI\nqfdosHwoDH80ybv23/7mD6DOl3PLHXrm3+S1/aH+CLz40ZioySpUoQhgiXaU\nnRa419nJ6b9MzOcpNFuj+JFiMGvjkUuEmeekrUmglvoJizw0gUJUxV7o7mQE\nsM99/HhWA9EQdgVRcx9FbN5hm1igN6pW/uvpBJs4c7JwqNt3Pc03SdQbBBJa\nNa0kXIyq6PkfK/bX2RCKDkPTgykJ6A9ESYomUAi5bDAOpIvuyvj+rwr4/dg9\n0cIdBb6zatzBQ0aXVvB53CESSZwar08vMKxAnccsuXHu8pElLdD1/N00Q/ZE\niTa4Vt3IoF0QwUBcE1NgM++5S/vYioa2NzUkWotiifalPQfdCsBphLOVfHcb\n48mRrQrINHEiI/Op9rVzYxWtTVkTOgxLBIgj2U1ycsddCEeovBHiD5QepUFt\nweTpoUiM34KQOjuPBvcGyMKzv32f4d4rcVjG73UOWk6G9StvHoU4EfzUcDVD\nNH1w\r\n=6UX6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaxnMSGPfs3V8UnMnzW6nIjCFjzloPmNf7uKKRk48lngIgcNEH8IRgtp9m0JEsq7CQ1bjOIda74QBYqdjxb2aY1VY="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.4.1_1548434913189_0.8571191277847605"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.5.0-alpha.3":{"name":"apollo-cache-control","version":"0.5.0-alpha.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.5.0-alpha.4"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"f74610b290106f31308e36e507386ed2f352f3bf","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.5.0-alpha.3","_nodeVersion":"8.15.0","_npmVersion":"lerna/3.10.8/node@v8.15.0+x64 (darwin)","dist":{"integrity":"sha512-1T+jeTmGmrvnPQ8hmCbMe4Y2GrmiaQohL+50KNg6ZYbZ1ShNehDDN5ZKVW2rk/AXgPB7noCI0ur8bYhQawsHBg==","shasum":"60d17b624d1ba5772d9173358bce49b30d2e8340","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.5.0-alpha.3.tgz","fileCount":15,"unpackedSize":37661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXBANCRA9TVsSAnZWagAAUEAP/3kq/7COjR9EmU6SBpT+\nVPEOK4A4rAuX8LvwDru9fNnxytnhk56VdjyjZVSFma7f8qgik7lIDGpgIgcO\nBtVtHlIwF/p96rW3i2fA062S6aMZakym7BCHujOmtdfGKd0exz4GzGzfVwTG\nqVgAb4mSqcgB27nIuvQMBvK840BTaKyNk1vUPkIG9VxhKUzLQ+dqBh0qXaRY\n+9O4H298OhcRbvBjWmk8m/iIGZqhlTN4jTxmlG9Vw+ZSDVz63sryQYJxER6G\noWdtFxTGCt62hRnqCt9EGYRfFFpISG8JJTiQe1XV3/H3zbgWnJyn3K9Hi7CA\nD8M5g6Fz4XICXMeTFFksNXDpQGR6Q7kREkoT0+3rfLpaSLGlnqBr/uhaQ6Tb\ndC3Y3CW0Xkl6FmgXeCEXIoBOn3fox1bm5Rc8ejOGW7Ie/j30sFGMAZEMty7D\nOOtt0wuo+JZu8uVq5zQymm0HDBJKjYkZ6XIYAI04P6bcQWAB3VjYWKtuzxm2\nE13hSm6ruJDx+DtxTbhZRlEuqkSHpTr4lZusWDTZSmbKIDe2UG3twUc/ikg2\nLp+fCjPlOHkLgx6VyvNQuX6XXLoXZxBySepG/oFRUw5SE8HYgFauCyUsEfjm\nnDFfhbMDajU3YedTVot+nsISUD0yal4vIMBqEhxSRHfPadlmi+O0AdqfnMRy\n2oaR\r\n=Minh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICJYhvkaxt7Zpm6AfMdWVhSYGkavh7VlSWDiaBzJDEN+AiEA0z1mep4dpJx/lO5JIRSSMN06dVN6PBrAke7Uw8rI5xg="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.5.0-alpha.3_1549537292496_0.4765738082855706"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.5.0":{"name":"apollo-cache-control","version":"0.5.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.5.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"a3222ece11f04ada75ce9c592efcf337396951ec","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.5.0","_nodeVersion":"8.15.0","_npmVersion":"lerna/3.10.8/node@v8.15.0+x64 (darwin)","dist":{"integrity":"sha512-zu26CFj7CboxLB6cckZQEiSUGXIr8MViEGIC5Vesz2yd37sjtevMfRwQhxFuK0HinR0T/WC3dz2k5cj+33vQQQ==","shasum":"78cfefec57c5c0a9648137e3250b91172998061e","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.5.0.tgz","fileCount":15,"unpackedSize":37645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXB/PCRA9TVsSAnZWagAApuYP/1J9vHeSGb5NDxp2u4uR\ndmwgupN+LRYJkUs7S1/bLvjjpD7DV3CGO/aRbsmcm62Vj29he3VVRqvjll+U\nPnMI2Qy9GhnSmITofo4clXFqJZ89fmGZhcpICCGBG2srxRR69zJ+o6/czF6N\nFPCUfiEMHkjR/sL8TQ3wTFAy9LtoT+0DYF+cd6LmBUbtzg08oOPIEW1d1BJE\nP93WC4g2ZImFbr+2Hy11soWvq8bg9S1VzSw0CWLTjf3/3R+x9gePx6sGdEH+\nt5figyEcgVNSaP2Bcg+ihh4asI6/ffF6Pmq8Ms+3ZsrvA+RBaXhrfVqijT9K\nfxVNAHYDztMKqWTw8sQsGmZXrJwz2wmHRkNpULHB/QXEO4JIf9wUyGtpMEfy\nu9uCFxmH09Ok9cAf8DzRdvt9DWrCk88jSGrDMkyWH2zgAxuSLdUFbgUjga84\niSR7DdEWKjU0lcXtrh+KULlb9N6mZ4m7dxBmprhZEx5cZdVMo7gkLYs6YTH1\nciqGmfqkztXwMlJfNLzbri2wk43avk0zKBrjYwm2aBgqK4h4pXFM0iZ3BPOt\nHL7aUshCM5ofmdS0u1eykLD0UbfuqE+WOI2Z21ZUn7K1S6y0wzR4EyTYsD35\nCxiLucNC/RdamtKJ81mttu6kdNPpFwLrq7YhJU9K8nlttPBXqHM5QWEaprdf\nq8Kq\r\n=BdMr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4M77+FNNwWaTgDxvr4EAnS7P7xocDTWUqIGSrtfX9nwIgVdEmw8aQIqDoW/JtEYkpOu/2HSNo5WqNYIUW7drG5Z8="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.5.0_1549541326888_0.6081516520925996"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.5.1-rc.0":{"name":"apollo-cache-control","version":"0.5.1-rc.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.5.2-rc.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"f988a30e8c655a10d33cde26bdae1e4c265cdb60","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.5.1-rc.0","_nodeVersion":"8.15.0","_npmVersion":"lerna/3.11.1/node@v8.15.0+x64 (darwin)","dist":{"integrity":"sha512-zViFhiLCdtSC9lOODj4iE01qbCDSf7JO2bg3AWAKquSYYDTMHgWvH1thD6O80kpihKVxZvkJPsVPCh5ystkGhQ==","shasum":"c91b290659ab366e34667060fda68c07d86ddd34","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.5.1-rc.0.tgz","fileCount":15,"unpackedSize":37655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZWpICRA9TVsSAnZWagAAH7YP/irNcmdHd5aFW/XS3aED\nmrzy+gvHukChh0P5XoNw4J1Zqad+AERJziwNeRd/vX28GsEERMSffELKQ6MP\n66IPhbtk3yDGnQnvaZXZWPHjoIL2ZAtVktJmG6PhXklcqi7s+M1Henv7K4xB\nUgDPiPNthHyXni7HyGqjl/KwQScKBX0CptbTi432tg+2Txc1Idr9ewIx/4v1\nlJ0hfnsldCFUT0w+UTbv0/AdQYlUA/b1z7Qi1rGdZ6Hge5qK2YzovbJ3PsQ4\n50OMdZGyW/egkw4mye9jeL5mC9CwHcR5inPsNfOJuTYTA1NejrWJprPeEK3M\nKvH8rUJDJWU+/HFHdLQrzTgSYW6VG5bVow+4Djo1mtAnQCXjaRv18kGcvmq5\nxwL+ZSsMqmTeT9jKcaCAvaDKa3Ti7VjhakpAfM0cCuCmJeqG6pKKTxIz6NI8\nt6kAOL5vGRzAKPAgqxMu66P1trJR7VGdJZJStawyCgE9GJ18wrBr1J6y3bzz\nqf47vwk3wC2t9Awky7RD7e1eapnWFZZefCL0vswjpvMOQJ1bMo7zRRtepPMS\nHcLHMw0HPP91PgQqsnf2f9Ta3nwFI6JmCxTPpqNyE5MQw9GmelKo+Ww4/cLd\nvyYp/M3EDpPntvOqTSJ2f5WDhQEdGg1kLYElfJiKMzElECvZrcB5J3YrZpMa\ndKtg\r\n=t+e9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGTOkto2o3HgmZBE4JEEQHlKhNfuRuPyeLbvb+qCCBSwIgIiUZtJD1RJpfPd0mGABo0X3ZJztNCO2eKXzDY0znmW8="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.5.1-rc.0_1550150216179_0.11987922302736509"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.5.1":{"name":"apollo-cache-control","version":"0.5.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.5.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"c1669c3d74ae44088bf3bb23cdd9132270b26ee6","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.5.1","_nodeVersion":"8.15.0","_npmVersion":"lerna/3.11.1/node@v8.15.0+x64 (darwin)","dist":{"integrity":"sha512-82hzX7/fFiu5dODLS8oGieEE4jLjMIhIkQ4JTsWj9drv8PZJltl0xqORtU2jA/FottjxfYab8+ebi3BgGPOaqw==","shasum":"db7e86cd7ede6cad0a2e0ea97488d9fb5c33d913","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.5.1.tgz","fileCount":15,"unpackedSize":37645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZWxnCRA9TVsSAnZWagAAfvoP/1nQUY3H6dDiV6tdYdFI\nPbuJMP9FuFQUzC/jL4uqYOO5A4s71zrQkiuMtftiEeqMZyxPtiFqnsmJVK7r\nOCJO8CZBWIEns9MH1/w9PTdbhvANwNsNGi+M7mH39tAtJZoNg091TOJR9GHd\nBaTA+ClwmYX2+MuRcfxoCtkFUCiRXFAxuCRi0hu8l9yGfuKJquvgZrVNwZoB\nitV/bSMXKtzLaOrZ0BDLizXzLTL+W7j0rgxdlEYspmAPXNYd46WKTFl7BJOC\nTYOP7ix2pBd7aBA49lSEMpANKMc/YokIFCnmxl5mZFtHyiVoismNJYEac+bE\ni/AEHrMgjPuUeCy6uU8aZ/cOh9HwqB7OQfP+rNEhfmYMz222b5sXC1q6qDl4\nYi25oVf0v2cL9ucO9W2vwjmbCVWRMgg1WYyJWgHogx427ZlM+k34nAalvgvQ\nUWL7tI7oNgkbtHbuRxCGO6nAB6txWx3p64yX04HaZx83q2JwHmOGrrB++j20\n2rI8ZjZ3yySN7Ha0vHGi322Pvbpm4dQS7XSuIEmjMYoaDHWYEYQ6xusJ03lO\n2SSVdQCyBkFk1tcJV3L+9bDth8LGAeSrC7TNhKun/J87fknH+Pb8Uk/GuEHx\n4CfUw0d0jfwUZN8l335eo/G3+vomxDwXNYC4XpqSLxKIAUsfn4gNi29MK6VO\nFbjS\r\n=AuPy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICvuM8u0zqM4lCzzEQvNSZ3Sg0etOaQ7vDgqTn9wuXEfAiBENp31CRjFcn/iXE5b0OKDeyqEh4Eup3jAfMOrGQdELw=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.5.1_1550150759260_0.19751512426803064"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.5.2":{"name":"apollo-cache-control","version":"0.5.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.2.0","graphql-extensions":"0.5.4"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"879ed190349eded2221e5b9827281a4f6ae86660","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.5.2","_nodeVersion":"10.14.0","_npmVersion":"lerna/3.13.0/node@v10.14.0+x64 (darwin)","dist":{"integrity":"sha512-uehXDUrd3Qim+nzxqqN7XT1YTbNSyumW3/FY5BxbKZTI8d4oPG4eyVQKqaggooSjswKQnOoIQVes3+qg9tGAkw==","shasum":"47931ede0b11c64d45429850c274b30d19322362","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.5.2.tgz","fileCount":15,"unpackedSize":37645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbux5CRA9TVsSAnZWagAAn1wP/1eMwBgRdy7NsaSIR9SE\nFWkjO81FHwsoMOz3nRSVrqJEF1ovFAOU//HkdJP7dnSTdQ8BtIlX7nTvCb6N\nh8KvNQVr+RWxqmat6PPCVhN/Mhtuv+tE/SsqDOenRDjB2auB8QTOsWX1UbEj\n7Ol++tSosy3qrarxOxGX2DpStYb9YCETrvHdX4qIcsbYY63Ej0BAFzZ7msgC\n1O0XUrVEVYEdbzjYW31PowVyDWNqsyVbROMUPn6k43teugV9ObpWk7p9XX4N\nI9tUeOb6/S0PYgRN/1EHBo3kCDwrieZhhbz8dgy680LWwgR2SQZzlJclBtKc\nFWIe43OFoc5S0CaWZG4EoT2R0uVPavkWBiXYJoeM951uZJXcXjNf8tT8vPQA\nPkPZ1GmINMs5W7EbuT4zB7+C5SE6f/GW9DsXnfv4h6SU4FKdR4vTpRFPLPw7\nLMI2yX3lcncyEtvOxGy0TvpEqtRct82IEJTsSL/VKfU4W4lTGk9/i2+ULFi8\nzHBMtj1raBQibfyZExm2e9ELBDbqwwoO2lIbfZnkFoYZTmcGDZ/9BJk1yEVY\nDrHJNCzL/I82saXl95QTJpp3qW32/LqB9wBZZTcszZCL2clPP7brAop5AbEo\nb7NlZwX6+fhZAamp/RwMTbgwARsEDbn6YjYjCx2qpwK2eTtjp2CMvAxy6J7M\nt7Oh\r\n=zWPC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmZ5S1xDoyeEnEt4FD10vn4BkK7AmRU/nHVQXij6FPkAIgc8LXI4bTIVmd2BRM4A8xo1KQPwfvfZ9zkpYiVXdSTS4="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"},{"email":"martijn@martijnwalraven.com","name":"martijnwalraven"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.5.2_1550773368535_0.39112018261961556"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.6.0-alpha.0":{"name":"apollo-cache-control","version":"0.6.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0-alpha.0","graphql-extensions":"0.6.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"77192d647901443df54762544d2528eb8aab24ed","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.6.0-alpha.0","_nodeVersion":"11.11.0","_npmVersion":"lerna/3.13.1/node@v11.11.0+x64 (darwin)","dist":{"integrity":"sha512-38FF+0kGkN6/efPWYda+CNQhwnY7Ee3k0am9SepI395VBKO7eXdLv1tBttwLh/Sn6sIeP7OT+DVhYBcrxdqKKA==","shasum":"ec9bc985b16150bb35a5d2ea874ac8c1e6ff415f","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.6.0-alpha.0.tgz","fileCount":15,"unpackedSize":39703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclSoyCRA9TVsSAnZWagAAjqgQAJiKD1TdW03yQ7KApHj/\nuSd+S8Sr6Vq1oH3JG3u0nrMVq3ainvUd+DLzZRKZkyX5TupfeurPW2dq4FP/\nBvl8CTegkjIFaTFNJcAKCxCt5s5EbENjYtM4VBqzpWgGPmAV5pffzmS69vqc\nD2Vg2pa5lQS2I3fyCGfXtRV5BDTR6qYIurHRcryiISjDgfER2IjCCCxpBUYg\nfz1riX7hhzl45RpU0Q/P/wkd6iP42VQ10+1w+QNpibuNsmCHK+wNRIhIuTFL\nkXwffj8WWXkY5n95Bdy9M3Wy85r+frVCWelnnNnrCvRpa0ec7C+osjeazP+8\nRuCuFDkywOaxDCqD3F8f8+A50Iug7YU2JdAOjXjPf5xClVIt7UFhh/P7NER/\nZkO0Vlz8oAXbZQvvJSSl6F4kHCIv58ofAYd1Flay2c/7pvJry6MbF5NlVND6\n+Qc2itfCwelP3FbqllyVpHFtbYHhshA2/BoqAEEf9qRAYSWk68jHBmhjOKWJ\nZ3mPQZKGFXIIHsLp3KhBft10jjILplJCu+ksfdjzm/Y5Rw1x6EGXBpCnRBcf\nc4SVc5VaoXw1/9Wj/O8cMY2tH7VCZnJa/pFMsOC4O/N43bZDFWxhfJbgCF8w\n+ayFVcY/30VeDb9t6kjqwQcG0PKqdoZ7JbLsj6yX+eaxAsx1MQIgm/Aiph5g\nxhUE\r\n=M5ED\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAMpSLunDYE9UbP0HIEG8lnifzuiPTj5QwKi2rs5LeRwIhAJO6QLDfK/L2JfhAoIupsIYKsp3rYVLJd0ixmKrUPOeB"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.6.0-alpha.0_1553279537986_0.6876006515002038"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.6.0-alpha.1":{"name":"apollo-cache-control","version":"0.6.0-alpha.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0-alpha.0","graphql-extensions":"0.6.0-alpha.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"4279d56188e56f03b8a2c0e8c9e1ea05cc2ea2a4","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.6.0-alpha.1","_nodeVersion":"8.15.1","_npmVersion":"lerna/3.13.1/node@v8.15.1+x64 (darwin)","dist":{"integrity":"sha512-9R++JfMwUcG4Sz67CJ9IHFhPPtS9it/NwCnTOkrURjwQZAQaPCEvGI/iBe2aK5St2pltUH9h33D934s0Dhc3/A==","shasum":"657f3c09d830d1caec3731d4e0bca124bed65f35","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.6.0-alpha.1.tgz","fileCount":15,"unpackedSize":39703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcp2yCCRA9TVsSAnZWagAApvcQAIUu8prV9k1H6CKpH0PZ\n+ithoDR9qdyeCOyvjXu7kPTZJ6p8JvwVwlHZUm4TYzVbUce2DuwAuJzH74oc\nUJ0+R4yFtEx6BAshl74LE01VE/O5NwF29smnj71X67IJMPEY2A8ceJgzKzHX\nCDk24ndqDrt6QPYi+jpoT+XvCbZqnA+/oefI26ZCnc2+0QfD2gVQ4AeR+M02\nzJ76qcgnlCDjxOUhpbjMQCFI2knnQ11sksw77emKBurz+nCoALqaGaGhniu1\nRytviefmWdO3BnInBydRCs1x9TRbxifB/0I7j8J+/Lrkorpez5yY6HkjnG+p\nZ3ZsiwSg/m16XMcP7ExMsjUmZNDSqWC0W1J02dKby/b9mlrQh1yB1ABkCzU9\nk+zEnanV/kya4E70BAhaCrrmBx1VS1g5wHefYhFVOQZaV+uPOMrqyAGHeJf0\nJDr0Hv5x1FrB5Zy9PC+yr4EJOdBHMogG82gr1o0thMBmrMBUoM7ymqxwG/6K\nxy1FEUkJyntgyqJ8Lte4MekcHXLryrZ9btkdhd0Y92MECIW6of89kyfsk8S2\n17LVw4O67s+Rg0IcTRAldHoGNNXGloI33DA9QyWMFBN4qS4wt93+Rdn9tNHL\n6+yEk7iWbYSXWOv13ij4MtYggZiSlrE2hKlT6w68Bpq3Orqg6vreV9jC/130\nXm37\r\n=bneF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICB/xpB7pT/erqLaOAIuOLcfC+gX1MQeBrEw3QKaDP8kAiA9QOkSXpdwW1wsvSj1gZWfCSayD3kNRehsy230ZpElCQ=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.6.0-alpha.1_1554476161105_0.3075509950867332"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.6.0-alpha.2":{"name":"apollo-cache-control","version":"0.6.0-alpha.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0-alpha.0","graphql-extensions":"0.6.0-alpha.3"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"9e9543f6b7f7ce0b6ce6d59f06f10f4ec18d8a26","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.6.0-alpha.2","_nodeVersion":"8.15.1","_npmVersion":"lerna/3.13.1/node@v8.15.1+x64 (darwin)","dist":{"integrity":"sha512-4xM1v0kb3c2anBYOcKUg6HZdNdpJtZrQgGuovM91xcU15liYGyns/aR5D8hrf3HcSwDxsZmiPqC4Np/bAmPkQA==","shasum":"f880746cee495fea1d82647f952a955a22d710e2","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.6.0-alpha.2.tgz","fileCount":15,"unpackedSize":39703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcp4fRCRA9TVsSAnZWagAABzEP/iJnYKblk78pG8uGg7Uz\nmare/j3uEKUg2Kau0cEeXF8e5njzH6Kmo/5URLHMCtYFxz86339Z6c8O+4L7\n9DjcvI3pLdGjJgrd9+jH6shnpud32/ozA/41qs7htAIcAZ7t7Yn6hC8d2QJx\nf5mKhA9wCnzHhRQOQY+czjtxpfTJlQC+54xLsYF5hb+1QjhyQ0TS0DkiOtJX\nXKrnLmjYF3gHD9b7EI6jtuwLGQGcI5vIFzKfhVZguwhqZEYDTtnlyE549ihB\nlDmVjG2FDr06cjgjUixjDh5TblgAjgHTybJSXXK5WQdUx9dPcTBgQG+M3/28\ngNaBhiIFR8k2nvCdRWlnc5+bqxxWsKFzVOQFK5znXtntWKPCFIOGvH3DAY33\nhfRZe54fC77nuVw53AjPqNRWtOhscypYO4F/+xAXKCS49LddMZsH0yyMhXhc\nd0mP5SdBmzmSzyRdtJ2w7pmTY3cAs9gNJgN+Z+Bzizd1eCsisgEpsnC4u2Uc\n03fHHvCAFqcdk1PWZA5JsLvyu5yIAtvpwNAK1iQXE4BpLdsZaQt3DOFvHMjf\nlfNIM+iu67g/4X2TZOKGvWrQOkDipwxJCA4mVNSeyn01XhMJK9tEs77e6VM8\nLp6ExgzEIFtNsoiscU27Hr+bTU1Y240/ngUb8WdcTrIsqdDFmY2wGAkJeQqP\nIbXs\r\n=q6K7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrO7EJw5Ozj7Dv+Z3b/Qmk6kED+UvfvwGPvWfnecthzQIhAPzYch7F9c56+b3Kai1mQW6yjQsRQpeBm+MVak9ILA/6"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.6.0-alpha.2_1554483152298_0.7929459137868498"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.6.0-alpha.3":{"name":"apollo-cache-control","version":"0.6.0-alpha.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0-alpha.0","graphql-extensions":"0.6.0-alpha.6"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"551c7580cdc3082f590ce2c52161e51496d45cf7","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.6.0-alpha.3","_nodeVersion":"11.2.0","_npmVersion":"lerna/3.13.1/node@v11.2.0+x64 (linux)","dist":{"integrity":"sha512-xrOx5+UNy0hREx3y/rEV5BY3MNP6sWm4qF1fOmpkYp1Dl5OdlmUed0l17IYv9c0orqt02q9dmJBIcB/16ltD8A==","shasum":"bfb3e3c71232a9f2eb390b5753829fc88a5596d9","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.6.0-alpha.3.tgz","fileCount":15,"unpackedSize":39703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsq7MCRA9TVsSAnZWagAA4F0P/27k77N+nAuYOTAS7nyU\nqHGBnAZIYR3ETV0zih8GdSIvi4a3DuyJ3zezUEX5oWDDp4PnTtcyWE07c4pY\nu40SHEeYddSx7RjuZpXW2ZDtbde8J29cg7bOj9Hplqji7cPLqRNELhYW4LNX\ny2FRbqBxhGFG0CvRLfrG77G8H/ZJ6eGjUE9JpH/p1tKZkgr+Wd+z9nNT44Wd\nANYXhPhW37c2dM4OspQrt1RX0nfulNTeCxpfCRxT2GT+uCQWmwSKaA3PdNtk\n5mkE1rxp3rxYp4YhxYi7yxub7zZrXAXwpjoUPytyBPVujyq4NLsXs78nDU3W\nHNOovUmsihXJk+SfOg49rGP1D8szJGxel9gdo3NiaYp9QJmKLV9aIhbMsxQ+\n8tjT2Hd2RFiHc+7+i5ZY6E4RpkgT1EpOz1aXCnylAhNfV2l59YC21SPP8xEv\nkInuR4DsU2n2HfN0fRx5xcQ0QH79ub3y+EL4i6GsC215J36zzGeCXoegURzL\nphQWvo5e0SkkV93G6mrv7ROsJbfHNLTFaBBwhkMHcqz120N+rSx77MsjDqkF\n+C4vUV/mg3dW8l5+4ZjTFzDTgan7L5diP4MYgaDrtz5fqKt9WUtYKXNbUJMx\nUeXl42TTrMjsdxkQIaTZJ57zXLgtVNyo4u1dJxnHVjSZvnXfmti+efz/qLMW\nqE0O\r\n=nfts\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAL9NfcEj8zsLWEIqAE09k0jaxfzb+olrLV8Qw0fsCd1AiB1kdbUWVrAQ1pjBraos8c128beU/5VyE6sFdCqGlRXbg=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.6.0-alpha.3_1555214027856_0.7150058109436019"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.6.0-alpha.7":{"name":"apollo-cache-control","version":"0.6.0-alpha.7","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0-alpha.0","graphql-extensions":"0.6.0-alpha.7"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"7b8ff7a9c14eadff9ba95ad12669197c1803cbe0","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.6.0-alpha.7","_nodeVersion":"8.15.1","_npmVersion":"lerna/3.13.1/node@v8.15.1+x64 (darwin)","dist":{"integrity":"sha512-TcbWOMHg1VcF81b1hGuMsJ2AuoU/hIkEG8+FInEMx5dc16y6tvy/sbDejQfSq9MHgbWv74qTgU0VnvW+72p2fw==","shasum":"8329e7f3d76f9a73900ba2b2fdbd976e499ac7c3","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.6.0-alpha.7.tgz","fileCount":15,"unpackedSize":39703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwfOXCRA9TVsSAnZWagAARAYP/jFJQpqZmxF1yzgDGkJq\njwOenjcM+xNCgC94ZtD7DpYwtQhqzva80yJK6nn7FR1k7uhRYvhJK5dVnaIx\nnIlMNtE8x0zNHpwZCdj4bS/tOp+7cq+cbBmLcquqcVP/mq7bYFZKr15Fog6u\nXu8VDLsYlsfSm31SHtm8sOYpeaW+l+DGX0GdSHQxwawk4JvACRhb5P2vPJzb\nbUWKMV5asLG4TxsMmWuvvznxrqQFXk8kCyZ2LxIIjR8uEPLAYjXsANVgeIdo\nRskzjTkbvp687imGssS38ufdkSKroxtGzSnI/UkSRicWhJfRNU2gzu2NRrHP\nIHCkK1+uKFHrCOEbHNuXx2t7dqSUZjKeYt8N5b0v2VDKvUGu7PyhwsrQsyPy\n4Mr91R1rPJExFaepQZi1kh56VQmHCe30QJs1OUAYKoVlFOs/FYooLZ1EPD4Y\nFgfU3lDT1rj9hbTO+z8SF/dV27mAK0HpVAwvi+8JWVRxZIVkMQkJLMyWnFON\n1O27SOAcbDOArqEOJgHN8J4ULsZjP4F4QCwI8tCog2PH5y4kgwdwyMBtmhUU\nztpQZFcb2/rn1Lz5lRw0Brcew48qRkFZSaJAI3IxFvZfheWtALrl4iRl6BL6\n8adlLMDXUaYEz0V0exOhAXPHbwhKB9kjLIk3oGsW2Wqp7tuJBtMM88SdaUwK\nr0RI\r\n=W/n0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvDZK0/dgaI/TIYRFXwqLujQJIblXmzEcaY/X0r5BA0AIhAOTF79haFTWbNogabC68ZMILVSY8iq05EfQwgYZp+3Vt"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.6.0-alpha.7_1556214678735_0.3637524698309862"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.6.0":{"name":"apollo-cache-control","version":"0.6.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0","graphql-extensions":"0.6.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"f7e8ea067d6421fbc8ef41f91d1e673cd20f08d8","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.6.0","_nodeVersion":"8.15.1","_npmVersion":"lerna/3.13.4/node@v8.15.1+x64 (darwin)","dist":{"integrity":"sha512-66aCF6MHe0/FdD3knphwTv6CCIdb1ZxrMsiRpxP474qqyYVe2jAwBu6aJBn4emffZHZ7i6gp9dY6cPHThjnbKA==","shasum":"df22db28f850ea90a5722f5e92654d30c96e7f91","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.6.0.tgz","fileCount":15,"unpackedSize":39679,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0X2FCRA9TVsSAnZWagAAYIIP/0Sk1LE2WFZhV4yf/xDu\neHwV75na71fgqY3KL9vGqEae3fuAHZaEVvS1xu7U8KrmSqm40x0cMxUs6a9N\ndoOPjdTmU508trdE8W4z/RG/3AtUoSV9hURQS3dG6YUZfkCxaG7h/MZtwAdb\nfkx6pucb3hNb+ND6gvZZvNJrs2MtCmK0GeE+P77QlCkSNVBAOKMjtCJSS65E\nOQzsDUjbI2Y0DH2T9J4ROA/uW2xtjQOW6Gn1IZjHj2qNTkXD8Q37upNbvRll\nxwMKdCfhHOax7Zw3Oh3fPr5arsk3m7aUGG4JGOmhWEUmAXBLLKrPRzvaJSy1\nBDekzf6R+kYGH04GaWUynRlkYUcK1yd3WJwq0dvRijHIkySSBw3k3q/ZS0U0\nLRkGwQTi/+g6tN729qqRt8cjLfT2eOwe2L5BiSJig9tKs+QRWHirheuD7JLn\nL6VnGoTUygikDmgQfwd6bFn1ZPkcUChw91DmbKbNIBU3dvgeuqZf7TiOvyzc\ntGntMVMgE94DZNasKCITJv7hn3VcR0TuRKGD3Mvskhbmek7JMjEtAkyN2mXC\nE6O+eFEc1LcVk5BedS1J4hRMs0D58ocD+ATXREhX+uB0IKpZ+52yvQrPawTG\njQfHQtjtnk+WT7QinbOmQnjmc3Z8EUvq+fbZ9q3/thKZ6X0Js9kr0XpWiTba\nYcKv\r\n=Pmmx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCbCP4hYJqGXwBOGps0pYoQw9te0FOpDY3wFm+eSYJCAiEA510i1QylDlpVDB73oAEN94dNCZ0ijMfANMxv7+fdhy8="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.6.0_1557233028476_0.4940366423011162"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.6.1-alpha.14":{"name":"apollo-cache-control","version":"0.6.1-alpha.14","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0","graphql-extensions":"0.6.1-alpha.14+bd51b22f"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"bd51b22fcbccb6284e465f26681c5b359f13c05f","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.6.1-alpha.14","_nodeVersion":"10.14.1","_npmVersion":"lerna/3.13.4/node@v10.14.1+x64 (darwin)","dist":{"integrity":"sha512-U8fhYx0qlemK+y2KOIzqMch77pHuzCPaDQlDG69mydEiBcgCkWwaPLDmwPqgaXosKGZhyQoCtGuO9fpcKNnwLg==","shasum":"0b77ea9abfd98897daa78f730eeb24bd966b7333","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.6.1-alpha.14.tgz","fileCount":15,"unpackedSize":39715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1NwLCRA9TVsSAnZWagAAR64QAIuceAdAQmTZbp2iBrjy\nkNcBs2c2KmDpBfcdLPn7JKP8Svott+YDAJ3eKuxy37q1UmtEGkaXCgmz4X9R\nr8H5k5U8SqbLdyAK2r2CeJr4mg6e/QKfNcDnV2Pl5EHOsMM8znC9ydvfC0hP\nLCnIbh5GvgVQ+7HJFVkOy4Qle/tXGLCVvjA93eJvildE/6/W7RQZMpIUioex\neantLa7irDy4BDS7XJAbw2eFD6HYnPMKvs21EK6U56tpKzujRc6HabwEmd4o\nqMoP7/X2Z0Ra5x8a/4q2qjXQKhlNaeEhrdSL1FiisAqbd2UbkS8S0fBHtB99\n7cJEPrxzfTbxWxEIZYz+wRZzWUZkcBedTsIttEsw6SiyVMX6l+/1r5XEmepR\nB/EkMilBxs/k+9pWp8k8TtEP2VBXZmQc4sHIUB7QjtX/sFO2EJrN76vWFMbJ\nRyqhPHNxvwtP/Jjb0Wly6AXDHXJyU2+DLGSbycM405FeK5NE9A0DtD37fsXc\nvUNZY7wJqZt7Ac8rjbM5YhZKtP0q5DqbDV/yw3lhck27PSGFheYqd1yZgTuK\nbjFMDL9hfD3/rEUimebOBgyLZbERKPr4f+jihTzxS5eqVqJrQK7AF3+9wMeL\np5u181GfbEE4iUsswu3eOrTCAEAv1JBNYrMi/zS6debp67g9u+Lx6misVkQT\n54Ns\r\n=Tjtw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChWAk7Oeo2p6cxmANny3e5E6eMTr6fBh+QHH4rY3lX4AIgJwf2Ac81cgqcRfAluLRaHFRLCg3sSDR2Gs5JjzrWfiM="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.6.1-alpha.14_1557453834854_0.30552462331419217"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.0-alpha.0":{"name":"apollo-cache-control","version":"0.7.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0","graphql-extensions":"0.7.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"2c2f1b6ed2c79957de1cc11a298249f67f2c59e8","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.0-alpha.0","_nodeVersion":"8.16.0","_npmVersion":"lerna/3.13.4/node@v8.16.0+x64 (darwin)","dist":{"integrity":"sha512-ft3bC1O2mCQgnaP0gREMsCfzigsNqYquf3K8S/QYHrtsQ+YzmMPUdhVnOcZ3wYqFhVmrsc4PcMqxWIgrKe3+dA==","shasum":"b4cbd64abb8047ec85d201070d62d8f63dac7fca","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.0-alpha.0.tgz","fileCount":15,"unpackedSize":39695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2cQUCRA9TVsSAnZWagAAYMoP/j0TEY+k2c5gU18wnBUS\nmzqYFhJmV4OFOAgMWCc6VvrDXV2nFHXmVeT2yLTYwmOzNBEREQVaqgy6o0rm\nQMJyNl9isgXeuOY6eYa+OR7wLoP7Htir956qORvhYrC0mwv5W0vQOiMpuoMA\nuAgdRsTrPHkgUsfL11AxxqWvbfg0W0j+MYfyTtiIa0BYlVDxsB4XRdCPmP85\njIUP1d8Pdzp41O0VvVpop1559AJRdFYTMdOxt51Ogj5goMttHx6lTuUSR/qq\nW1120swRAcjSze8rNSGCVVWNgUVwceZZzCzN7FLCviu0pFnBMlc/XLdZ4+1E\nBkWPLBmQfDLdjGELf/IWWDCmMAtbLZqOo6dsBNw7/T1MMBhvq4EwopewD97i\n7r2EippritRVGL4ss9rFFWSVhFDF3jiiH0T5Gw5lJBUnnzYeamcQ04npgFix\nFN5ahECpKeuHP/L04RmpRZ1CDFqQUswgojKzkwZwmEcRp3hNKVUI+ARBnMZe\n9I/jd7eOFZxHByfVuL1TINr6FrQ5ql6TXexgFXZjoR1LvbBek3Yt60fjLYv8\npaTigIX4/wpOsyB1L06gLhzfEFY+8GSDe82/QC5EeNinz11mDLL9g7ICZKMA\nWpjy9Yb6En7SNsJh1421ejTENR4nRMVKwt3ADiogJ8SpN0c2I5lGu0k7aK0q\nmz4U\r\n=ZCQQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGXrVy7ZOga18HKS5b5w+FxAYrZ5XTZKeBJLk4HXwY/IAiEAyP5I9ojUPZUI83GAnqcuxh8x0d3k9+o4abh/sKpFeAw="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.0-alpha.0_1557775380004_0.47641298207305427"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.0-alpha.1":{"name":"apollo-cache-control","version":"0.7.0-alpha.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0","graphql-extensions":"0.7.0-alpha.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"81282f920f901994544925ed27f5a2c77f8a7120","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.0-alpha.1","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-FonLQ1H3jNeqYao7d+KFfMvRN9vwcb7MQy8vcXTHlmOx61ygj9NSIu+pe3RxMtob47MFfCrbB1H0LYcGIAleQA==","shasum":"297654c4d5cd6effe57a43c8404a34fdebb572ba","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.0-alpha.1.tgz","fileCount":15,"unpackedSize":39695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5ZYtCRA9TVsSAnZWagAAFWEQAJ5m3Xljk93FM/tczETA\nxWS0Tmur9Lmt8wIZPQpqxOZVZh1ZQC15eJoaMv3i+9XXKf2DzbBLPKlLpGh8\nWhv5wZoen8QtLJ0seBVd6NK+mQ+GlM8A9FQiO0jZpdbyIgCzHXcJ0srn5CGg\nsttxtxGI2rKUQJS1BzydqMmdr5klP6g4SmY92Qnh1NEKc44VjlAWLlVKImhN\nHcvZFWHRRKuufvyMpkNnRLGWpqtXePf0Vu8+k9xpaNVsYYVDcnHDbnXUaVgJ\n0XFkeVcC1UMagYBJUWJeCbSovhHt1NuAzIZTvfs339usNAhklu7dSvwpLjWX\neXysVwa3iACJfxVJxa9pPBUOGmuUPgC7kdRJLOeDqgMkv07FEkTB/KNB21FI\n+eWacYkXO5Ku/CmtAbDW7GlSaQvvCfralRJ/q6ThLpFYXsxSxn0138vTwkod\noTNVJM5/cUlZYVZ/JtneWNsLQL9C7TL6N4TXawnxaaCakzJHEVI9B1RT/wcx\nEhyt8L+Wgtn4tOOYbcqYcQZRF2f/cz4H2h2qz5JvYwNWBxNBCE4pAi226hRr\nOxwJ8UKTn1FjExFiOA5zWpJnybPbNy4jFCi+ocHvwOtQfcyyqfkA324meqom\n3R+ebkmzqoSVo6eEimvcXENmdf8I3ML31G56q4Sude0oa95eeTdJ9nyTo0sI\n3/GA\r\n=N1Wk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICNnrNcQwIVPkLCypgnd4bR9YHhflsEgqSNC6EMU6JqPAiEAqXjQt/FImfqm46GubczzLmegVdBdrEgXOs47UR21lYY="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.0-alpha.1_1558550060968_0.8827291751643183"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.0-alpha.6":{"name":"apollo-cache-control","version":"0.7.0-alpha.6","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0","graphql-extensions":"0.7.0-alpha.6"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"590c1baf5cc5aebe58a9532c717453cc9d344a31","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.0-alpha.6","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-/ZvWPEULY0+Fy/ByT2zAhr1baKSM3nOZtWsH3k3GuAznWBnRmAbWGtsEJ+uUGaECjLsYkvGucGookB1eMsJEOg==","shasum":"97c92f0b644abfacb0993747735b9d050a581088","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.0-alpha.6.tgz","fileCount":15,"unpackedSize":41559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6GCICRA9TVsSAnZWagAAMhwP/1y9G0NMyveUhFmfZlZz\nX2YdZdV/r6qAyRR0ZFNM9HjNlnsY/gGS0gu3SZFYDkzmYNGCwv+rDuXkINFU\nnWXbdBv80on3K8GJn0BrgQLLmMXgs9pVwpx7SdxVH+GsVYyAsA+4Mb8ZDETL\nMSs331qwaA1Oc4AKHeb7qDPF3Qb0UynBTc1FctbjD+Yfi49LJN/yhwYmIcuz\nnx7BIQpn4fsWZljzOFWHLJFz+wB+BPzwBMqTJYMeOnay7gVZ947sdXuKwCEq\njaFMkeLGpq8GeeJ9xRfMm19D4Ji5QvcSUi6QGdDqnxfBW5uO2g+LH3v1KFo9\nvKvRVVk7+sId//TI0zSkZwgDWhBedjWfLGGrTyBnHf//4mQEnvmY03Kk9OnB\nsqvyU+FAnV3S3g7qNqtpkFJJppHATmVat3cyBYPihha1oHpf0sCSnceqtvaL\nvO+duQz/lGFh3kioJzLzKk9T6FqsN31gEMJAkw0bAashdxx5erlYVcDUjCDR\nv+TOTwy/o1NggrVSR+t6vtkwipuYnBZJDZxTd3IMl6a9N3XPz94HBOQgt6kD\nVT12eUeu4aNCFKrlkoaTWrfXPMJmnOP7egy9GQX2oMrFAR/UwuLdG0Otqt5P\nwAGJddSe4DR+rTtCQFDM4SiUulK8mehpgKMlSYbr/iHuwidKES1llEWyD54V\n4ikO\r\n=B0Z+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEgvLOxTlmjHX7dyiRsnkD7361Cd+5+E4jNUq3qPmqFMAiEA4d7skpaqyuxQ1PF2JGYqsbpkIWWr4+m3sBbLErbChcI="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.0-alpha.6_1558732935063_0.3318965595114882"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.0-alpha.7":{"name":"apollo-cache-control","version":"0.7.0-alpha.7","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.1-alpha.0","graphql-extensions":"0.7.0-alpha.7"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"b544a25db9d3c6372f96210f901c5c9076610391","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.0-alpha.7","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-EU8uiqAVgBB/1eR37DWCL0ENac3np+mDd+ot9AzS3kR3Zs+FkeVoAVDS4WtI8OcizVSOEnr5PQlb6AVXQdnX6w==","shasum":"292d20199290229e22796a0d61cf4fe1351ecd32","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.0-alpha.7.tgz","fileCount":15,"unpackedSize":41567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7CwcCRA9TVsSAnZWagAA0RgQAKKwtaG+JpKPg/NrNI+f\nSn2Zkvnscme74g7+aFMl0s5FTI4/wEJwQt0Sd60YvT5jnzrvVMZvypYAirAl\nf+TR9/DboJcjT2vo/tMV75G4RlRAoZib8NhRsMyiKa4kzoygMVkd1pGqvCbO\ndSaSpjqyD+uq89EcMdeKf51cMXESY2WouPj16ocKufSOYh4HS98jMpCn5Luj\nJBKZ5Bf95XoppOUbgY2hxc4Evg4JQYkXpBMymFFu0AUPNfBVC1WWtupsU7OA\nlYzekedHDxh+dKDmHajTJuHQCKvWvsSix8lHyJoGAeGnprve7s+Q/v/jiylY\nh07YhNF/u6KwLtQRH2BuRMqFmeir9YKiypa4hX9OY35nDGGUIVGvHSg4FAud\nrFWPM9dxtvi613z1SDF7iPq+VTXqhbiNSpWmVUX40Ahl50kE93DvkVKTqcPe\nx/zUV3iuOSV/dPO0gQOj94o9ddGZRp2DejoIexk7y9Z+ARsiRl4HbIIJuDXe\nmWYVSLd4N4g3OEZXGfQBbxqZmGK24LZCEVhNsjQV21wvsOjeOccz1TkiGLDR\nGoEpgDGZHk6zXvjysVdHdkfPgqbMrpTxtusyojnXykCGV/GY+XdSWDnRS5Z/\nerUK2RZ/j1ow6roI4Ut5VaDaaXDzIlrtZRr290mblLVu/q8bxemGTMewzqvA\nMlsb\r\n=xCIR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGFsAMyWnu/xBg7I1MSa3MlaR/VMurwxMFmaZ5WIGt8sAiAU07BQPjnk9/3MGZozx7nMkdGEpRdpN2LXE/V+3Fl9fw=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.0-alpha.7_1558981659919_0.49196519435645114"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.6.1":{"name":"apollo-cache-control","version":"0.6.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.3.0","graphql-extensions":"0.6.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"5814f0a9f53cfff131f0b127301866f9242ce196","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.6.1","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-M3cDeQDXtRxYPQ/sL4pu3IVE5Q/9jpBlENB2IjwxTDir+WFZbJV1CAnvVwyJdL1DvS6ESR35DFOurJH4Ws/OPA==","shasum":"c73ff521fe606faf18edcbd3463c421a966f3e5d","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.6.1.tgz","fileCount":15,"unpackedSize":39679,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc79gbCRA9TVsSAnZWagAAM/EP/3kacRqQHIdkRBDsKml2\n7Fp/NwJchd+wgm7aLWqiT5zEotDq6C07PHyqccxav9/Af/fU9pGM9nO+/EP9\nycSAlk+kX2whaSHgRR5d/KvZeXZV71KMBsDDoqIEDFILcL2tJ7GVmy+5r30o\ne8l4F7Ov9C+hjcGh5SD4UtGLJhIjMibfY843HTfQOOW/375nG4TYIIy1Mczx\nl7AxEw2l7Exj6+fWAHRxN+XGkA7a9Yav4vxIsxvfqRUHBByZZgYncA8EzjDi\nPu5eQLdDiYTpr/0orZz9aTa9uz4bc6V+LWBQTwRaoUMDPqZL8JMWSxoiZZbP\nrQyGJx29z/e+NFhGzD5KbzQBaBpTK0LHAq2qC1tcgkIOV/mR1vcN/Xs/hhgi\nQYFVxJ6p9AadQGw9/Qvjej0MJO4o+VYVa9pkXbLXDWFFiRyY/+noC+kbpvm/\nDhodT6zLQvQy61WTpHkJdyVTXlRoa3XgSAwdzWTS5/9+FflPl4z2QCRSgDdb\ne0cJjwrjJa/4wtJCPJEHFP2V5XfOEEsbqKoNhb4VK6KyqRBOA0uoqXfJfXDJ\nx29v+/0rH5ysWgdXgVZw6ub5zoDmY5TlgeKurCyNnYoebO0agVCAxdgWtKTY\nd6GGzhgrx4nuBSAAJwCPRaUzmLELjE2qfhH2+I7R9P7WTIS30VTONC8d3hY3\nnOrp\r\n=Tk7p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGWmyONfLFEuxoZ/8Y75h7WWZPdPJecHe88+v3Gz/0cSAiAs5A9qu75KlFNk0RCmvJFpPlaWj8s4IZOPsMDO+o4Pmg=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.6.1_1559222298760_0.6945995455641221"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.0":{"name":"apollo-cache-control","version":"0.7.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.7.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"dcab64689dec2d00a9c6d302c7c05c5ab847e855","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.0","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-r/c/pw1YFR5s0bWWIgiY+1XiXGjYs2xjlyr5DUEDerBp7p4Sb99IRPcOWgq4tLeU5hAFiuWz3Mt39DmFQFW9Ow==","shasum":"ff38a07ef72e40eb0d2e5805b970b4ff5c5ed178","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.0.tgz","fileCount":15,"unpackedSize":41543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8WtbCRA9TVsSAnZWagAAXC0P/2JR7+LWbu8SVNb515po\nlEFwfe8PbvGLf8/sFHx07u8VRb0N3JMtldAtdT5So0lpYM8jWrus3fhQcSxW\nlk3Uag2JOqLJy1VoUHYotgTtDvr80Btf8+8CpjqIrVsunmmm4aYisvzbqXiW\nAMzzb51M+xXtKBBID3OoDO915BgbDI7BXVP2kxscWkTt8NqK81LB/dLWfw+f\n37IlPT9HvQu13FEi2T9N18Gt+5jSJlAMgUXabg3Uxx49S32l189b3tcI5dhb\n47Ddy3Y380EDhyaiecREcNDnDcqkqLEb7wvmtlLz4Lc9wF08a7g4cKTkPOPk\nPeGoxFlPyqszYqkdWkpwGMt8UgSVagHGgDmaAkJpEuYnCcB4uJaEyYtsEA+K\niSuf8tGZxn3ZkAk8lwbkjvdPxYgyk300GYN50DDqTBAO/bpvFpVea6PZqli9\n8/ALCrPOGsI4mB+XlfP2zptJ35KC/4G757Tu4SSuZ6uSRWXBOa74zZaG7ZUe\n5hnKFDGiMdJrPS8TmDJd1uJuGberaupzO7VdGT1OZPXlRJXArDZOofnsOCyZ\nls3GKTkxbabM+VJSpGPNvcVqsURwWoh5H4fmp+sMLEsiIBYVDx/p0BP3t2VJ\n1rtrZP7NO19GZXxjfL1Xz3ujIFcdUPZPiZytqUnjQXXKKgdZ6Pew7QNdPjQN\nnoqW\r\n=NQ23\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPzRnX6Va+WhFg3SOo7K1F3iIuxTJTRd+T6ShwH7fw4wIhAOP+6X0/eJGmkaI9NmukJVi48LI7u8qg3yVHR1MbWnD6"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.0_1559325530805_0.9612160879004761"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.1":{"name":"apollo-cache-control","version":"0.7.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.7.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"77b044169d61dd50f8426a1ba87710cf38fefd36","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.1","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-3h1TEoMnzex6IIiFb5Ja3owTyLwT5YzK69cRgrSpSscdpYc3ID4KVs0Ht9cbOUmb/L/UKtYVkRC8KeVAYmHEjQ==","shasum":"3d4fba232f561f096f61051e103bf58ee4bf8b54","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.1.tgz","fileCount":15,"unpackedSize":41543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8aSDCRA9TVsSAnZWagAAx1UP/RimZPYgXLC40JkgaPh8\n+vL37qrNCPq79/RAMMNbkauOGCju0fiAloQtsLVALrbYI7GI0KJKH1bKKXYq\nT2nMDrIB7F/TgOpM/liJ7BXH1PVOaIzVHq40S1NKGJa1JI4lYv0nw46Id9sg\n1XtgKnITCWZuOP2XMN3o9mQRrRopE0UfWzJf5UrSCpccYJ8cRFJT912gVkv6\nFBWN4BbaMHuSVo+JUTaGh/2jCiNFJWl7l4ym01cQHvRR8qGYPRaVKffwsbWL\nbUvFnvSmglextcjATAob597tywHQCGr+MVyfiVPz/eKwmyoWQ5jzzKobxMur\nqP+Co2KMuW0BQKwZgbHYfSKSQD8DtrBwLjfNbU4lHc4LngxHVD90rbvZy+LG\nwh6sSKENp1QyhL9oGHRU4GBaCH1cKcDyQLNDg5wuKbLnfl2QUS6KPoHoaClh\nYEdMqv4zq52OgyAlbKxWWbUhyQQg/HYkA2yiR7pSyDHWqn68uJwNFU+TJsm8\nIpta3zWGK8mfOw41DxP+y2sj9Rhstv9pqCHcc9uXJ+CYqaAxIDz2SLRfx9d1\nsX83/l4F44w8juE0kt+/L+1I6GFRHMUffv64ZfCifOcf5rPBZ6950sobf5Fz\nZPv8GUMpWS/LBnZaSdeGeVzauIOpGNWgqxsS5K0yDctHWIthNHHK+lH2ym8z\nzwpb\r\n=6xqj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEogQyuxbnqhdeoJXCEXMK3Sh+Frm9qR/4nFcQjg5LWAIgQm/kBHfEUlnyD86sGFd5t+zMbTgSHFnCbC2nRULNpQc="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.1_1559340162264_0.7026842849578496"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.2-alpha.0":{"name":"apollo-cache-control","version":"0.7.2-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.7.2-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"d7d9180a88f22b7259742fa4f14cadcf34c557cd","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.2-alpha.0","_nodeVersion":"10.14.0","_npmVersion":"lerna/3.13.4/node@v10.14.0+x64 (darwin)","dist":{"integrity":"sha512-NP3HOJXkbXMrgLqNHYXdju9wbBjHNm+Rr+fMujWdaBfkHlPsc/aC+He/lNwxC1017b3ApFnOVKSKmUWpBV7UBw==","shasum":"81d3d0b80c7d476cb42b9f257e47b84d6edbd609","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.2-alpha.0.tgz","fileCount":15,"unpackedSize":41559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+TDQCRA9TVsSAnZWagAAThIP/2LT8w4MLYo7mIXsmS+v\nxIGqEqfCbB8YGJ8frWsAsPETzF0JCNnLjtjuz52THr9VhnXDsowJMZC5nhBW\nN4Q7NehvqDHd/vljIxqkNjPVuIvJ8a1GD4NT4dlrjNP2i33w4RGC+7Uv5zz3\nR0eCbWfvWJ75EmJOOEQ/JC2GB5yLWzq+vzC8ba7kuVgijifwOe9CFMHYYuGS\nylSYrtVbwg/oGlOV/rxvdB8tOAD3cA3q1mcDi+FOWdoigInRjNJP46wKOPa7\nHAj/cLdhxtOBbrEcKe4qCfJFakAOvSgSRWy/TBcT7p7IuwZ7Dct2I8udOllZ\n9eTglNXHvE62fW8bCRervd2Q93j16xxid1WEdygMGwVLvSY/SDeW7vKhOtmr\nXjzfOsKl7iSO2F+MI3COoRWwaMnGdTskF6XjfM8COem9Uce6XUOlDWfQezJy\nc/LNfxdkgoW7laHMoSwDkbhhnr5bmmeEjTXscEDljJMMP5BZbORXDY8hLUOU\nHdWG9FwclbSitZ5vKTqOOeMZLSrZtQAipAMOvnpPK6D5Tbhrn6m+imCh/L/v\nramYcz665A5Hq8vWKe8DOoExAw0EW3vTQSRoJ5rBTCxve26dARYaLKkoYnPl\nbvWo+Kdy8ZgV0W5QIutyBaMNT6SeGXJAkecQ7/TDprubnp4Ld0VzO6ENeukF\n6Rz7\r\n=XYUD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdjtJKke8P3vMWMh2fcxEyErBZpnzT/3Woe4gVYg8ClgIhAOWnkKk8yIODY+2pYMnnWdP/Ia+LDe+HZ07Z9Vm+LDIu"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.2-alpha.0_1559834831792_0.3927759129456083"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.2":{"name":"apollo-cache-control","version":"0.7.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.7.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"4fdf6f2aa2f14854b54b0d6de7d477afc7702916","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.2","_nodeVersion":"10.14.0","_npmVersion":"lerna/3.13.4/node@v10.14.0+x64 (darwin)","dist":{"integrity":"sha512-7prjFN8H9lRE0npqGG8kM3XICvNCcgQt6eCy8kkcPOIZwM+F8m8ShjEfNF9UWW32i+poOk3G67HegPRyjCc6/Q==","shasum":"b8852422d973c582493e85c776abc9c660090162","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.2.tgz","fileCount":15,"unpackedSize":41543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+W4ZCRA9TVsSAnZWagAAWlsP+gJfgT34685VQArZ0nC1\nl3lYh/HRzQaKi4CJwiwv85sOmO4z2CcJAndkCOjnqEM9vdnPq5sGYgzPasw+\nWs0rpKZ4wZ8cTWAtKb3JLs5qDUlK0MveofBA+xpgAptj6YkPS4B3eiIxGSwD\n7hm2/lIPqWl5I6+fbTqxZlMVRNTVRPQIk8r/B5o6+e/84UvIfkl29JirfLMC\nT2mzqdmWGotGIBIMfXDl06rfPIinbqsRSyFBGhDJTk3BQzrihA1NBi3YDEbr\nUc96YkOh1TOpZyTw4nTuaF07/OFHDL9mqXOS3mzQSi7Y8CUob/2oT4rWbEbq\nWUTRaYeF0/jXqldjev9AJu6S/Z7E6CrfszmWfgkVsHGcqTm6UPO79ck/dpxO\nYaBnF71NrPrJIwaNW0u5dZmGfyzMZrAYTHXYM+g75NkqvaY5sAQ/aT0WEiKd\nk/r+9LxdIyRfh2VR6ST8u8ob0ag0d4jCMGmh6o++LIXUztpwnmSpE5zMA6BN\nci78kPv6xk/FlWuqnhnbSGy+ITUdmvU4LgTASK5xK7UwSU+QUhHQHI/8pk5w\nT3mzMJYvyvdckRTY4nOG8kqA8RZF1BctDA3Xy8RkRNvjt+TwS+qMW4Kjrpm7\ndst9umv/Xc06dHzNx1PVuYeLKw3ly6S1T8PVS0Cnr+b196FQKyPbnfNf3ILn\nN8Oi\r\n=ucxT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBMoYTw0nSvWfBzugJ9MJmd6PE9zu0VrDIVYu3xMRTPtAiBwh70ZJ3H43ASeBLjg4GKIHzIJyDCxLHlrXL+M3PeVRA=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.2_1559850520776_0.12881948585487768"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.3-alpha.0":{"name":"apollo-cache-control","version":"0.7.3-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.7.4-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"ec329472a9c779331132a0ec4ebec9ab9709ff8d","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.3-alpha.0","_nodeVersion":"11.14.0","_npmVersion":"lerna/3.13.4/node@v11.14.0+x64 (darwin)","dist":{"integrity":"sha512-gMQ9sWLtb6WEdMVart7Sapt0t1kCd/e5ZcropBdhTiXFpokxOz4Stnj3WApbukCgpUGjykYZakix8M3GplTyxw==","shasum":"873306060b78617e37495465aab10e4866761e2d","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.3-alpha.0.tgz","fileCount":15,"unpackedSize":41559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDQr5CRA9TVsSAnZWagAAkqkP/R/g5N4VUoMJ+cPYQb2a\nK5Ej0zHdHIkvXlotkLmfH5mhsqfxI98wYkV5QyJs+v7YBD30NLcMnAwwhvov\nmmHTA3zXkUqhYH85jILnH93RHtXSL0xPxawYqYw/JwRDRTbKWFF43RM4bxAg\nLsV3/Wu7Ssa1sBFMB5m3Ilmox1mkS9qFaHONHXkIctLGr9VF2rLwgcHDoXdn\nUVNrKZNXUv/2skI/JIEYIBX+H+vmaxPSvK8/tWt89WZ8mDqIK+BrNFmM4WY1\nKoycG5EG12hWEMtHfB/Kq0pMz3XSUlnzQdO+Lz/x3oGbxpQymBMwL/GPNMbI\nz1L3rm42NatlXpwtY+7gV1RtkBjjAm0EVFhdi8a5EZ25sl1k07nNtfPiKFQp\ntcqoG2Sy8pPuLLv5WZwvMxRwQy0kBN5nA/y0iAwPFhDHsHRepCP1GEsCnJWM\nESz+/5YFvjcN3vSV5I8Lk7IZGNXg2eRhZ6RzzPfMIQdfJMrIVURtRi4rBWRz\ny8eP0z+1drhJJpIMHr9Ct08Iu1XG4Gnr/W7wO3k6oGYZ0Wvbh598Din/wjn5\nxkPmzYjBfz6A0aPQr3QtsPcs+/DCHcF0jr++p9FILDD08EInriqQWF8VgHw/\n0/pOYIBKIO1N4DEY9XBhzT9mmx6wxig5nWJ+2NTEDw9+wCigwTfNLzxwX1Na\ngyda\r\n=s1VT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDdbYkkvVGmYZMGOocBiuWh0pWE4jWK9srMH5RjVGBa2AiAFgMdzQHjXq7CNGYpYbm8R6bQUjvg75naEDi6hjq62Eg=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.3-alpha.0_1561135864608_0.4767081374815685"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.4":{"name":"apollo-cache-control","version":"0.7.4","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.7.4"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"a2b2a0d8f013826d08433129a69834035e04f1d5","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.4","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-TVACHwcEF4wfHo5H9FLnoNjo0SLDo2jPW+bXs9aw0Y4Z2UisskSAPnIYOqUPnU8SoeNvs7zWgbLizq11SRTJtg==","shasum":"0cb5c7be0e0dd0c44b1257144cd7f9f2a3c374e6","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.4.tgz","fileCount":15,"unpackedSize":41543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEknRCRA9TVsSAnZWagAAkS4P/2gP84mTAOvtAS4YT3WE\nm5sTTqnEDpbYmhxxRWQNRQESa64wPMWK+/oeqprMum8oAb4NeVzNb+Qsb4IM\n+XADXSLt9WXXjZTo+0lV9k68a5FB1Abig37BcEkZUuBqtKQBUZjpGbGzRxMs\nPYWDOgcLeefffYTylT5+3+PyeOxcsX8MNsTcpOeVF9o5CYMu3t/dwteUFpd5\neuM87ESq2o665YgxtS9iQpB2JD+cDLfBIAaqe9bS7T1roHm25yVu+/hVtZ7h\nfYEXw5E/6QQqCs/s+BThKiIzQKfSt/QJprNPMuPh8FVauVLgmTQkg8PrCS4e\nLa00H1cmvzGuZ6Ac7B1MNXsCJohcVGBc91LMMnO40ABSDV9uDcnnqc8j8VX9\nW0lo9mFzKFUCtCnfCYK2igPH1axf1BZHdjQzwCauNq3c91j3nUD6Jz5DnomM\ncVTpDdkIueGVsXacmhioRsKuGiJ3nfJPBGT21esH5gANzBQSSC8dgq8QB68y\n1sQyQJ44XyB3XHuecwmWeQEeIsUs0DeIvAp1a2VOlzw7yyqJsinQQOvbhD00\nADC1bprl2WncZWNG6dQnIkL/JdHS1hZO19zwyMq6NChg82n9AGcrfvcEFOyi\n6/3VdlSClxQsd1hKeUBbSljz1pB0Xh2blPNzO8JgSnGeo6EC4WnoKIogEO0O\npXGm\r\n=i4eC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQB+8fONEFFvUDd+aATu5yPRA+XwITiY/X21pteAO4/AIhAPBmudK+NHN0u4Ky3erfKcHTHsW09xwftpdnRewerD5P"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.4_1561479633178_0.055254669065210926"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.5-alpha.0":{"name":"apollo-cache-control","version":"0.7.5-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.1-alpha.0","graphql-extensions":"0.7.6-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"ec185a874c2f07b3724db62a3ec8560cfe3850af","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.5-alpha.0","_nodeVersion":"11.14.0","_npmVersion":"lerna/3.13.4/node@v11.14.0+x64 (darwin)","dist":{"integrity":"sha512-wQRQO65yxEuKU2/SqNTJTeOuifdTnjtbAwsNpCQYfWg/HjVBBOOzUlc6ekob6absh/lSaiN8VoDKRLbErM/OJA==","shasum":"6d9211438484cc0d428a94e50db5c445a2328db5","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.5-alpha.0.tgz","fileCount":15,"unpackedSize":41567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEptZCRA9TVsSAnZWagAA9n0QAIrRM2E7tutdt6+Hwcci\nmGP/qMZqDrozxQ9h/cM8XJVw2Cy79RLiGdzp8ADGftltL9k4OcBXs0uHUAPf\nkVGEkWnueSLSXEo1g6zL30srS4z5Yt1f2wYQM6YzhTiRHoUazbbMYV/Mi/QG\nfBtczIsTCuakUme1mQTOUCLnhibCjAIyDrcSPqJCBP4C+qQ4lsLnn3TF4Ono\nvYFEmG3OsTSiYxhEun193rjKOZ9a9gfWXNFl2we2dBZ7WH0SR/9z/74outmi\nazf5GUCgYKMa58lANRTint3frm5T8SbPV+JPIOhDbxXJeJiuv6oLjTDfJBhZ\n+zY9gMGR5UoCAnhQBSBpSrSyaSREpHKuVUZTfKYJxl27QCtNHQ7C6DcJOoFJ\nfuDGFlpbLrm72nBqRdgWJ68QVb5o1Dbu3IsgQe8VXkgokw+HLEjcWHz8tDJo\nwD/0qDFCFeGLQOq3yM3xCKtZdc4Hx0is7sp64jyM2YTeK9ahhUwV1PSTSpCK\nDjVhabICLMXUbFTIg9sXhfe6KWDslXfslhJW4WiN+qwRK07nPhHjZhPP9HMD\nAm0ek9wZANS1bGI7lUtc5cUC2vsBIJcTpkCq/2VR1sQFjj4BPsTlnjiIxYa0\nftPDBraFiCS9/ahduEg2Bso1cC9R2vtfdRF/KKArpeBbpwDzB64sZsokHvEe\nrGvt\r\n=s4lu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEdPJ9XZs4e8DvfDfeV5oHVH7zyLOemJVlZ1FMt7Rt4cAiEA9FeF6Jb8n7Lx72jLzUIZcue0LwlGZt+1QLksA91/A+M="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.5-alpha.0_1561500504728_0.8119704733523296"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.5-alpha.2":{"name":"apollo-cache-control","version":"0.7.5-alpha.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.8.0-alpha.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"c42d817836c10e3b59cc1afd0163eec59d7bec90","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.5-alpha.2","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-DZkQ8m/W49FeVRTql1I1jGt6TI+tBSfXwAf0Rs1aTZ1xYHeYHp+5ZRFfCnK1rXejwPcL1+tHKU4XQkpu4SqLMg==","shasum":"1ea6107f11dad01e9f54bac5527590f4c40017e2","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.5-alpha.2.tgz","fileCount":15,"unpackedSize":41559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGTLtCRA9TVsSAnZWagAA/XIP/RJRLo91th8Nwcu1ugrc\ndLMHYe/a+f3BlIF9CWAbBcsNi5frsq93hafIYIu/cJAvHW8mnlS48dhN5dSp\nHpC/XTVKMzIwI2zGYbkTGfAJXtrMbQgaJ27+DCcS2Zyy26oHipXDzXFo5LbQ\nj67byBrVG2kxa7LX0Z7qoEaWCXPJ0HYRCYA99LZM3CYaZHa5pD00h2eFGjG/\nFaxauTX5e+bGH/ehcX53HuanaNsJ9W8wgwApzXoTXSijOBsmShzWnp27Dx9o\nnJCEO4NACmGQyRze9DySnnHxLSFI0Nu/IUxYXIoayQOmceP/y8IgcaSC+eSi\n0p2neRXXCZaIGIc0NFhCn9O7w328WF7hhk6XR77FM9wnB27s+CjP/aSPR8bb\nDlUwo7H/Quk59oNrbLv+bQzc+UG6A5ZZfzxXBqtZetRPxmkAC3apqB1QQTXU\n4M5XtbP4YJp7/cwvUsUdaWOjR11VjSXcFnJt/ZJTR3sXC6/dkmWk5AVkO8Fs\n2/i8iyJ3L5/RR5FvONGpHBbjxQHN7U6vvkaZsUwxTgRHvWsEj/gXs4+K2uvz\nFRYt3AFaMZD3Kikjj/s5FFIon1JYT5sE6rmOT6Hkaorcvo6NdCNm2wv5RVE/\nswb71K7qvpJo8zWCmTSqqbTxPq5h638PiaZne2bVBMzzGGVlgTO6UTAcmvRW\nnmht\r\n=j+sg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGFY3j1TUzc6kYXgkOC9dcwregz5t/4i63tVMOMICGvsAiBk2N2SCcuhGw5oZRYz/M3+UwbJTZ5covo+CwaUG5VpKQ=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.5-alpha.2_1561932524539_0.9353725173913363"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.5-alpha.8":{"name":"apollo-cache-control","version":"0.7.5-alpha.8","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.8.0-alpha.8"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"02feb8a5fed73c529a119e2d24a74ade1e812e69","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.5-alpha.8","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-Kp0rOilTLwSJc4EhfpBmZeRQD3ccuLwueDI/xy3LWLpnduiM/6ct1T2nTs3Ukuz2mnh7GDikx2wZVv57xnRrxg==","shasum":"e11fba3777a746ba19abc45e9f202cd99b5d45ab","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.5-alpha.8.tgz","fileCount":15,"unpackedSize":41559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdH1UfCRA9TVsSAnZWagAAkUoQAKN1ZE9e/gvOZzIFo64z\npd28Lvuv82YQ566FW7dk2KPWlOlYH2sZ6zAL1LwdkK/AWD9+XpYiHpCLwgQE\nwcXg2irVMoMu1MUilLqIcGt28LT8L7oKGtTQkFbr/JgpzYDEJe8uuth+7nUh\nXVd41nxeXanHxgUDwP+tqqsiz+2ilb6v/8teT5ah+fXN2jphQK44hcAcLl4d\n3wjPQQUiaettz2o4ZX3ZDgFf7SbsXZ6AE9ZJHjefQvdsMXnv0Hf9Sohz1c7H\nU+VcnO0GUsUDNlSmWVyd5zjkVTTKLaIBOw6VKTAoZLfVdcyvyG51sjDxN4tl\nfxngPYbRZE6N1zBHttNcov5RNoBxSnRilCfo5WKhzzHQE4HhoWW8nnu02CgU\ncg95SjAWaWLGG/hbgggcwYAoNnok5KsFOUN1FkZkB/Jq1lMO4o2nFbttxSpy\nCQBef3TKFlxmbGHDJfAiYz1e0FL1TST9Alh37442qdQGq5pTXHcCN6kKQIn6\necAhldqO3XEI8jvSgNu6BXp3pU891yqdLhBER/3kJQY+lzPwd95MK1ar92fO\nmADY90uDdnOvsBN9Bf4pqn7EVE8/e9h0nvCgDyKPxqZqgDBfDmZwKble1zsr\ngu8ETDd+mQpF4TdyObyAbB2LlVRg4ElBUqhgnn1vvH9utT5v0XSUt8m4NMlK\nO6d7\r\n=t1qT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEMQvDmubQtX0OmQXYUONGwS3hPHpjugIy9VbN/8aw9lAiBPblLoG00byiA0s6m3ZRTRwqoHCICnhnCTZyU+xmFEVA=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.5-alpha.8_1562334494518_0.6695760335105854"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.5":{"name":"apollo-cache-control","version":"0.7.5","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.7.7"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"57210129cda034b095d3f227298021feddda03f7","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.5","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-zCPwHjbo/VlmXl0sclZfBq/MlVVeGUAg02Q259OIXSgHBvn9BbExyz+EkO/DJvZfGMquxqS1X1BFO3VKuLUTdw==","shasum":"5d8b949bd9b4f03ca32c7d7e429f509c6881eefc","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.5.tgz","fileCount":15,"unpackedSize":41543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJ3/pCRA9TVsSAnZWagAAFGoP/32qC3i17aO43W1g/U6T\ngt1TQfAUMafQUUjO+ABFemqZu6E6TkfKPLWPfxGA3Di1IyhabXWfkzH/OAVb\nfWl+r0q58vdYXzVMmSPBKugeTH4JekfwJAS22jYu1SN/lMCrPwjU9ArTIGDG\nO/0sMH20dE/P4wOMXI/ttb2hXTchWb05wInwrFVX9IdScqVxaVykrt6iecX6\ndvy9FNDwUW8pvtail8DjB/TyNqxrvVSJPhf/r/d8vTMIwx9bwnhCTSYR1Eca\nfxnnfidBvws5huvkAmS6tYhOu0QSoM+e44o4qVHpYOT90VEpKbN7zAUxCqL4\nW7MEXmx9Ii88+vGkL2oc+NfTZ7hX6lerpzvOQ6Fk7XxPv+goqjbPJvFoWFUb\nmj8LWzFxprD6+bMYnqEsxvFIJyVhGHbccl9gvvoxYm1peos4D9waVaG9skNp\nzPS56x5BZHSfaOSlfHxbBdViIlKzax2Db6xZrXS2RSXxDbuadVHtXHTRBto9\noCBnq8I1iAHc5PGR+8RxM1NKqTIeZQMmszywf/5ap4olu7QPNBERx6G9xIeY\nowNgYdTW1Rmr6wXhS5FMgcjAW3EIxFWF3FlsKRWGzSPMaFriRC3NMe+aVgaS\nI2wllx+JUSdtXowDSYDjuoJQ9WNpwPV/piWs7lBzGYO740308N8twUJJS/Ep\nsQxY\r\n=3Dhc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqTZZhc1D7ZzboF0liEJGT5+XKuyNgf3GkBKs47pRFuAIhALeduxNfZzyWKOFB71PWNhCUgsn8V0rc81qN1alt8tHY"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.5_1562869736418_0.024784633743421214"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.6-alpha.9":{"name":"apollo-cache-control","version":"0.7.6-alpha.9","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.8.0-alpha.9"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"0b502808ff0151acc5ea0115f60cd080421500e4","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.6-alpha.9","_nodeVersion":"8.15.1","_npmVersion":"lerna/3.13.4/node@v8.15.1+x64 (darwin)","dist":{"integrity":"sha512-1EtKRWDh5sXe7hk7Al7gzqEGGZJHwobtr+g6LhSmY8YEn9BeB2ps7an+z9fdRVYUCY/IBgJABkdQu4jqQS6e6Q==","shasum":"c1866cabdfbfcec4a689843a9f40f9957f3f24a3","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.6-alpha.9.tgz","fileCount":15,"unpackedSize":41514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKkPnCRA9TVsSAnZWagAAW6AP/jI45dXLq4RO1WSv8H/j\nEqu7zz4ny2uxCfHQu+Ja2BttdrXjvfPNg1y0S2rcuZglYVXOwIkLlRQIUmbn\nNZC1GF14161qpu8pM1Z3Ld0oFrJrnvSSGR7nQl1v6k02swbhC8Nj9tiRYDSM\nsBPK8zFuPc/caSQZ5X179K4w696iEdoii14My8+jEyVxQx3YkUvQoCd9uZ0+\n7bwnx2h7gqDD9aitVxoyUTVnno15S0ysqaqWKHTr0vs+3UuR8rTiBEjcN0U9\nWZzOs11hTKkdJDoE3yldJa4oeoSPEQUWtc4CIC9b5aKgu6S64PSxNkgtcUrQ\nNnCEgL25skh9/UyLP8ebQ1HAt0bWdFgokqaNwOHCayv1WLOACm7dXCYHC7QD\n5RP/O3Gj6YBEo+3xyDDUpmKjh9yT97gt3Agt3StfTkJjf4q52VS3QB8r++aH\nClRMPq3M0vOIKWvFUXAXZTGUEKHDINq0sYTC1GUVWLudhdkDIrLf3AvBePAf\nYvdCxdsO5a61YW05vsZn6sYsF3xVFp6ziEAP79vdPNsDVKqrKpm77lW8UcTK\nmak7j6dMQjluk5lvlSyERjkaE55MHF1zfWyieQXVHHFVWyOr32Ozc8/emF//\nqrFKt7fYJKn2vqIpWdzcp+3bzHGPmedkTSyNZEUdaUWk/AFrh6Dh4wWp7LqI\na6F/\r\n=Uf8K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHL03Coz+ikI+2ycAlqKoN84/LAJOM2B8cc9DR8ExI6XAiEAw/+6jMEOnsFqoPApfxEaX0/8hPzJik+QMjgmVj15UlM="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.6-alpha.9_1563050982424_0.6879743155261218"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.7.6-alpha.13":{"name":"apollo-cache-control","version":"0.7.6-alpha.13","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.8.0-alpha.13"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"b76ca731c7de2ebb4cd1cecff7e4d6c23f1f3b9f","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.7.6-alpha.13","_nodeVersion":"8.15.1","_npmVersion":"lerna/3.13.4/node@v8.15.1+x64 (darwin)","dist":{"integrity":"sha512-PsZedIhovZBJYdMOEZiZR43J8wuIW3BuRfLl/9qiozj3rASSH/gfH5PpcFAMJj2i0T+Nzpub/n+KyYRyjOlmMw==","shasum":"91ad8b009f1d47bdc29b214d054f92f2014ad97f","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.7.6-alpha.13.tgz","fileCount":15,"unpackedSize":41516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLHSYCRA9TVsSAnZWagAAPicQAImmYDvy8cTztw7scmbq\n04ff/my5NJv3QJQ7/F6UTGkkRWEyxTaWtiHN3DCXPxG0EeEtx80PDejE0G0J\nTM1rdVppH/60qh90d/OYYTNF7lvtPcKwK6lExH9U58Kdu8hXdqAGkh156g7F\nhOd+A+YddFTSxR+h2phVGJhhZbhqFTFTLDlRDeBqyMvMZi2t4LzWTRsh8v+P\nF1Q3y5U/Y6Xs1cS0PxxsiXpugZF4AYmkHD18OTYFzgrP5g8h7m5dyKISqBtx\ndB8HGffKqlt0SzY2QOaxfVGpM2sZjATfG/535S7LPxzRsDknIru2PZRwVFKN\nFzcQ6HwHzRg03hy750PVlu9VKM6Nh2eQFuxN9CXZUxhjVx5nERbkcoSjRtbX\nZ/+KdYJkv/ozntXkKkU2+JS1HRkp6mx3+xb4Eu3/0D5Tan29oVskFBhbsyAZ\nAePTQSGuyeTHVIKxpfUQAyFkzo6/SValhSs7MnK72DfhTUyiPQp5IThhRAHy\nToMJ4IHbnQEx86NrzTgWXvh6mc3WMosioVcm4Yi70m6XEQpDNLEQr/PdcilS\nnqEEsWLB6WgrA87hC4ty4OwetYyM7Od5abTKbXmbCbUKjAtutSpo1FkfGtca\nnCZPSKQ/46DegagXy+9jGZJ28idJoEcLhGkjtSWadwh6PxM5HwGhpSVBAVUX\nbNNq\r\n=Yv67\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCukjZXk3z5waVe1pPRPcFppPjBDMNcULii4UIgZv2nHgIgbq09U0GNZ77fPP922xJA7AWS4BE3QcIC3smcE6zBKno="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.7.6-alpha.13_1563194520123_0.3471396273956031"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.0":{"name":"apollo-cache-control","version":"0.8.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.0","graphql-extensions":"0.8.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"1d44f3d4756d43123eb01bf293e65f4a3c2e64c8","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.0","_nodeVersion":"10.15.1","_npmVersion":"lerna/3.13.4/node@v10.15.1+x64 (darwin)","dist":{"integrity":"sha512-BBnfUmSWRws5dRSDD+R56RLJCE9v6xQuob+i/1Ju9EX4LZszU5JKVmxEvnkJ1bk/BkihjoQXTnP6fJCnt6fCmA==","shasum":"08b157e5f8cd86f63608b05d45222de0725ebd5a","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.0.tgz","fileCount":15,"unpackedSize":41498,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLdULCRA9TVsSAnZWagAADgIP/0jyBc6uigojkIrFE0sQ\nx7IEgOyW0KOzEG1ykyD/B6TmsPRLQP1wbO//P7xMcSbUg7ulwQSkKyCfyT72\naMwwAziqbIPG4I1uVizlq4h9BZdlQJg+m47mhUo+YtIrxmAQayqdxP7zRbQD\nhZ612EA6ifgvKKC/9sdsYRXgCfV36f7ywBOto+UsujvsOGwXJwTouEkONycV\n3U95llj4yy5LtLMCER4nCYBEI2Le2ww4LNHiCLj7/8Hjm1zJMFMPEe4DUwm4\nDljnuuc8o2KfVqryq/neL3oZ1/9uiegbJWft8fueuII9DicgT5n5PjsgKCrr\n1H38tOHDU+T9yjoHR20Qh/+lWTI51a1ngScFwYY/SoU38KayyLLGkB9ffBya\ndZNkN15YyR6U7PAjX1KaC1bNYO2MgKAc06GzpjWk7s9PsmiYxYxF/X2fc+Y6\n8BVBVnPbZuL7XxiVvKjalBxOOg88UEbxZWCehVDHI/oYpt6EEKbZ4wq6O2jy\neRk0wimAtv0oEmelcD8VRzgAGg3YWhVLR3l95XI3w/6/2lF7RaNQlQMc5vIm\nXwNYu+VwHy1TUFlvzbAnaf1bzB5u3AtgVCV1gzfQiktc57KVcdgzA0SGTH0L\nDbjhTaHVmAGGUcS+l6O92VfMuhHccC5Puc+almKeO/hckagRH1j7B0hObih6\necvb\r\n=f1UP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxGMKfinSAxRK1ebqg3p5QLHEcRmm6OffpmTiYLOFlywIhAKd5umg0tWI1gaP7bJEQgSkR5gV9pdgztJA4b3a/F06o"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.0_1563284746781_0.8595760654618185"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.1":{"name":"apollo-cache-control","version":"0.8.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.1","graphql-extensions":"0.8.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"2f87e4af9a6f1e3c8f4c51b4f77860bd3150c8c6","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.1","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.4/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-yQy5KB/OuX90PsdztWc4vfc4R//ZmW/AxNgXKWga0xW5OzEsysdJWHAsTzb40/rkJ9VNeQ+0N5wGikiS+jSCzg==","shasum":"707c0b958c02c5b47ddf49a02f60ea88a64783fb","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.1.tgz","fileCount":15,"unpackedSize":41498,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOYisCRA9TVsSAnZWagAAiM4QAJG1qNTMUSegI4dxksJe\nxd6qaj/Y85Rp5Y2KNAOL9yZQRnWniykrg7q9v4ZCrL79qancdTDaZWZ680oC\ncI8z5vZJovpkROHPQ4Zv/nU2Lqe0cJbQYtIT6FM6EF8sYfdV2gVtlihKsTZb\nvu6ncSiV60/75Uz3InBs03Y5Ocrl6Hyt4jFqFHoPUl0KVGvybJHZoYtP67Pi\nv8vZL2KCmmWPDd1avw00CBJ71xGBXk+si7SGGxBucWO+uDnUdwsGDogkTcQ9\n5GeQhIWJsSaYBn8wnHNo17MGt7ohRrUtk+KJhbkizJlbI6G+b/UOcxwyY6W5\nV/qKoGw7dizf7haI2EXh/bhRhNdZhWWBT8MmKCB7CaaAvvJfb/fNojIgqe2x\n/TjccBJSORXKx/zbm9PgtK1GwOi4GEws8BUyUy3B4wUVF8h4YS4i/kttE2zz\nVskGlm/wCUqJ8vQo3ZYTu28/32ns/g9EM8P0Y9+ZmZ5O3JVT4p8l0DyWg2XZ\nCswBjQbdC74k7FmUoIrI2CCEzTKBHcAHEugN/8R2+TVwJqVv8XrFeRSfY3mX\nYFTTbDwx7YhZOoEWdunwbBc527EKJRA/nZPcqzkpA/6tEXjQ/m1GgQZyvRUi\nWslJIqPflpjt79J9d7gzXrTsL7c6BR+WvkkBl1AaKBwjvSXywkIsM4zYNZg6\nD/Nd\r\n=jb1m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGy1OBuTqgQgK1isGjZILb4FYUxySh6/LvT5aW4/Aaw4AiEApnqk4QaT9DK9cjlBmrshFVGXg6a1/NRMuIEexglbBQ0="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.1_1564051627962_0.8824487325898267"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.2":{"name":"apollo-cache-control","version":"0.8.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"2.4.2","graphql-extensions":"0.10.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"029c8dca3af812ee70589cdb6de749df3d2843d8","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.2","_nodeVersion":"11.14.0","_npmVersion":"lerna/3.16.4/node@v11.14.0+x64 (darwin)","dist":{"integrity":"sha512-rvx4DdoAAbWhm3L0IoWrxN+Zq2Xk4uAYbaiZk0Nhuc/y4AQUww3JV/z4EfCp3O5cy5/lNMW/tPOozcqi941awA==","shasum":"0687e323053f907fd9bb601c1921de10799e24a0","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.2.tgz","fileCount":15,"unpackedSize":41499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZuT2CRA9TVsSAnZWagAAZWYQAI0E8LnXV/I9JrwvM2rB\n0QJbvV94p+o7n9sUtnmVGok7HmbnGAhFgh1ed6g7Oivk20b8sdc9iSlyD8Z8\nyNkp6kTAKhYacBLw4e+ThKGf/AapueqvgBNHvmMH7roj8pNuxeFsbGmClaTJ\n8eFiX5bfJsuUtALrDA1N/7PrqnbreuXmESNK0dYCOYHxJ63pE3c6IQqknM1K\nQI5QV3dj+ulK7P5XyJAsnutWBuJ5YVAlICRnN7g/JlxXpd/VPREWjh3wt7Lr\nDhVhB+oV5uPDMhSPlJzsuxiAzxd2qLC8NEAKSjefkOAfJQISbJXmug+RbES4\nxaOx1HgvDa0vEQgHTuqzmLmsNPTtEbHTOHbPTfYGWQ4nsysG1srz0jxcsFUG\nPDdy0dJuZpc4aTp5f3CFLDcU1nvjzEe10W54DZGbM5GtABAh/gQdgzboh3e4\n7pL2szI0tXvl6FyUNj9bfp/+AQKs2wNRbBnSAZeanjoJbQ2yQXd7Pk5Pt1m+\nny1dzB8mNGW/bz3pdG3EYVGSEPNbWe34Qae5fqBxovqedtueD/xLBfuac5vD\nV2O5SwbItvaNkaB3tgIefrLf1VuRL6JAXLchJfkgW9YNImlCULQ6/ekq1dgX\nAcGORdrV2Nus7LxpGvr0bXdD4JkUmF0lS+Rn/4b5BJH+ngf7opV+rG4tvkWI\nak9Y\r\n=o+Ba\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEp5T20xRxWj4Ou9tc3f6hlbe0U96WMiOBkZfN2UXNlcAiEAx3FObWDSLydvKNF2iI3SiBMImnHWZ9GaevyHnCZ6R4I="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.2_1567024373631_0.4896755512818145"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.3":{"name":"apollo-cache-control","version":"0.8.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.10.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"92ea402a90bf9817c9b887707abbd77dcf5edcb4","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.3","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (darwin)","dist":{"integrity":"sha512-SAjWxMsSYqfADIW6Ti1KmMKXJQMKzuZcvbi358u5caEx9Nj2PRpieO4WCKcaLuJpjHTUukS+2BJp1Icfx8ZjHw==","shasum":"50c2d652aa2962b6d5bde27400558a9fbc771b63","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.3.tgz","fileCount":15,"unpackedSize":41501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaPUECRA9TVsSAnZWagAADpsP/0o9JrDG2awBWNLfHACR\nUSG0N60DHeFDBZO3YJfwLj+k2Dh7j9Jqpj0Z6CYiYX9Z1HB8U4XfDcme7FxY\n30RWZuXV326HdmzGTD6IoONtvUajOaFQfce6TlGU4pOkTpG+XtkK6NTZ+8eH\n2DB7xlQXlcscf7d8TpR/ast2T3kMG586q/MdovZKrAvNntDZ+lRe5pHQ9+m/\nrCtpP5hzCpAP4p8Ee/dGJfVJByS71LnAWsE8kV7evEh0c564/yjhhhZ3PMZv\nLPgOVBHE1v3Yso3fUvjTjLeEmvgbjRxZftD1GaasbLavPGjCI6Inybve3wSQ\nd1iphaFqd436I3OL4i99gDch3l4lhXAZknb4bIvZqjnaVrv85S98VbgYdjxY\nMk3t9lMdsDsAuDDkyGwxHx/cFaiTN3ALaUIb+3SOUDiXAwqtI0F9q0eN2Wxj\nqkEMOaDQ+nN8/alTIASLop6SSqelMj4Sm85F9MypP1MUekVYoqXinpaNoZGa\nBEsq3mT/w1fkohWBDxj/cY8tlXLxqvnnZDUtwwvTHH9x/wSXJafnr2imVkvS\nvAZHDKdWNQQQLnZTXdiY+2CzOU4K6A7/oGtkpVKOUKIwiDt7Bn8rej8YZDi+\nfQeF8HYK7iwZccYKCfxTytroa+Ow+vwPUR5n5b5SdhVkkKGzwKoYUdpeGsGC\nRM/M\r\n=fk+k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBysEPfSn/fDPtDtaDOIn3UWb/HlMoXD/nf5qT18cYAdAiBZNv5LckVumg5GrrYzS3XfFF1dfEmd9+F2neNCXRyMEg=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.3_1567159555571_0.5269512369568135"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.4":{"name":"apollo-cache-control","version":"0.8.4","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.10.3"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"a1fbf95fc01739d5cbaa59919149bb85c563fdaa","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.4","_nodeVersion":"10.16.2","_npmVersion":"lerna/3.16.4/node@v10.16.2+x64 (darwin)","dist":{"integrity":"sha512-IZ1d3AXZtkZhLYo0kWqTbZ6nqLFaeUvLdMESs+9orMadBZ7mvzcAfBwrhKyCWPGeAAZ/jKv8FtYHybpchHgFAg==","shasum":"a3650d5e4173953e2a3af995bea62147f1ffe4d7","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.4.tgz","fileCount":15,"unpackedSize":41501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdbDxbCRA9TVsSAnZWagAAdYIP/2bpRryejSGj4lImDwDK\nh6qXU3jiRzbNtvGJdudVa/ZzKOy1EnDov738DAWvCN6RKVIfpMoRBey1pH+v\nfMp8leUa0LuDeWJtL3XZ+Hrt+CnQ6Bc0kJA3PtRw/bbR5LV4HYp3fjsVaQkY\nClAenGWNs318/cZbXcgRP89fMUuW7vQ1F62b0GbcR0DCmI2WiOHdaiteJo8D\n2sAXMkasNPriqRSgbFpa/v9cvxDzeiGX+T/M4qkvbO2iKqheeaa1UqqIa364\n7b2RMrjmc5/L2XwbS5W1B9Bo2o3Qg2WYJFgcB17/0TpYylXO5V7jAuKiviBH\ns1EiZOYP195SlyurKHZCb9A57M6zuV4VH8X5Gf+Zap9ZCsgJs7pLev0b35wC\njdNoI7XsrRjSZsyOmpMqs8Jr30EK2WUc05BnFvrkUuCiD9LiJ77qc4uMwckF\nYLKFUlCvFiWFZStQtoloqwQmgf/yXqNNZRQZ6uncJ1OA6hgl5mlztgWPz5CW\nIipcRlytCphNSQhM37ZzTdc2rq74DsV1Fp15gU/4zUshTHorfR1bIFMHmmqp\ndHJYSdOiZgEeT/sJbuZfKJDu5FpgwNQQJbkzWVTSz+vkNWyINE34OTZU5vT+\niGT2+vOfQLvgrbVjZsilfZIDlAFyNUGDm89hhbioeUNnuiqFS6Xtn2zfVqsA\nmMSE\r\n=Fi/r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDR1d192hJ3Qyzg6DqpHDVD39kkcpYzNFz6MrSN4bYbPAiEAv7gGbVUaKZtLHQbOHKLNZfSpxT4893D0zOnjUPFWYIU="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.4_1567374427017_0.8072163765583884"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.5":{"name":"apollo-cache-control","version":"0.8.5","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.10.4"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"fc7462ec5f8604bd6cba99aa9a377a9b8e045566","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.5","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-2yQ1vKgJQ54SGkoQS/ZLZrDX3La6cluAYYdruFYJMJtL4zQrSdeOCy11CQliCMYEd6eKNyE70Rpln51QswW2Og==","shasum":"d4b34691f6ca1cefac9d82b99a94a0815a85a5a8","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.5.tgz","fileCount":15,"unpackedSize":41501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnyDqCRA9TVsSAnZWagAAb44P/1EbLmvlHvAPwO5m7jcQ\nNrcvcaZ/O0PCWkjN1l9LjpJODSe8DfEIo6R9QV2X3dJt3Rg5jSEzJXU0rf0C\nQXQggRxdg1iJHKn5u0Li39z82yWxeT8I2r9FuvJiHA3+mYaZMwNx7zvFfWox\n36qQvdj0iLzt7Em7JmkH0cwVBnE0fAHTxMUO1JrfNGg6zqa5Ih7IXUSyfmAZ\nQ+346zC4w12sxSPEAdMunHXvUqNZNWxZQcHszgMf5jY56A1xHbIYF5XhuOqw\nC+WLUfmdXsuAbTH/dohJto4jpga3biEYKotOdlLJIjT0IdlCnw3QK4GQbWX0\nh4NixlbatMZfsKkeyNK864IDZ3zzvg0CIgA3ceys+t8EYjWkk029EkBA/h1W\nhiZbxA/ZiIR6ZxJc2al/6tfcQTB0g/n+ST71VY4KLnup/BLSb5bUonHHqX4U\n8CacSU/H9mWB7PqyQA1wSCsMpvQVHZTmkanBdB33yHihMbN3DLnRmojp8lbO\n5/q17IXrpdfja4kGkZo6r9Kcj9A+O2Oc68CEEqWpWNMBBFifDZyNXagRp3i8\nD8alIEM8lvRp5fWXhF+2MJSvBFD7Q+1Oh8YNobyggPYQ0NJvQ1hZ8h8tFnkh\nzfWknNpask+Qoz8P6mio/poMRLdqgqfvTWDCGTE5esAp1Ix4FaE+1TzFHXdv\n2gTI\r\n=8x9o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBVVE4ypaKiZlB2U+tFJBIRXI1uNfrk4CWqkgt4KRqZUAiEAufNRm0BjmS6oSue/lp9z0VWjHCr6oYD4cfrEQ+ju0oQ="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.5_1570709737370_0.17096167424532083"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.6":{"name":"apollo-cache-control","version":"0.8.6","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.10.5"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"2a4c654986a158aaccf947ee56a4bfc48a3173c7","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.6","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.18.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-/HL/1vXBHkkYgr+kMvAR2ozyfh8cOrcPXHjQmIMxxNpnny/dSoUdp0qouf/tkI2s7/BTI7YHuKhZV9N/EQ9Wqw==","shasum":"1aa5a233bc3f7a9cde01be4ddcd2120e0aef6ec7","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.6.tgz","fileCount":15,"unpackedSize":41501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1b24CRA9TVsSAnZWagAALzoQAINU2+if50w0AQ1tax9G\nJAbTeXpiCUzrqCCNR1epDzoGBXA5nv8VarnJYht7q6w+4CGvCZo66n1Ea+0i\nM0WDe7YzGoW61UbD77+onOS90ohWeAUL+EXC9IUs1vnaHSdGGIa1seWxw5YI\no/cArE3OHm9xtQdz1k+ZDtD3+uE7v3Fobal9eqSaxr9fiBi4ZsZFQic4A0mR\nhRFo+OOehDwfrKghNniXBYCbm/8K6gh0N3CmcjO+glC0O/Tmt9CjaOJkXxCd\nrbQUhxna4QT9Pu58vIEh3T24gTbj5yU8oZqDMpo1jDcZXMCj75M9bF14A4i4\nodoQDjaqw2lbNnUlsxpL2kuQE0ztPhMnx2+1hM4M1dW6uqiFviVUnFO8I3E2\nx+EmbELHiYUZ3B1J5VVty7Y2eF10PwXiCzOYnm2f7+1s7tCsFCd+iPGK/TzZ\n0Kxh2csDjvHmVcwUyZ3RC+B4tQeh9shnRcEBAvyZSeUHS/9LANGkDbN750P0\nHYiF1CRfpua4myqOPeKPJh+oqDhisr880EXQVDWNArUnZvvkqMOIC4oAQHDL\n3UxKISu5u08jU4maHFi4jpp02haj88ymb2tVPAHr3w2niv6v27Ut85InBp67\nevqRQU8iPMaFJMqbahe1mNehgV/GL65p4tXoL3px/38SCrAQhYA9H/yZrlqQ\nR6JP\r\n=/Uu4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhMesoOYMTWKfbtqrRNjdrq0RLOL6u9HAt6o1cRZvcOAIhALKD2jSf5xoHyBhMSozj93T1aZ9TtMF0NO2C+UwZE6g7"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.6_1574288823749_0.4397319741973398"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.7":{"name":"apollo-cache-control","version":"0.8.7","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.10.6"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"d49e4d2038df4f5aae824a98ddb21dca909051a9","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.7","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.18.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-2KMn451IFU4dx3IPmp0QzaLEFtiV7rB6fNurUXX4+5LHJuK3Jic3jD8ldVLfbfsXZcgguzm/YYVFuotnbmaZiw==","shasum":"5871db1c343b28d430df440ff9b3a27618831ada","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.7.tgz","fileCount":15,"unpackedSize":41501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1cxjCRA9TVsSAnZWagAA744P/1ZiXDFVbgVG2bI4uuw0\nFLshMnHHEavQBVXtIFqwSdc9TytvasG7Liw1FI4dyGPX6zoXnFcV/XaLI/c8\nBU5afxquaONx+0K1SHZtKc7dutQmIYmlATMY2D3oTfwHkDBHCHHjRI/taBwE\n4wFLt4NUubD88e6b8GIRMNqJXs79Izfa1gwXCDjW54rTyoONtk5YkLNcSNom\nK3cNRnl95IdphrFVScGdHgbEAc3kx/tmZShUJI5hALdz3f9roFtlxU+gZi8i\nECtbvutsCpaixpVd0fHeyTO28b/Y2fhB5ro0xTdefU/JhjcYmLkzw69S8cSl\nV/5uVXWsoEwN+1mxKT+lr6G16DP3387snQQ7DqfY+QpPxo0vurukMg9v6mmj\n+sXtz9JGAmWVaLpk6/jzLX4dE0Gandtg0xwd5p3YACPa5ub8MllRo5tfn1Dm\nwV78biFldOz1plciboYurkbKzF3SQqdJaSQqq/0w9lpgV9uiAcISPZ+Y7O3g\ngjSEaMMR29sWkiVyG3yOjQ/MeY3O2QU9oiLFWkIU7LL1l1J+Zs/z2wt56S9N\nHNXOHiNbfRrUZMTUcRs0Jmh4GWcWTuEe6vn47TEbPrxubjGwHt72cMxa17+l\n+XXAlXWAhzG6WTJfPzD+SeFESQa754L+ufhvi8tuatzS4ebBqvt1KVVH0Z3B\nS0T7\r\n=F8Ax\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDixEmmvCs73bBbtbfrA+OoB+P1kXYmfeSEFvOPD6N5OAiBN2mICaWz1ncyBTIHrPQ1qJJJ27BNSIpeQ2+elx3M44A=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.7_1574292578684_0.6700597118501592"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.8":{"name":"apollo-cache-control","version":"0.8.8","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.10.7"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"8d065d8b8b7f35f814695e74f5c685b7d68d5e00","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.8","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.18.4/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-hpIJg3Tmb6quA111lrVO+d3qcyYRlJ8JqbeQdcgwLT3fb2VQzk21SrBZYl2oMM4ZqSOWCZWg4/Cn9ARYqdWjKA==","shasum":"c6de9ef3a154560f6cf26ce7159e62438c1ac022","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.8.tgz","fileCount":15,"unpackedSize":41501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1tDvCRA9TVsSAnZWagAANKIP/R6SVgb6ehgtaHC419cb\nXr1IVbIRwRDuFRK7jSuOVEXLMUj5crnS4jzHOG3J5Lvl3iVJuPd1XRnCp7fD\ntHvR3h/8UYBM5I37//FIlf604+LGBmPOLMYH7ta9S3QUDdTJ0GAm8y3yR73A\nIBSF/wvvH190o46eLinauWv77Ro6INruvwYyc0/bMRuAI9itOW5yDNNJIjit\nfzBTv92bUGhr57/YVuFMZmwgQAsnAOVNTP8AR8Lbi7I88xMkOmGpTFKad/C0\nKEx/ARbegCB0XAn/JPm9mHPvml9attQG4VV+zE4FKPCdlLzUUUqU9EmS8tRf\nAypP/z8zdQTwsTS7rFj4K+vxcI+Bio+jeS7z3/n8qi5rdpQRfDz616fYQH4G\nW4ut5h2/M93fx2IKN72aGtJz4BpqAj/Le7GtBMWvc6dFtAB9xnkbGgy7muTS\nXqZGA7ttGCNMdSp9v/rNCdywQB8G7NyLVtTvaLvkJ7SIkcp2HJqirmbEeQ2r\ncbSxaGVcJ/8EMEVZN+HuiU2lhbBwUE39EM3U7cGMWrjsOcGCRDQN4Y/VISUM\nX2DiTGCz2Poc89Rddv8ptz647k+TUnN+D8uKBv5Nt2wzAgqlBKMa8mrVKw4/\nm8iZrxpDIZlaj/f5I6dNb1LUSikN68+cfsHXrMq5sFQLHCCt1H1F/0lREoAH\n1gZQ\r\n=K5QR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDmebiE2sbKVOSTmwmhd/HJJY+YpNjyfsgvmh7GigAa8AiEA9vPOg+cX2Kg1+RbYTwFffLjFVouYzz5ot3cPO8uX8OU="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.8_1574359278881_0.818060044810391"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.9":{"name":"apollo-cache-control","version":"0.8.9","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.10.8"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"ad5eac5ea1741142122e4cb8fd34a9748be31e89","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.9","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.19.0/node@v10.17.0+x64 (linux)","dist":{"integrity":"sha512-EFRAEL13QkMbXhl0NSABVS0wfiKYIVV4sDR+XNtRy3EWf2rWw7xulYFDMPiujjtElF2qjTswzcpLtYOXgOZN9A==","shasum":"1c53dcb6cc209646b73b4ba8803ff6ea50bea2a7","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.9.tgz","fileCount":15,"unpackedSize":41506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+MjiCRA9TVsSAnZWagAAmOEP/0r57uUtsH/xKM1kpKDM\nFfmskG0s5aqQ1TJh36o4QJJBUmVvtALcBQ6Qxz+ze85xLtoXa26Cp5YluSTa\nTxfoP/Z3fBB0JqeANLqZbC0NrydDk/7SmYM4cIh2Mw4BCTtkRc3aF23NvSMK\nG8XIZDqXut4Uu85N/Vh4V21yRFcQfEtrMDFhsap76OYZYoZTdGXaU//oMUBp\nagn6JPH9vje2i92uGCk8CayrhqXkRxMcGAI/fvlhaYluR4QWyzscn171cHX2\nGX8+xn15MXkQSXx2DuV9d0r0+LaEoGoSwnEENIXdf/+RrTgMGrZTUxxIbmDl\nt9LLW9llDwVZep1Nk4zSzbvVI8QzR2SBnd0R6oFYHqa0chjQKFoT1NojfhiR\nTdfDHaczjIDZsQRk7PyrmOBt9Y6bbn1Vywq1cX3hrPXI72hRBKavjyGx6VrF\nF36D5dGXaEgZ43kBRHL0kImJRHbMGfveeEESnoQg4nL9Pb4r5z+9QrcyTHLU\nP079iEC3+mc3zUf0fwlQoXe+jm6bY0p0vvQmaBGyNDmwJYfMHFbK5niyaYsD\n1qllbLrzpUiPEfKj2gRp41RhycjLA+UWYlSQzK4amgyPuz70GvYWO/hFIyTr\nqA8IPs8KAn3Z48u6Aw/BGDIoRHKtOEM/DVieeLCdtzz0jJe3+09XpRdOlSoY\ncko/\r\n=oZoG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJFWFlObBEStUL1T6EGnIHEvYgSqOBXzDDa5A4NPkkYQIhAPWKfzG1m9arccTB2Ifk4C+jEyhUcgEBrt4loxIELKSI"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.9_1576585441751_0.6856403050540134"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.10":{"name":"apollo-cache-control","version":"0.8.10","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.10.9"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"0743d6b2f1737758cf09e80d2086917772bc00c9","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.10","_nodeVersion":"10.18.0","_npmVersion":"lerna/3.19.0/node@v10.18.0+x64 (linux)","dist":{"integrity":"sha512-1/CAEidIoY1PWw2mhwZChchK4fvLdHfdoB7AEikWMYFSbjYY6ZiayT+Q3z48wsiS/LTNugF/YJDJHQi4+qjuug==","shasum":"c104481ffa77ba32127ad8351ba8948c6382ff8d","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.10.tgz","fileCount":15,"unpackedSize":41507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeBfTDCRA9TVsSAnZWagAA0zQP/jOWLR1pFT+5IzfD2qra\nphKsVaPnaZtLIYFKq78oJm5WyMYVuqCDOljO8R0+RWFlDX1+ThqiaTtkrSig\nx5dETv+9RqXPjvvp6p1AiEZ6NlTMEwTOvagLa+vmhOWvP+4aYhnv+4nocqjG\n1EsaDUIfVaj8QVAwRIcgfTekkx4yixpWn9VzoK8M9sLGTkV4i9yNxQ/gBdXC\nVNfrMN6TtuV77eGb1XhrtC1zg1JkzAjBox7okcabQ1ufXEfYScF8CUsT6iKz\nrNRRJyWueU+uaYkH5VeEUZBT+p+2MJWvee00XqLmYO/csbZ2VDGKU6xmi0mz\nKqW2sRh1qrb4SBmIAjUdphTfZL2akjFCBAMq9p2WzKpDY67wWymGLN7RSv6E\ndPDRxFYYCsHxLLfxXj4uzYPZi3D7jGUXKZBoU+7U0jaPxTIYI48mW2nHEMKl\nAJjmhaVlkBQEyS2hFj91pNBTSggyolmDJdyirExfIJJ6Oi+PxowYNazXEGdb\nAl6qn9RipgXP1OEFJkfGVhx4AKlH6nTbsgCX5RReOWLOKhbRjM6K3Pnwpic/\n+zsPgB0t4n4ddiq0ie02Y8FJbJoYr+FHDHe7fAu/iqiw7oPbnE/4vGvdGs9n\nNELzzk9G8THu4v1X2ERg56QTmpcYiKqodPPQUeRx55MXaf6qIZ+WsbsH7j1v\n3kqX\r\n=oDY+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYvvHafJWooqKH3hUhZ/ZTdrr8Gfg4eehaDBRGSusIHgIhAJLccGuHrC6sj4P8CQeXwQKe+fdB4uq+yc+98HPHKG0o"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.10_1577448643241_0.6058257013555599"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.8.11":{"name":"apollo-cache-control","version":"0.8.11","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.10.10"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0"},"gitHead":"4d1a75e318897c335674c7ee046c0baec7df4a9b","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.8.11","_nodeVersion":"10.18.0","_npmVersion":"lerna/3.20.2/node@v10.18.0+x64 (linux)","dist":{"integrity":"sha512-8yz4qbRBIFDWRHdT8uPh0HHh+VbQXxoFGJQRAG8hyMRvR+EuURXX1ltXYkn5J3YJ3MKEqgsvwGaq60dFZq63UQ==","shasum":"726e4e3c5685bacbf26c8fbba1f41b4e6252c597","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.11.tgz","fileCount":15,"unpackedSize":41508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeF6ZRCRA9TVsSAnZWagAAVbAP/Ai/OoQ3O3283vcaCB9z\nzMsYQFSk/Ulw2tC0+OntjqRpl2mCXKpuljhnSiFDapN2Buc9Sl1/mgT/Ajsi\n17rOzq4EXw2UpSxDfYZVQ3QwzGu4ZGBXujSTxQbI1F7QPpY27kauveNqlLVT\nJGl2hIhKUvuzGmLFcCNqk1jabbaXJS1GQATSRD4wL9+t59FlcXbZC711rSG3\nOdzUG0n6V8l1MVWH/gk+d9ObsX++mEZvuPNDJC9SxUiT4uPkerD8fktdg5m8\nrd5WelCk/hUGrqJf8+QqbrYlBJ7h0dKCqJ/69bsE7NgVnwD8Zzz6DBUjsNGs\n1AaedlheelJ3ZMuE03BnchdDS6MXqsqd+LT0zhL7XJ+47Fq3deq4TrNmb47I\n3wzwjmgUGOFMNFU5XgYP6GwvM8s8TEr55cd0ZgGGHgBF/THpXE79KCVOMttH\nML1BR69oE7tNg/URVTPFn/CXGj1TJOoNFwFro6k2lRzSPIfoQ7hJB5pUPJps\nSEqcJbbhuhuzgmz1iq79lBtwA0ug6ZMi7jfi/QLIrzh65LR102uni11RRqUK\njQIwwBjQ+Z5xDxcpl0dufobDKaZV0n8aOHb3TmgGuQMMVI5Od1w0dLFPJ+Zn\nToz2We/HTnZ/Njhow7rxjoJGqcS12IKqFuCOyIB7CIlrb7/hBRp0WQbNXjWd\nsWW5\r\n=kKO0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjpDORQTM8K14pGO07Fdg4ZuzHAiK1ZmyMA6W+0TxqoQIhALRkc4dLG3QyReItlvafEEn4RJPITk982k1EPKr+/gNE"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.8.11_1578608208878_0.8870674051339462"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.9.0-alpha.1":{"name":"apollo-cache-control","version":"0.9.0-alpha.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.11.0-alpha.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0-rc.2"},"gitHead":"a07ce0fba5a78d6e1a3c0a08dfda1b449e6c16e0","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.9.0-alpha.1","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-qv0IkjCoDNZI7Xy8K8Orlc++IRlkRyRFJC7IRUAibscfNjggvLULN6AC5ycpfo/exSl9/E4Oiknhu+9vi8lBhw==","shasum":"902ca0f3cf4a0d86a9664aef42c449174ecc4147","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.0-alpha.1.tgz","fileCount":15,"unpackedSize":41538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeU+upCRA9TVsSAnZWagAAMmgQAJNkTvpwnpxJf/DiM/ND\nxoKip93MBUCVWZn/D8+o2K91L5i5prkfPBh3fYtzMj3tjH02rSmLgIWMtnjP\n7h+O+eGnjw++ADcjGltZlODbbB49mvlsWxYCb5gwi44+gS1j1ZGzFrW/g2yT\n4fnQOmDAHoS7+2ZKFk2VHv8SL71p0PHjxO6VRxxRWE77aJiDL/k3DTxxfV8d\nRlRvlVEyuFmdjLuEpoTDeFjDnstubTMaZgMKfaywXzAMmcJLdeqvVeW4eITV\npzRPooyEUh4P4JXV/ZPyUpHXlDvDVATRMmRxPN8XWRCQs0QfIClWDwZDv0dj\nqZSButidruWRuBXP6jaXVH+YM0YeMor8aqaN5b3wLmZ2ZBM6CcgWS+bPiLDP\nUGq6Jo8CHhJCritl3AHb3JBp6w/GbGcEJ5k4peLhp8bdG1G7KATik5Uqq21T\nAbHzIDfSK+qs9YsHlbbYaUHCfJvlBdKbnruYtNhmAFTKt53URULaC9uu+Sy+\n7iyf0FySL1ExMGn0D6m0vb2BMmfXeqbTr9rtpvXxQC8FUYGj1KYo+po/0+AN\niQxyiUPmJkXRsDcNPyHQs5xC72dYsnDR8aVJFULAMOHZ2X9rovM71iToldUn\nzxVceKs1cdfT99M/H19U0COIL6PQwEDUqIP95YHdp4omCo1qBHWUBu72NGvW\nYPP9\r\n=t/Vb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHqshT4kQ6ah4p7dcW4EQsxVf79vX3X0P38NXd5ATK4DAiEAtdPjBEP73kqwFenXHhb1aEbXflJQjRBIxcpPCl7RQL4="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.9.0-alpha.1_1582558121055_0.9675514923609194"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.9.0":{"name":"apollo-cache-control","version":"0.9.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.11.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0-rc.2"},"gitHead":"056f083ddaf116633e6f759a2b3d69248bb18f66","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.9.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-iLT6IT4Ul5cMfBcJAvhpk3a7AD6fXqvFxNmJEPVapVJHbSKYIjra4PTis13sOyN5Y3WQS6a+NRFxAW8+hL3q3Q==","shasum":"43d2eec16d40248683f46b9b28937a89ad3b5c54","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.0.tgz","fileCount":15,"unpackedSize":41522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXpcMCRA9TVsSAnZWagAA9AcP/j5jo/pluZZEGZX5YGMF\nhkTkW7LQgj2cOSvSI71W0gGmOf/gNGKGxhihl71iFGbkUJ1zHlxC1KqXrKR5\nOfp9GJboqDaP2vlpJNpbjc2aOfyWN5nEqO4TWb7etVnIaAEXUg26sqaPkJV5\n9F36F4vx/JKQjhf/t+1vRC9xWh9CrJjwRdR/xg8nu2FC7INW1XubO4dwI0Hm\nmKfWWU/z1HNwtsYg0y9y4IHqMQXoC3zZrQZ4e5FA2xlcDlGFdBvmabzIGKaf\nsNRiClfby9zokjX+hxEe9TnG7brcB7301L5sVEtbWxKLmpVInCeRFJlSrbAz\nFhTA9zxilPq0n+Y6QrbFQVv9Lx8Rfs9x7+rYSNqfoo9kCDLfnp9YcA0qus3Y\n0O9ASvECsthytXXUsZbzN1810UwB4JMWD9up/jGmkcZewok5oPYHLbEDX9Wm\nDS2SkFTpP2CwcdfThY00gWC1kfrqLM98SgFKg0IAP4suzzoFDW0Jr/x9BKgm\n1pcabM7h4wzSqNWcMG9o1uEa7zerDx80+yU2GzgCCQD3OTxlaroNWi+qZIhz\nKWER1M8Awd25AZhkYAVg5Aat4UkK3uOexp9nCofMExfHsfNuQ/hafrbyHZpO\ntpMGrr4Hsta3pgyaAlQshNNT1eXmYukFAK4V9Ud/SAcA+t49L2s4u9wk/bwj\nFlJW\r\n=mxBd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICPNyf+/NniN8VdFY9NMvpQCw8s1MrkUZXmsS74ouGbSAiEA43dKlNxCBGIT8Jybu4WrcJ79wivkT0izWYquIEBiujM="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.9.0_1583257356585_0.6331831896275382"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.9.1-alpha.1":{"name":"apollo-cache-control","version":"0.9.1-alpha.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.11.1-alpha.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0-rc.2"},"gitHead":"7422d70e19576f7e34aa289c535325552881a17f","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.9.1-alpha.1","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-mQgoD9xnaJYTKQNJnkJtX/21tmygvVUia37hI+C9rMPHjUD1urCc8XFe9DxCSznv13FAp7NIS3fVxORuaAtBqA==","shasum":"ae923065c79092546cdc912f2fa1b395534aa02f","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.1-alpha.1.tgz","fileCount":15,"unpackedSize":41538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecmOoCRA9TVsSAnZWagAAqWcP/1S7T9Hd7+Nodk8xv3Fx\nk1RbU+r+N22yubHkYXh3C/FMH3oLczf3UtYNuZyosPeujsZlqWKkc12R7b9M\nSqy5nNN2CTyUwujcJamyyl9J8GHtlLaX1fZGzVww2ot/PJY9WvD7f813H5BK\nz7m2WYvBjIfMgYy1z+UDYDCXi+vWzfFyD/MA+j2z/Ap8byIIpS5ItjhHc+pe\nh74Gx2GTM8GWw7NEH93pKuKaMErMzJwcf2S/dTBmIM6tY9KujeH6T1c21tIP\njz2/hE27McpDgOHVGf9+GK4hPrKLfmzhx105lmyDvn0cCjC0rFhT1EbaCdfm\nCsL12Wke07k4M1ueLalkSZPwOOEpljQ+ZxjR0eDyl5JreyabsdwPlbVu6/ez\n8XNkwjIFe8wsWN7wJYESWLouXLBQku7FKAQZGC6fWGas3Ym8i8b1GkCGkw7w\nnnIn1r5hb2dwcY7l5A2bJbQHJrugV02FTUueuGYe/a31ARiB+kbgMEi97PFc\nBIYVogSqAbWzAalPGqDS2iGCXf8bdReWKBD4Zm4QY1SsZibhSJpKdxGSj0p/\nc8k7byhMwTPJpWDJNfvyEmM+zRTOtIxE5WRrlEnyTPuUJ5ND3jDboPd4bazG\nYOuWjUVVd1tg9LncYNn0C4dnz37p0LfPUD51WB/xmyMM8YOEIx9PPi8YVCyg\n4Jen\r\n=gAMa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuStl/8Lnu5R2qtN1bty5GGZp6tlv5SUXc1QffYXpsugIgYeenctwFBg2Uzqp1n9pTJGuZjCFxs/onggxu7oF8A10="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.9.1-alpha.1_1584554920292_0.7260329160206787"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.9.1-alpha.2":{"name":"apollo-cache-control","version":"0.9.1-alpha.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.11.1-alpha.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0-rc.2"},"gitHead":"34c707246f8df95a1916aa59469e78fc3144c8bd","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.9.1-alpha.2","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-ExAifvKFh9YQ6i++wEWiScjEEu4ZhRaRL/7ZtC0MG/a0Rl76uHrE2VTeocKgDogE5n9brkQW4rmI64v7BBbwOQ==","shasum":"507a7f119f114236aeee5e8040c4a9b395f173f9","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.1-alpha.2.tgz","fileCount":15,"unpackedSize":41538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeeMplCRA9TVsSAnZWagAAXqgP/1mwG7zOhNnnrkkW+4Bn\nqwHknjSbz9Ydw7pRsngLXEjqekjZthw5oK1ek5Vccw8dZ3tuhMvHtDnngAGk\nGZWxmdr6osZzie+EXfv1yqS8yUiIJQFr9/ZNsOX0UjnJP3cDDPZYM5/E7+Wv\ni+P5DN0jo4PoHGdOxM7Zoj20/VDstoM3VKIsyPvSzby81SPqGUZBBMbHgb+U\nplWqEZ8yT1XCK7TDMdMC7YgUWBtdxVe1zTpBD63g8HndZqwkUumfYscHMUsN\nnGRSBeqZBNswEgvgQViaS/pK28MRH4IGSzqWT17pxl2s4CIobqa039ta+aE4\n1j3GI1CyYpYIuwg0JsaoVz4vLS42YbCrY26xlvr5tV2birrvPUaUNV9CNIv7\no+x/3kQlDXzXfeBM86wUaTZE5NydJC+kGCIpnk63G1TVcdanEqy8Qw6g1h7o\naldWT8mITBxm7dg0rIJJ8tAIPD1BcUG4kLfw+XCGmGZ9e9CkdmcHis8j5ehs\n99Go7IWu2tiUxPrPnGYFuOqxcB2/vuXG8g0W7GNGQQeH3XIQFqBW8ZyBZTfb\nG4OXhO5JAxVYvRc9TcnjWmE/QXAkYpkJpnXpqlEtcYbP0NEjnNEauTuHRdgF\nKYCnu0W4fP78/A/PnNM9xpUX8bEqqPClAnwvKb0pFkm/2XJ1Mo00up8Bn1JI\nJPc6\r\n=XGKE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXJkNRqXCiL9OTA7hDxBAHVdBIzGtE5NiAL2zYd5v90gIhAM4ij9Pt+wZ5i4ggphUp5kAsZg5CQTAHEAx3vDHGKfa8"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.9.1-alpha.2_1584974436735_0.7199284295579031"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.9.1-alpha.3":{"name":"apollo-cache-control","version":"0.9.1-alpha.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.11.1-alpha.3"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0-rc.2"},"gitHead":"3eaed42548ad524129601263b4b2d8e3d7b65d27","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.9.1-alpha.3","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-9OPxO9rthSIlj0a1nfi0TrVF+PrFS3XnyxubgkeizL28Ur0D0g8GXo1DioYsRoHM7BjJBI3s1+ZjLcQKcf6t1w==","shasum":"d0e78c5f09c25546a641d51ad4b6c1fbcdd2710c","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.1-alpha.3.tgz","fileCount":15,"unpackedSize":41538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefKqMCRA9TVsSAnZWagAAYV0P/2WT3OmmppHCQ7Xq08sE\nq3X1Zglih3BwsHf6P79CQW7yKF0yY8RQoxdKNf9wtdNdNNwWUzaUOEV7k5JA\n4ZSdSjxnZnXoR8af2hIPuxwDCko+z12U2NU04ZJXgFNJdsvnavxirLLlmBwg\ng1N4SLArYwEn3IJMTLeWYbd1G300ZjPdQFfNUEaM7M2N4sHegLpumDCgUiUu\n7JXX7Om0lz3+jKqvkA4NfNEG+7JCJmW+Lt/X+eYOCvb+MCAtwAp9rZBf1Ht0\nQIVnajiUwZA1K/Hzu8TYjD3uLph58ExruD6uBkfGuznldoY0N/weyaUqzxyl\nbcYhOSIYdtU88LsSQAT1qjmZ0urxF/zQRgGYvxTeXadGK3S+P6ev3kOzVN0Q\nxXSybc2rHKLOOlZCZgysSNt5nGqMR0cGd+TzAvgMdi0NICKAqR7kwRRAaAnK\nRyQ1lrthuhW/sweNew4TIdxlWRBTtthQ3e7UkXIdzAZr5yv25DH7EKOmdtfw\nOI0zS7e6h0rWmNO0QamFk5Sc26f6ckCmAOQ8IRTB/ZKY5snd2Ku+v8PLrCdE\niGmjz6o2/b0fK3Te3LxmVr2IyDGvIdMrMUBscggGAPlqwYxozmNjl+3oQ3tM\n+sDOJyYnzy6Y7nCzscTPPWEChnTCL2ax8+2pd29KMKdE7dsPpBal2ShE9VoF\ngsmi\r\n=RRor\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDY9ZJybneBnUEFZKM3dS2Z60519ZUKj48uK8UMolbGmwIgJRP9TQQ6z9MuemQxXBHC1/QuXvXNuADWGL1AEkMCyUs="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.9.1-alpha.3_1585228428504_0.8351344256540751"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.9.1-alpha.4":{"name":"apollo-cache-control","version":"0.9.1-alpha.4","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.11.1-alpha.4"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0-rc.2"},"gitHead":"a6189b32fec3f1ea1ee717e59d89c8137797aa50","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.9.1-alpha.4","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-9yge5REwfKH/C3zr23I8dUsE0zjbANYKXoOouWdOOzSsI/v3cDnBiP+IfIDgoKwBAHt/BUq6MiaKgJYk9ZUhhQ==","shasum":"622b18e1a3d5e36f6c752eb91868f25724d437ea","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.1-alpha.4.tgz","fileCount":15,"unpackedSize":41538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefLQGCRA9TVsSAnZWagAAOnkP/2GiQmvLoXaUAJG1QgAM\nqbxjkEIamJvsXNIKDgmFe9pKFGOEP4s5gVQOxsIjC/YUgOK206XHBFc1m+Pv\nqCdFZJ3a/vaqf886DkkWSQj/eRPIpjZBwLLZra1RX8iycftSuPhpGFYbPXEf\nFMLIt8QK9nBlzQvnvHTP46e4ZOw+8xQWQZ81fJRaCkSnobUgt03XqatrxgT6\nb7XvJvD9HOqIXFdbQwkTtAwiSBf6FnPNvzoehybO0fefS8hQSPlD7VXyTFO0\nGmdgbA6SN1D/qbSyCyKqicRbMoS6e2Gc0AVuJtefdunrpF2bSQ9wuAIZJ1FZ\nuxylIbGme3p+C/GgzKz+4jR8za8LbI2WhKNz4U2ilUYPTPiozdIDs06ufuMC\nbpn18cKo5ZskCBPkNBDGkA5VqZFxvUS/CjjtbM8QXHmwPf6Td+51dhExTvjE\nVYYaV6fX6JzQWPjlDiZRlvqKGsU0qgok+mUk5ZqNLrA42Rfbo2JQoQ7/DDRk\n/KD7SfQiWTN8Q8p0N+Z1+SPSJcsn8MG/btrM38iBVgJYHbt5KGvRj4v+mACz\nbL6QJD6AkeK5ms4xJXO6bvxtSBF5QZFIISY7Vg9zPkGXOZiSiaAmy6oHKHow\nV1UipQHZb+MyORDF73cE5pdRSWaN41RDaJ2OkMPeR+90EM2meSBr7m9WezII\ngOtx\r\n=VNPK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLjBx5e5rITux35SjSt26tQLoa33OjI156ei8muzuOwAiBVy3X1YGsnHF7tiAJjSVGd0XhzDR8Tclu8Kh9/ZHtdOA=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.9.1-alpha.4_1585230854485_0.006996101019644652"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.9.1-alpha.5":{"name":"apollo-cache-control","version":"0.9.1-alpha.5","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.11.1-alpha.5"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"c69557b0e94e15ab2ddd031ec46f20f58cbcb96f","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.9.1-alpha.5","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-Bqldn2L9WzxMmPd4pl+Ta/pILJWia6q4uOVsDdWIx7EWOxne6iNaTrM0ALrEyuItZWsMwx5KfMWl2rjjX6oTHQ==","shasum":"2369f577ac7f6da91e6b1704854ed9ee1041363d","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.1-alpha.5.tgz","fileCount":15,"unpackedSize":41533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehnDKCRA9TVsSAnZWagAA6bIP/j+UVWRkn+RrDa6QiZRZ\nG5+RL7yl7sB7rZzZQCmPPaoVSqE2ITaTxZntOTvn2Q2ELk88xkO7Yf/rOxve\nOdFA6jQBdPcJVULODX9GBsIqeZ9SR11jaJcT3fPZQ8zurQDAfMt0TIraKNuv\ndVkfz25Xp9nLovN6iKYd0BV+1P/Bw46CM+z70SEMqGG7QXzoVinbT1dgg7Sb\n+aqpnPyYeyG+mjVshdl1NdqxJTY9wFHs7qBqMPhhl01eR4LNzD/u7uT0LK4R\nDkPGRnLI1A/KpYVHc85rln+UxSWpiELMFWJNCrzLdKsP6wLVQqiwhEx9FnhX\ndmx1xG+SSrcmT27iWU8qOrZOhea1iGek3Wp25fh74ifbp2UlXnywog9IWxfe\nK5B7BcnfGsScNNy0xbmxJD/Orzqi8T4nfwjwDyt4fVUSKRSTSpdcOD4yptwD\nE3PWbwTPqRMqFSE95H9ymf3emWI8rxp2CZQOLvC4FOcu+Ddauf96V+4AlcAv\n4jFcAWIPQCeJCmiJQjRByZpcUUCMKraipXwrcaQEMlu6xRUjKn1WNPhSKVYP\nl9rypd0y6fRcA7KEhR1rZUN9GJWrZ1AJTkRBk8EvkDDZv/8rGCKR4+NJIB9q\n8JOU7hEPSaNlLWxJCknmBqmhNGbfFbtj8gfv7dk/nhT/xefmYb2ymuv6HaEE\nKYzu\r\n=/Gbk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClVZqPh6aFwpYz8eoPVRpxXKxl+AX4DYi2Zgh2igS+3wIgNW/7umHf7SbFhKUYjbQh1BydfzflqEa2iTfrqMwac5E="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.9.1-alpha.5_1585869001920_0.8224827203881477"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.9.1":{"name":"apollo-cache-control","version":"0.9.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.11.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"71a3863f59f4ab2c9052c316479d94c6708c4309","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.9.1","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-9t2EcRevUrANuGhF5XUbKJEfnc6Jy2Rn7Y8nOIKlsEEC+AX7Ko4svWYTyyTxj0h0RXfiegY2nbz4sVry/pS3rA==","shasum":"2af4c53ef697a87808285a25f2b93ca0f183880c","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.1.tgz","fileCount":15,"unpackedSize":41517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejMgrCRA9TVsSAnZWagAAqZ8P/1EgG+B8P+j/BDr8KL8l\nRMeBE5sIv6PYc0QpQDMLcjPyGfYqng87+xFjKB2Tq1eVL76PuhvvqoKdwZHk\nLVyRukoOJaYLn3uCbrYtgTvuuST9y0K/mKkuOEASPmiQrO5Yc3Svdd01+2xq\n8sHP94ZPyqQs3z8FaKz8MRIDU75GA3bsw4xk8g46GWUTtqFv7kkoxL/NWykp\n0qvfpr+msFeNs2ShPGqiKFSE1qI9beGS28hFudCiH6Vn9LmArkqHdkTilRfi\nqOwxOKBSoAlvB0BtOMVdAZ/UlB3cLSzN5Y/e1LxvfON9X8WLwC+N/YQ90Q9c\njx39QwyChKvTEUQi5tFW21z5tUl42fRymvzf4Sfu7/OSyqDAm+b/0eVpRA3G\naE95YIP8C/LCky3bE4vkUYku7+bmIjlqGfopFm+pUmD+wDT3vLrpifi1F1yJ\nLydPUfQC4MpxU2BZ+I8z0nU2L09cV1zBbVrEA/hbNBUFqR5VxhkL+f1L0XrS\ntTDNeVCzjFgpuApVa0g+Lj78tPAObG0WWExuGuDS+sO5Metxk0PPRaoZH8Gh\n3LyF1+K/JZGCLcJPiyC9NoUsUc3WSlkD1ii14Vyv4i4phlsEHt2gPstLUzUt\nCGItAEAIdznPM6kpBwOmxALNOCrIuPs19253o9Urdta0Fj0PAjUZSUO50j//\nbpgU\r\n=PFZ/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHUoJoUf1AAa6e/zlGYKqbJpZFxqrLPMz/p8A7HN1daFAiBAbDakPYTkAh95MEWhkGSXIFB5yV3wpT32N/wlS55eLQ=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.9.1_1586284587264_0.6018710648459913"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.10.0-alpha.0":{"name":"apollo-cache-control","version":"0.10.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.12.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"e8266d6ed37b1072041f9d6d9353caacdfaa069f","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.10.0-alpha.0","_nodeVersion":"10.20.0","_npmVersion":"lerna/3.20.2/node@v10.20.0+x64 (linux)","dist":{"integrity":"sha512-SWslk4APbJF7fCAe2U6SQdbbTg8E6rcXpWwNS0rEivi0JxEC2YgBKxqpgQDmxlwYt1+NA98BViOFtqpm0r7PLg==","shasum":"1704740c99f7fe186fb49c51ea7be60309b3023d","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.10.0-alpha.0.tgz","fileCount":15,"unpackedSize":41931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekGM2CRA9TVsSAnZWagAAb1QP/1soj/6DaMtmGrFi4AO+\ny+PYEiYyk55Y7grK0aQQVSIPbP0LrdbMqJlEQT1BiUSVYftMvHDFH5z4TgWf\npOPTdNLJ6/6BNPVzUjOFoYy5kVWE0BrPASFw+z4OKsVpApS5pOdaTmAoYL6f\nlc8+ot0r9ESh3wdj/ss/phwU+Ahc6DRpTBBZBqWwRElFRs52+n71uY7XwW/D\nqQqsw8RdbkQxMmwhcNMvcLpj5RNrHIn/NHMcEdjCHh3l0LRmkBVuj8r3IJ8p\nhOHL8uwiNl+EAhULoNmh5s4wClxB6QQVklT+E6VUqeasxzKsZUvjgZNdyaVx\nmSNnvD+H/tEdf7pTn2jEnubVtBScKPrqFccpwaPXuE+af2I0J/Cn29OtkPg7\nF6dt9Q3m0l7CYykkKxwbweqhUAt0tBbSzGnefwWiNeN/LY02qu8J5Cz7jw3x\nyoy4psayoY5z2vl4QJvbmTmynO0mx9r4LlVkiJwXHwISfGg80OKktXafOIye\nT+7SGzsQkS8FuvVrEW/7zKTMXFJBvT9n6R0i+s9QxWvT4ZUCldjqqc7wRdK5\nahV7egUZ2BV5pnWZ31tKovxErdtNljpfqNlt4EJIKGiRcEtF+NAt/jSOM3gT\nZ8G47lwj04EZyMDwaMTMJ1fw3bmUSF2KSuDMQP8tmMq7sT6FLcMfH7wpJXYu\nrA6q\r\n=VPWO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPLH4olJ24Tiq1DsWuwfz+462hwiaBKrACQHCRSxaK6wIhAKsLx3FgCgcFvY6WBJgxntzEoWqaRK2Qbv8eG3v5xtGc"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.10.0-alpha.0_1586520885865_0.7584009834406553"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.10.0-alpha.1":{"name":"apollo-cache-control","version":"0.10.0-alpha.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.12.0-alpha.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"0c73f3180a960ff5f94ea87466a7c5aab986a03e","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.10.0-alpha.1","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-QWY4O5n0y3QMmVhq3bhdpREEdlBRr7DWGH93IyTFi8VDG/SEu1nmmWIYGjMFdnrZGrkRPIiY7mp1DEVJy8GJwg==","shasum":"edfa539e3885d9c242e1554f18288b97a25035f8","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.10.0-alpha.1.tgz","fileCount":15,"unpackedSize":41931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeocTCCRA9TVsSAnZWagAABlwP/A1RriIdwn+qtEUWXgfS\nCArW41OfxYfT8pkImIHfDX5vo01zfXbR8v0ghGWlfLnKH0toKBt395tfo0dy\nMRpN7lnlc+hJiZSLDvPIabZiplEr0r1NVVTsZQ6llVKFt150bAG+XrVfjx6Z\niPUoHuINIWvSjRTJr7HjTMQEkqMXeKNVGGUVnTWO2Ek9UiHD6UsFz4mJxhjr\nGYR1VAsYcX/y5Bf0lx8YvBCDJzPuesIsr0ni2ECq5PDE441xHLIKkAn1kYia\n6lssG7EALbCLQq693y/LO9dmMNgBAZMKYU0diy0tRLxB8eZoyLk75RqwHnMa\nuhKFSYxk+f9J9P2ohK3EOWwQ+tI+/jzQxbHthjAr6ucrpCv1uc5v9Z6ZSH5N\nimDAAQqBDnbNjjU+dvMVaiA55FauvX4IrEwILExXShlK2dFu3GuRhdM/iUDc\n3/oX75BF3ytthzfXm4yY2/JNVVrIRBOJaQtIwdXrmn33BCO3AWWNCQYWEqLx\n57fsHJi7CxqUvZ32+cK4I6vshKsRQdXbHHXvOi6y+UIzwYiF1sKWz4IdAgEd\nYWiL2mbaajkN4DUtYzkWW1LnJbKDPJDvZRmDb/hhh6/gGV1u38nMjRR7Df9x\nfvwukXP/kl3xGPLpoUyGRG5rsOrTgG2X9432ggfcPh7d9s+swS/P8zoVpjMG\nmhY+\r\n=3GP+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGedx+Zuie/8JjSRJOHTA1GDrIm8b7ipa/GiubWqg040AiA1Mz1BMxI4+54CLc8l6e3b8i9cp69PV9xszIr1Jr9hCg=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.10.0-alpha.1_1587659970392_0.53535825103761"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.10.0":{"name":"apollo-cache-control","version":"0.10.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.3","graphql-extensions":"^0.12.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"e37384a49b2bf474eed0de3e9f4a1bebaeee64c7","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.10.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-UIcPlrPdRTOKrF7kc5/WD5i6EVkGEEqgOK/fMj92fnnxR1KnQDiN82lqaxu02eZJvWjFJjik0JVJNXKOJXVrpQ==","shasum":"ed056d1ce4fb520cab584890a2132a8429f346a1","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.10.0.tgz","fileCount":15,"unpackedSize":41915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesCtrCRA9TVsSAnZWagAAQisP/j4GgIKB/LrHcdAVjooA\nbLs5RdygBhCkkq0JMbV3+Fp+gK1gaibxXHA8q8wYCd2g06CstAEMG6Epo0gv\nd5ekZfffVeGr9q1+dT5WgulWZcimER/I30pnKWrNDYZVsn+ZUKPvT4j6U+WY\nrozo1k7aIuUAY8xm3/ioPb/u+/2ZqHWSNjtFvS72OdWmtkXEVqtO7DkxPmCy\n1CiZupBqafDRVDZ/ui1HsKmCpSkFtOmy91DlZCbDxZ//4RKHOrqiaMqdkPdN\nsgbXFPyR4e5iYhRKjBYesgVFInoEdUTgmCY7kbwTWQ4me2G9dBm9R0WRTwEG\n4Tl1VhYBLWYfRYbPP/TA9gTLgNXs3oK+0emROUqiROahAnF2Kuo3OQYPMhgq\nWSo1E0fZhBtjxDJlQbdm7sLSADdg7hOiWgJyY6fm8AxDTl22SxpaJnzHWbiY\npdce01JLoMc4GDS7/N5TU2KtL/zltulMZctZMMi2mHrP84i2yG9rQHa57UaA\nb9NvDH5y21kFodESebncvZyEgVHbqB2zej0Tqs19FYtV5RYuObh7/evL3U+1\noASglnL/yTxPYK2cpfMEMBheQ5+W2BulGu4HYMFU0+BgD51YwyPkVhHL4fqZ\nisl3W12/oa6vD1RY3IjyC197k/7lGjhRUxbyvJabGIqn4Jmga9gv4pC9BTar\nksG2\r\n=N8XI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDStA4AmViTcEAFvJoCT/mCmsw1twjmDG2mZ8YTDnmC+wIhAMZ6SuzvYnkY7wDyi9HdufoLg3Bdk1Se0Nf/GfgKl+Sm"}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.10.0_1588603755173_0.9188960550183318"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.10.1-alpha.0":{"name":"apollo-cache-control","version":"0.10.1-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.4-alpha.0","graphql-extensions":"^0.12.1-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"626c4b6505ed98d47855712a568fc4eba9d8ff18","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.10.1-alpha.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-wg2OwsHC8NoBT4XRblqYznlfMoP7+mzp3frFn8jUwrrNAG1rIKUWgCCIwEKXJ34XDl+q8iMVYzwQ73jb6PC9Ng==","shasum":"3547ebb1a6a49dd822800b86c3bf27c618abdf20","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.10.1-alpha.0.tgz","fileCount":15,"unpackedSize":41542,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetbfFCRA9TVsSAnZWagAAtjUQAJsPa/JCVeKiRgu9AuTK\n+JdQ1oHfwfkzharxJJ1A6H/HgSkFNR5nmLHvBjs52kFmVov3sdQ3kkyvINaJ\nUXm6xoBAySDYtKGAcnLppt4Q9JBN4/Y/oMm54gvWHOpFNa240HRtsYUjk6ou\nv7UUENr8KZdsmjlfL7WenhPzm1l2wx0ndYaKOj0qKK7I1My4h0mUiT6GYV6Y\nfJO9l4TfoZtAIiqbfL9hx350p1dQJx5b7BGQfNphp3m/XzgRJyBzYuMxywka\nMy43Gpwv2p+0RJSgmYnoeHTWsmV6t7tZLG0/vsj+0PZxv7zPwyrocy06xXSW\nqUC8pvCo0BXOXLIqNSd15tHrNQOsIqPwPgZ5tF0TsQr0fIbs6EIFAK7uGb2J\nq52ofWi2eh8yH/6PELHQOgyitBYPxf8IDU4bihprC+gEXKYYbIwlL0yaxkZw\ns/eNdHxCRENf6s+PyEhanvsA6UDebbVNt2MGwCBHiboYs6hepztqGKNZ4VmH\nV7tQ/vqqLIZpanMgUW7+naM5ZJBRZNR+Aen2/va0OA6kVdqCQSZ+gzhOYAL7\nlcibGj9+Rr/0W1pON4RqZG7sHCgz4Ue3SfkCx7bWzrlh9ZI8rpbP12swA08p\nqvzfVtT8ZlWu4dvM/ULJE2xT3ahIhdizosyv1SU03bnLJnrTg4rQ9HiKh+mm\npXm8\r\n=IOIK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEdxj1UGE9y4CQe6O9GzaACfTg3jlkyeK8YC4JG5hc8BAiEAuKX6a8R49WxmKRVHLmo5IIjLgGRhI9SRfokMb04PEoE="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.10.1-alpha.0_1588967365547_0.8604265672218108"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.0-alpha.0":{"name":"apollo-cache-control","version":"0.11.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.4-alpha.0","apollo-server-plugin-base":"^0.9.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"bfef89b8cc44d4bd94f9d5fcd3df8941de526360","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.0-alpha.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-fyWYE7qUQFoCBKsnqghDHxqvxT771a5pUw88Mi+zjoCyHdfFLiXWH5eoAkDzgc40TXW6vrej3r5tBs7ZbDCY5w==","shasum":"d34297cfe96ce7414bdfad343121217a2834dbcf","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.0-alpha.0.tgz","fileCount":15,"unpackedSize":44990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeu8aVCRA9TVsSAnZWagAA/R8QAJ+LU4zyZrgs0DSBy93h\nRIMGCyY+GRhqHnzFnLg4Eo9bBQfhtPFMXO7IbMcsxRHJPjY4FvsmCoimUuxR\nohOO0R/QRgghSFf47EB9XY0jsFV74rb2hFYv2uxFWMHSrSgjxGw/bv4cYk0S\nEuHzdwpSgcNUjuH3HrxQpz0XBkQXBXIu1zVXx5SCK0N6U8Q/N0WEBIyOmdOc\nibhH89XLxOYqiFuxeztKrhZs16wo30OjO5tLyAIbXUq1wk0r5g+faKc2gFYb\nEPISUBm1ADIZf3enQyCOq3dG9Uqhc9cOFBsRRyRI/TVG4td8pVhIbo+B9r5o\n17VogrYasmYvj5fDOV5bsLICh8/XO+0QJ9hywtg/ZK8JJWJuaUMd3Clm4I3C\n6mYsrzni/kvmZt1mUfe8ov6nvUaynpskcQcKTwv5K+kAkXe4ipc0F+R2j6ER\nXnuQY7BxPInp/iWh7TSRqDU4Bq+iJ66diC9isGjODgO5CRisiIJA9ByqYEOg\n+ExrO+F/ARdggUnVQ4B4JF9CxSBHp0P1gtd0+9p7WGurcb2WqZgsuhFjsrS/\nK3JzVH4MyqIxz2w5QPHtLzQWhID6qQOeJRGvYsI9b+AhLW7yMvRjXP8XSXua\ncr4ltMe+Pp6yjEACZs9N9erXhZWbIADCAr/KA1JK7Mp0CR8hquKHj408O4Qw\nPJmG\r\n=kgdl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHZeuT3yPsRDCBKKA/JjS79RyxJO3zGPrApufrSQqur+AiEA06JfvbCoPpahdPbLIFcbd8+OnXwrVI2eskr82gcy3i8="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.0-alpha.0_1589364372690_0.9085041622779546"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.0-alpha.1":{"name":"apollo-cache-control","version":"0.11.0-alpha.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.4-alpha.0","apollo-server-plugin-base":"^0.9.0-alpha.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"6b8a4366363c27a8d828e733edef4d06ecc1cd55","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.0-alpha.1","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.21.0/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-OBPBkTaStR9iIxuNsTfWisBE5SUSuYmWk9s9R2Ae6plzB6cLMFmMisxuQh1nAK8D0FQMpNO5FWYWu4H3UWYM2A==","shasum":"60669645f00b8058b3204b6fca55b60ec1b0434d","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.0-alpha.1.tgz","fileCount":15,"unpackedSize":45055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJew6zpCRA9TVsSAnZWagAABosP/0dEjSKSTmgndG7a3mWv\n2kZuD7Aa4ERyUIYnYJNJF7O4DprMWZy6DvVP66vydwWyssCm6BU3mgtBD1wS\nz5tD3vygOfHVolieR5U8/lJvlXLFaFseWW4pFZl80rtrWGLJ1G6X3aYqFbo6\nPhvaTNwP/UgnfmIUhAE374ph2rk3ijHo1REmnMLxlE1WC3gtFT/dQL7T37Ic\ngsUx8mHbZrAX5iYwU29kZOCMVk0nQAfy6+fRFZUy77RB+uTbdnPaFLGbFg/g\nNGnZJsqCLFy5qe9BMOMw3FjeDUrBTUGOwdtu2qBl0pPVUc1u+sXs5+sGGeJ2\nmFRmXTAF2V9v4tBcoJ08tRkgatAM4bNh2t7p5vEBf6B7MMUpoTZt7/ktbbQD\n7ALNScGmrImSkzQ0I2t2NIICvnBH2Oig7+ErIBtRmIyAkQSSM6ffxWaWiMJp\nUhVpJJyjm2gicDWKHI5sUNrz8oSw/bzSKZ5t6PJ0jAyYPhp/cgPYs11Wd3+/\nFWqGaMskBwXAIgz0l4vtTNrsE+xQ6HLRKuRQ8W0kGSb9VyDzQ/3G8VccoVnz\n9e9+m0xTX3hnoNPErEyF8xnIblYwSGwnTB5Y0hZ6J/aexhK15b5is0sK9jMa\npIveNMSqL35ECY5JgL3aOVcF+ro7KYY72FFAb9R4ckub2XcQFY4pM+f3sgaL\nCjHD\r\n=t366\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNhAVhTZ6CvOXkxjF4q1P/NHzVqZhMShj7y8vZqvtgFgIgFcv8sfqHuORnAW+9KWCG9NdhLwu81Cx6VumMMLcnhu8="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.0-alpha.1_1589882088879_0.7293408272334079"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.0":{"name":"apollo-cache-control","version":"0.11.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Martijn Walraven","email":"martijn@martijnwalraven.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.4","apollo-server-plugin-base":"^0.9.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"d159e320879f594ba2d04036e3e1aa0653ff164d","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.21.0/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-dmRnQ9AXGw2SHahVGLzB/p4UW/taFBAJxifxubp8hqY5p9qdlSu4MPRq8zvV2ULMYf50rBtZyC4C+dZLqmHuHQ==","shasum":"7075492d04c5424e7c6769380b503e8f75b39d61","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.0.tgz","fileCount":15,"unpackedSize":45031,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeznnsCRA9TVsSAnZWagAAIKEP/Avi7/FjfP0OI/nNpISq\nx8Lqxl8kr8LwpwsZ1nB4vDTzQicxMAi5n0Kd4zVFg6T8rfjcfghL9n3Tndbp\nXDg41bn5iBMq5sKi0IA2E9I8rMBn+pGrfKLP6uwdY4ldGkZzS+KCeSVTrlZq\nAyn41BL9oMLX6636P9KTjjBfYdqeSsYxcB8SFksrww6mB5AqbuiRRzCdT+Yf\nKGv6punzXwOCd7KsGpbIDfzGfFYwlgdIh1rPTgpo0cNBXi6En8PCGm3J8asD\nF7FExowHVyzGc+3VxSR1+o+E+pV9r0wNF1/SQs58Gvwrg/BPV/c6X5NP+5J8\nKQDeSUaRyZK+F0aH1preNgn3ZzFuNb8lnwHz3OFwpswAv+pqELk5H5USP22r\nyxD+XizjeIQMJNmTxpokNHZrpdf/AK9zMYW/cdamZKG8gEljb2za1WHRvcGm\noCGV+KvjpfWA2WquYp2kHzC0IRvUF3/3dobhNrLcCFPdTPU2FzFDvANeuw2u\nIqBdMSx+srJKf8dLlkIPAGdf3HdzcaFkE5DVLeXWv7DO6afWmkcB0RHFQqeP\nS7KxDQD2cCCtnIKB71NUQ4qaIuHn7/Oe+lf7F/AGG4M6d/K9GwbOchEbRIi8\nmXCLHOOXzJBUqn5qFlkoRDzVxbP8QKI/+s0hwBh8k4iiCalGeOsBluqT7DTD\nHcRb\r\n=niEw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCr4g+AblTX1qRo4S1J4/jl8xakjy51ktYs9L8nAekFCQIgbtAhbDuRzLnM3+uqY49qYJvSkqCuvnW65zAS04uvYvU="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.0_1590589932105_0.2673813114223238"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.1":{"name":"apollo-cache-control","version":"0.11.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.5","apollo-server-plugin-base":"^0.9.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"8cfc947ed56fa3f32b82b32b4bcca53470712984","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.1","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-6iHa8TkcKt4rx5SKRzDNjUIpCQX+7/FlZwD7vRh9JDnM4VH8SWhpj8fUR3CiEY8Kuc4ChXnOY8bCcMju5KPnIQ==","shasum":"3bce0924ae7322a8b9f7ca1e2fb036d1fc9f1df5","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.1.tgz","fileCount":15,"unpackedSize":45022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+yEKCRA9TVsSAnZWagAA7PEP/R3xK2MoNfxFhxscDAPk\nJbfe/cq/T/rVZmFSeZWvEmuKLVuDqvBfBfQahRy4H8pTpCu/hsJnzNDf1jbG\ntHSdFkGCOcRMwmrbJP9s9OeKaiSoUUIEW2jifPaL3EeSJrAU8xv6ms7fbEcv\noCnJuv4htBqn55HTNgk83X+VWquJ8c3xNBYKbi1+XTTgtm/hqriChlQHvNwr\nqHT5oKSB53lFqYmj2iSUmzi8j3w7uBlF98Eq3yDz3lEN3FeIO8xq8bV3mFdf\nKCzF5MkwqYSidi3Xnx9XrTtMwhXwnQ1fsTKv5Q3SuId01Fq9xel9yAgOWyIe\njcxRGVcckbv3z8Yfmscq3EMpA83qvY6pTs9ZrWJiL+a7Qu2n/NwbJ0CIguv6\nK0IU/Nbt7PnBpj69Qu91BK8MWxJfPqR5kqD+Rwx4ELQ4RTK3WGI5qV6WrkRK\nwqgAft3QBqvkAYJMCnTbNE1IZRsbg8hD38LbnW3wuVEjjgaRGRX0R+ZYbeIP\nUqU0LKU6D1O+uv4aBX/kDuSbf7QNPII9WP8VMssLQJDRJWwFl72LmIxTEOW8\npHGH3qgvNOnsNlGafCAKBMR2ZCb4bPhNasQ3hVRG1EWXkbkPlM3nqvKBul34\nLUMz2jgilfWzsmJxDOYJ0Z9+hCSkcAkP0oxQ3L8CHSwGX1FLedemglr0Azin\nOHaK\r\n=rTyc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFp1eeSJjMcY+SpcWHi8JxihKooAT42B6vbjJA8fPOoOAiAcUo8huseUtoe3KCll2Fmkn6RaBKEDV5fVFHV85mfChw=="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.1_1593516298341_0.30871437413435276"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.300.0-alpha.2":{"name":"apollo-cache-control","version":"0.300.0-alpha.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=12.0 <15.0"},"dependencies":{"apollo-server-env":"^3.0.0-alpha.2","apollo-server-plugin-base":"^0.300.0-alpha.2"},"peerDependencies":{"graphql":"^15.0.0"},"gitHead":"6f3711b589dca8079264969263266cd7b6010ed3","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.300.0-alpha.2","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.22.1/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-obGR+SS8K2POOflG1Yh9rPnwsZY5ToOuYASY4h4gLixKmJ4iXAuIyBw0sGCLQxyNxAtEGQD7vgEdjYUvSef+fw==","shasum":"f7495a3bab525395259ee39ad66772a8110555eb","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.300.0-alpha.2.tgz","fileCount":15,"unpackedSize":45097,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLGGFCRA9TVsSAnZWagAAzTIP/R4UcZbJlmT79evWT1vD\nfLAtR/pPayz9o7NAxileuxAJQeFojrTdwV9txk+GbhvvhqYXN46aWHlnWSla\nPAq05JbEDBTz/0XaO1Ympnu//LSpV/BOZ76FiUL8x8XtuuGis45wp3l6rKzo\nZJ92hO+Bn3LIleXNcz6EZ09qVo3idvZHAOA4Q7seZ1tEKSuf1Hmrb8ee5nPE\nSRv0IWTGxD+/8eBec1PCfa44R0posldV7ylVrOwru4BZwALhoP3OyetcfMwF\n4eX9vFvedaLNO2Bnj3/kKmHdXuy/f0+XCNK95pmW57L+DqJMbIq53Box3beQ\n51qfuKJiHiuVeRh2kdDd5+ojRcZUdBwYJah1nGalXI35pScdjCHpGmtAU/LU\neIeSfzDhznVI+GXl3fzR0o8U5zjXQwoRe+cwknoETfSWOL+U7IABL3Z+aksk\nL4R6n5rKewIS9XH6+GKqg5dlAQnEgANE/T/8YM6ueyRDFXL9aBrYjGG6W7H1\nKkHDtzsWxf64siN/uUGZHstZdmrWz3e6JWLF2uB3TQCeZkEyRUs6wLrGPejQ\nfAddThwHSmGNpBJ53j4aJ4qdVHHnEgIDP8kIqjshCeeDa+17smd4TABVn7Nu\nKfa2EYwpmR8mXHQKHKf1+iu2EvUn3w42rpSLbTVec5R3bAeRA9bHc9W8CyQj\nzFJ6\r\n=Qdli\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEMtKDWw2inNIB6CMBzpGfz65VB+WQJiQ3+27bFF177eAiEAhKgCP0wqA7a8krU8iasIbHxWeciVaO/u1vRQbn21ySc="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.300.0-alpha.2_1596744069183_0.6502471850320948"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.300.0-alpha.3":{"name":"apollo-cache-control","version":"0.300.0-alpha.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=12.0 <15.0"},"dependencies":{"apollo-server-env":"^3.0.0-alpha.3","apollo-server-plugin-base":"^0.300.0-alpha.3"},"peerDependencies":{"graphql":"^15.3.0"},"gitHead":"15b90eec22523e32e00d97a51b28cbfba3f39c78","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by [Apollo Engine](https://www.apollographql.com/engine/) or any other tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be added to the response and interpreted by Engine to compute a cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.300.0-alpha.3","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.22.1/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-P7/LfJbJZBoGP3SF+e4DDbsqb73MeldIGtkujyTkkndQZ+/h9L118w5QCr4zgnRyR6jYJP6LMtRJLmHFBGDm3g==","shasum":"a5e99be9be2811d035f59e8b8fe57324cdec6ea4","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.300.0-alpha.3.tgz","fileCount":15,"unpackedSize":45097,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNB+3CRA9TVsSAnZWagAAweAP/0j5uQNcsVcfAfm5dqPp\nEWEZ2oVwZan1g/r1IL69GyNEcEpviPdinuJw1zQ6Z/Ccvzo+oR1CP12qpxy8\n1dMHfFD/ApmeBRG5ix8rPg+uoNynBGM+HxaYd8/2xr3SBrEbKbm6we3FRzjc\nbvTsDb8KeJ9HJuJvhnYizohc2oVbO77qFozHDUuFof8BbPwiwGpPEguH6U1Z\nrPTgqVhHGfTM8DLwZbbIb1mvWi5j93rCJ7afBwfzyZ/Fxl+4alisy7Aldr+Q\nK+p3GARAVxBJ1gDjABDUmguu5tuELTPS10K2EXsvjNqim+Hhz+rlut4nAmT+\nFFZ6meePwPebrr+FLRBocVyVSqNtRbtzMjap8sOE+Cn+rkvNql8iS3B5F5Du\nDdXxdSsgPOzAflzWWoZttnwQgAPpJUXSZACI9FdxZaXP0CM0WRVHsAls6GRQ\nf7Sh7vbldEkIPkqehVsRk8aJu/AAqN5u3t66KbnI7ISC7Ryn918hKbn6EMhc\nX2bwIlB04HIa+JKQE5QrjiXjz0GIe6JJIUm9slmA2wMRzI+QsC61ZOweM7LV\nxbaRowGT1wrChM0i7beB0IqUH+XUiTiF0Mtk7/OZMPyOfhpYpFs55Z13Uwhd\nD173SZQ98PBSRH38qdTMupU777XK7vROLYENSrYhNOOdoVYDeHMYl0lWTT7L\ndXHo\r\n=wWoU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaNHQRsLhxSKbqMoPc6d16AlwTWBPpF8xTuVxKyqoQ8QIgQva+xifweCjFjhEqjk+bvuGe4cu1PYeXAFxjJu+VFsY="}]},"maintainers":[{"email":"npm@apollographql.com","name":"apollo-bot"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.300.0-alpha.3_1597251511031_0.5575068630603239"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.2-rc.0":{"name":"apollo-cache-control","version":"0.11.2-rc.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.5","apollo-server-plugin-base":"^0.10.0-rc.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"9e5cd2804c4a5c320cfcee3d0b7448e02e9b2b8f","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.2-rc.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.22.1/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-axkDU2P+WnhshxxRGhmafgb10y+75HFT7tmZpB9goK/efi/ePCnOIgersGpiDd0+DRfRNtJpZzMEa3YxtV1AvA==","shasum":"52039bab5a0fc75f69d02dc8d0c075cdf96a9b0e","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.2-rc.0.tgz","fileCount":15,"unpackedSize":45207,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZTHiCRA9TVsSAnZWagAA9yQQAKKl/IteVuvgMVVlpMIb\npvVhv90LYQp/hF437q4WF2LgXA/2+iy25Gk18jSH+H5zyucFph5jPdh+WMKv\nqC+f0tK9FbAx3yrBnqE2I+pqys2DTFCVH086rOajCiDPVIjW0px0KTG7oznE\nbSb9WEGRnP1vjQtAfdsBcpyGMtzFMmWhPoGNrM8H6xnYvt/Cbh+XlYe8AbZ7\nO9lHspzHN05RVRkIz7uwELjtkQgd5gvUz5TGH3QZVHX8HGnLtw6WtVnxbbdp\nhOImkv24id224l4nAqieXTxufJLYEiRZ0lQcAM9AyPKn8UnaSQkH2xBuTWr+\n03hB0gwHVww/UbCu4XUxweMDTzgG+OwljHY2yux3Mi41ahnss0rD8pg+aXVh\nKxb8yyrtPEU1YqbHKHNNI8HOSFQ/CR2WApnecL0/E6ez4qSnqL3j1ze4GFiO\n9EWPqwkX/QBTYns02U+/xCzJ0yjEUR+tNJAih2eWGLMalYOHkLVOuX/m+9nj\n6YEbbJQ/bkyYJSlVau9u6sFHNkOYTkDlerMU3ScCIkwS11OEvktC9oXt7oe5\nFhymQqaB/SJgOo29U3Xir+nJNxGU2pJn93Zt6NzoVMzvvS0L3foKMeJqrL2k\nYDvoPGqn3rptH+qy//FvdQKWuLkMyrQgRnOYBkKU/4kP/zxY2UOmQmA52sns\nW/v9\r\n=5DpK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENWXsxDDxHCbAzPlTzTM1M13+Ve6bDhTXsvKfQf5mQXAiAH7jKFmNs8xaPlsvjq/PeYIQdpZW8olXdF4Vwmeu00CQ=="}]},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.2-rc.0_1600467426255_0.8883221094798024"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.2":{"name":"apollo-cache-control","version":"0.11.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.5","apollo-server-plugin-base":"^0.10.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"2aab7fd973bf352a0de28b2385dbad4be7c7fabc","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.2","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.22.1/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-a1YdQLWzwuvZC7+xtJ8zno04pGRZG9595cX8W5YoXs2GeJqYdk+G3/tgdTgpLN827Vmgka0xkWfmxQUYm2xZUw==","shasum":"63e74b0c927804445bc067dae34113c7e6aa0b60","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.2.tgz","fileCount":15,"unpackedSize":45197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaXxtCRA9TVsSAnZWagAAzzUQAKQXHbN7nTMh/K6FEFPl\ni/+IKRhhdMEVdW2crx7tMjKgN01WNz2qdij2c0LRXt4RzUbqLhQucyDnvG4C\nsMmBVmqxJiHM/8mfXUWhYy9JzP7PzvlkjT9ITOLv77Qc0UeXHhdWdyVKW58v\nPPiFnke9iDkSJ+QXqfXcnG5knVfFELBndQMvwS8UDwhgu/N4D7Zda4h10s8p\nnB3Ju+Up/TWPuJ54ORH+YCvgHHuU24BA1nrwvxeZTs/2RD8/XqgBpEfVz/b8\nP1h62GoPmIzxPZl3XprPkxje06WkY2jkAshLPGkCK2vt6hKABAuf2OpOiwbY\nus9JXNyh8DtjC8xckGjpHljHzU2I1qs1iKSlICAL7dlKLMjz0oDrDZnJnv8C\nPdP9U1OfQBRViqQ8bgttlYkWvJgh9vCDn5tKrNAT5XwLO8y9laIGfJez+F+3\neRvREq+XrvunN/zSc3sr6cVWZtM/78ThqGwtOTJv47jCOPdDO0CDRDGv3Mxs\n6pv55nHTD9i5j49s+pjwtzE6yW//u57VdTTW0nYVsDZ6X1caesKJ8f5HdRDG\nVHDpgi2/QX03vCBhB65GVbkWS4aGymGXyWdR451cIMN7jICNOOG76QIObkBZ\nbGdo1UrywC3SXOj6uUosw33UKV3AS6QwMRSwybUqcietyz/xgoDQMqBLlUl/\nwZ4O\r\n=reOe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCopZClEgxL/BqvSbhrzTMcZFf9XhelCvY6/J29jLsVVQIhANRpacgj6HXFWSPxlnigUQjxHY1ZlFNw/upKIkM2w6Gy"}]},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.2_1600748653436_0.9543635436971185"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.3":{"name":"apollo-cache-control","version":"0.11.3","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.5","apollo-server-plugin-base":"^0.10.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"83e22003c717e93bc57655d4849b0833369f1152","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.3","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.22.1/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-21GCeC9AIIa22uD0Vtqn/N0D5kOB4rY/Pa9aQhxVeLN+4f8Eu4nmteXhFypUD0LL1/58dmm8lS5embsfoIGjEA==","shasum":"caa409692bccc35da582cb133c023c0175b84e91","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.3.tgz","fileCount":15,"unpackedSize":45197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbODiCRA9TVsSAnZWagAAM/wQAIP4npY823QIS/Zamwm7\nZorFg1CnPH7zJyOYieAzr9dDOCmXFK4obozEFGTOLSOCNKEiJc0VmMe7NH5O\nvPnn3sZn3147KDdkmBROVlguIushmTg96KkOt0XDtueR3T7hqMSLgtkRVdcx\ndeg5gopav0XdmUZoq/WCT+F7jZ3ihUVzzyQxTlR8U3RP7GZZwTXHEHVwIEmo\nq6pA8yAnrsMf7/zAFunDAUZ74lbJjjyTL7xH8Bmgre/xlC7qFitU6v44Uw0D\ny1Y0mtkh7MfDkPVIajaq29CxaIDzCBNA1DopHAcLjTLBkSjBjjRZD8DbjrCt\ndG9mWKZFmKNc07HcGIGMddxr2XZ1+vVpA8Bf5fAxVz/56Zb+M1XdufEhnT72\nIxg0SxSt7h08KbSoLEGmfVJneyabf8KB/pjIcI4JmE8MdvqBcP3hXCm+8qG3\n1tHRpMuwyFqdXLrGytQ3ztKN+6oI2ekID/4L42ikLw1DO/y+xCV9FxqZwn3d\nuOJURUQC4y03zCrpwzh9+p4FbF7MWt60zqLATLH2q44EUrAPKZjMEK1CZVmL\nCR5kV+F2AdR1hCqoPwnm58te58tSZLwn9Wk1jqai5PxN7z1Cr8K8QkyriPsD\nGF9n6icZ8qQLT4fFs84dz6CoyL7mdA8X7A396O/jbmy5qZbVWbWm7rzv8BXe\nmz3n\r\n=z+83\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkAUtNFPKy3t5hY1zg1G+GkP4DeQxctQgku3TIa3/1mQIgWOsGcZMhaH2M4OZxYWzz/xyXQzxNfGc4DV4QVPKX9OQ="}]},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.3_1600970978394_0.19637849462097057"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.4-alpha.0":{"name":"apollo-cache-control","version":"0.11.4-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.5","apollo-server-plugin-base":"^0.10.2-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"495f8d83689340357f6d8ba959601913050e35a9","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.4-alpha.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.22.1/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-gCSojerePFYQ+dv5CUhBV6rjrqpBG69F/FZiaEgvS56tRRlrxXeOd3uZwF+g7n2SzbGiV1GOMlB863y21UHamQ==","shasum":"53506381a4d9cfed840955f3bf07cd8ede8c79fc","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.4-alpha.0.tgz","fileCount":15,"unpackedSize":45268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjdwECRA9TVsSAnZWagAAwvoP/0ziI63ku1CG52Yt+gB2\nptgPJzzfSLA7TEWHrfBRPug/+p0HDdo+Olc0c2Dc3Gaxm14HbQ+vYCOlKC+O\nU+vHFND+9nfUm0MT0bObG5Jv3nWP69DCuH5ghywA48V5NAKJv3zoITnUMTFd\nd3/aV7yc90kM06mx3XTkv1Lp3In4gl8eJ7hXROQnNuasV9JzS1IBiiGCIoKR\nfwd3+zyCgCVoHDCZWhkg1Q2ugQzIXZeYpsexTI8yR9y2g+wVhF6896mqeeoM\nYeGDlwk5jECxmvGcnMV8NavwKC8suu8Y8n2vUYmMh2z/q9lbn9QXZOZIbJp3\npAYIUjYba/mW+yRyA8gHXHFwBKDmliFlw4f1BppEdwHWU9WJ6OBjS8Tk0h9O\ngVzW1HGaEcK75GcaLfO4sbTqiv4zHQYbOBNWbjnrMZNszB9eMGFaPfta6R6O\n8kK/Qz8u1uziXyiljeaYpM8dbFGuwe0Co2hY3Ijm/LynNiOnDKtJYHE7xtTL\nxg5qeaEreH59n2Hwf/MnrJ+MRqe00FcN7PCoON3S3aQCt/vyHJqSHvOKAkFr\nEh+Y8zhOAAeeMlH2LvE6PDXltIoNVEmEHWPTVLhousk8+7jK6nvisf6zJePP\nLh9pEMzs021eJ5sjpJMOIi11IGAUF1EDNsaqsIgaojlJg0O3h2H3+yQIlCSY\nyuxa\r\n=Lptq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCe6uZLkytTuTGeZNTAoBMgTYa7foxKDytozUUpBYxY4wIgV3OGmGwHilA8FSewbxZM0R9R4MPuIZjZhofkG8Z2a7I="}]},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.4-alpha.0_1603132420065_0.5190951817726785"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.4":{"name":"apollo-cache-control","version":"0.11.4","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.5","apollo-server-plugin-base":"^0.10.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"4c6d16f14ab735ba0361057d75e51adb6790426c","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.4","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-FUKE8ASr8GxVq5rmky/tY8bsf++cleGT591lfLiqnPsP1fo3kAfgRfWA2QRHTCKFNlQxzUhVOEDv+PaysqiOjw==","shasum":"06d57d728e6f928e03b9cc3b993f6102f305c32e","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.4.tgz","fileCount":15,"unpackedSize":45252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnHFUCRA9TVsSAnZWagAA83oP/1rOZLTGWQ3wf4DlVybX\nRUOf9Mn05VHZIApI7EsRls3CnApuw/DHOkuPXblvVn9AETaDmgkHwKF+cxSp\ndlFHze/WMDSftGKxvrK1MRmRPbPczUfu17qxX5ZLnKC8BYMeeGsH6y61LCyr\nX9zQdXbpZWAhZSLnspIgt+XyQQoEboHCSEfwfs8OF/ExBj/ORNkWnPW6d8+D\neImLrmMjRs+qVpGuBMQ434J8YyNDbCUqqQSvkAkcA2GHJQ0J/uUUHzajm+BX\nJOBM3z0JZyj5Il/GSzP5GafPFy+tts1VXkPC26if4s/2fpiNMCxsigAqoJ/T\nrjeKce6kZED3opDdnjfyTf/SkoJN03oVXoXNu0uo8k1iiEOwFDT58vdNnGPl\novbzVztRb/OjfUexo5oyWzR7+y9ILjQhDYnGH80KPP50ubMmPvWPcfDxCSnb\nMy67ExEWHnmw7nbfl2XE2ZkzpLbDEYlu+c0SPpXZ7gacqhxmhVNT9pGcoyOA\novYT63cfo+Ax/wQ+HIvZ3XJHvj6lwGzE3bOrc0ifJ+Mdyax5/I+cNiP5/X5c\nLby1DoSpmjCJxMm76z4xYqAz/1I/CYcJslBiiPpH441sO/umgkQapYQMnRJO\nYw+iRFKhuzdAw+wQLVrruVxdjVLnKTgUr/kMIpddrlha1wXmRiYioQBImbH8\nJL3d\r\n=YNi/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKAlCew/M1EHcw+Ws5vA9BAg6otVMWC8VXVVb2ZQsQ5QIgHWvMYJVeqHJH+lQq6NowoEFb9n8WKDyjCuJbLTcqvGQ="}]},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.4_1604088148476_0.2531423616701738"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.5":{"name":"apollo-cache-control","version":"0.11.5","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^2.4.5","apollo-server-plugin-base":"^0.10.3"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"7e543ed5540ce5995b30b1bb2a7b54367fd49d6f","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.5","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-jvarfQhwDRazpOsmkt5Pd7qGFrtbL70zMbUZGqDhJSYpfqI672f7bXXc7O3vtpbD3qnS3XTBvK2kspX/Bdo0IA==","shasum":"de208bd6fef440c1fed451b830d6402eab307a2e","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.5.tgz","fileCount":15,"unpackedSize":45252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4nwfCRA9TVsSAnZWagAAdloQAJqZAQvIHeD4HQCLUUS2\niDGTSKZNd5fAGxtwRFvnsBBz6NDUOgcozswZcCODhNF2fwbq0KR8agoMqA+C\nk58MguJRrYTiIQ10QYbYt0WtrWvFszWdeH1YK3fmFH5XxNFFWz5CF58w6SrU\nF9TlEcz8eq6E91xvtLgr+OMGBw0qgOhvSX1KuMDdi2WGaclh+ehCtfrDXehf\nogEj7cLbwEfeLxSWWHKKlX3d188Z0UAQZMGiuBVdCK806Or2tuSujrP0llG8\nd0hVEgq+iL9/YYPkLBf4BDZUuBCpiD7DHlAj4J1TIMYKaukdXdQdYcigGkD9\nm1ZNcxL0iNtHNr/vls7sPIpFzzAn83SQblcEHLNYb3s3PqqEn3ngUqtYCDtL\njB9dmcHYkmnmZg7RRmRfOpJi9oOQlehuPnBQ23a0rvvOTCnCpNgorEOV1wMB\nPd2gTUB71COesY1QjeNWTZjZ9k3nTVMtKPJDKjl63ur9vQWUduspy4zJGR8b\nmzCuSv9IAmvPLoz4mf8g6vE7E46hxRtfExvbt8m3J2j/5xD6nP7pcqPrB9bj\n4qN8fDjQ6P2Zq43pl4PU9HfeC8yRlHtMzyDZklzx5y/+VKWd87410Rfq1+PO\nlik1fHKsS5nG0ztvdCHKFwdo0VZzCxekNSsH+hXjZqqtIOVOtHh1jzVcjyRz\n+FY3\r\n=GhMQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7V1KxE0tTANAQhwuHUoM0Aus2wMlSz03f/xZA7Ao07AiEAkqv7OC1knI2W5mY8RaXQTyg3y5EQeB9eOJTDRk/GTWE="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.5_1608678431452_0.5979457859344097"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.11.6":{"name":"apollo-cache-control","version":"0.11.6","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.0.0","apollo-server-plugin-base":"^0.10.4"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"c212627be591cd2c2469321b58b15f1b7909778d","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.11.6","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.22.1/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-YZ+uuIG+fPy+mkpBS2qKF0v1qlzZ3PW6xZVaDukeK3ed3iAs4L/2YnkTqau3OmoF/VPzX2FmSkocX/OVd59YSw==","shasum":"f7bdf924272af47ac474cf3f3f35cfc038cc9485","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.6.tgz","fileCount":15,"unpackedSize":45252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAHZ8CRA9TVsSAnZWagAAWo0P/j6SAC/2qEJUH/hF3n4n\nZ81iKGaTDfKdh32894BeqzWTGxcYrLBY54wuMAF1aZJzoGUUX6lfyn7vxXvw\nkCyQlciOIiw8A8YO+XfOBohv6sosemcJsu8Z6VlK/VyapqlvFDjfSOii531b\nmQgMOkTVUl2ahXa1Qale0PZffe+xs154pjQLEdzNHuGGwt9dcxJddOSAKx5v\ne6W+zKXWB5QUMrY3MZpn2iJP5SW9wVHBTxVU0MuO/JclIot8ZzhJQkcrph/Z\nKOuz8Qn5tBfJCFx2RD4enU7tCnGlmbCL834RoY9PPK4evvuulN+BgfGoJxXg\nDNjkP9bRBcmrjRxPwpG8e8LxIiM3i/hp1m2Yg7zYrZtnWmoMNBkFXpgU3Lvf\nt/R5OOp6VpklnsIqL284n6MRFnIbCC3rzLd3RIC8rXC/GwkqYQf7bd9H7MbW\ntc6UY8XddSArNp7gwuwRFTrG4UuQmRlP17xCv0C17/qM6llxsZrMBtkcKulx\noKHRCB5+/6RRQxdx31RFT/PIXmc0J9EERt3gRKIw76sBgD9K2x2YTnqPMMUs\n/tRBPGKkwSDBnWMxEnmq6DSosm5+AFMF/KMpQXo35zYotzuQsu3PkKym2y9+\nqrUwEhRkCoe7DmFDutwLhldgFaOb0R1RheH5YdZQPihvhKMJayjtxO99NpcL\nbuX8\r\n=Wb6M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9FGIHpNYgaJbojkCgA1HXvcXwH74istPURr/pNlm4rwIgbxsm11BTcTVhk8IzoBccoemG/pzxbhLXLhMQDEV9psA="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.11.6_1610643068320_0.6560187992113993"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.12.0-alpha.0":{"name":"apollo-cache-control","version":"0.12.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.0.0","apollo-server-plugin-base":"^0.11.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"1682a2566c135381b67310922ab7fba44c4f0644","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.12.0-alpha.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-03kiJw1ADZDzJ0BdoSrIH5JgMSFEtZtY36CVe873ROGt655eInwOMJQrcMIk/3hx7pBK8CTr2OyTVFEyAi4OPg==","shasum":"096d5b4397fc9b5d9f5b2045e3863c19711973ce","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.12.0-alpha.0.tgz","fileCount":15,"unpackedSize":45268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWRMmCRA9TVsSAnZWagAA8pUP/RnGndKJSAMpTepZbkkk\neOS9c3C9mE8svXba5sar9ZXHXKbPLhkntCItAcLNC0l573Z+gplF8mPK5TCS\nUNBAhmDs3fI/fAtk7sZ1OfYj3BcQT9nCmElT0y+SCD0WzAJGD0GTapCxH6+b\nDI1We0cnVUQZiH3GPRtaqblx11XUiB0XZN8rJdjfsznNgqnXUH2ZXWH0guM9\nYZzqqWFLrExRQfDiVrtG8Xc7yDXg7rH0bHg1SDYgSzxr+gQ+Jzw+uB6plCMT\nKXRQnymDNwFWZ3f7IsuaGFWj+duFlAfbhJz1qctgkbuGJbh0IGwHz6cWHJtK\nHPJyc17MLQcq7O8ranxatzV3ffjd2Vtp+Com2ph6fHI8GHHaVIWXcg6VYX6/\nCgSWoNz+lLqr0wDqqb2ShwMHv0pB5P+9x6G33s+zSnDaXPKHVA9hoegTuYb1\n56IN05cVJbqiJbWxnUHDuvj5Ivfv7i/JRXWSYN8oSgWvon5ubXNec/Pb25JP\nxUDc5wrmpzVrCfd7LYyvZxOxuuLD8Y1tnXaldot7zKMPGSJ3O9Vv+uLU0CLh\n41aDr6/IKA1ob4919OIUoTvJSORK6IOidoPZk/ABN5aC3poT4KZ4F3j4WgW+\nlu+DpwXYcA9Yg5DHza2ey9CigTyQ0ZRoOpEslDyjYSHVAfT257Fgf2u+4YwB\nf/y6\r\n=FwfG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGIAHJaFkqK47FuH4FTzubpiTbx0/NC8AxuIL66yP/RjAiBaGm0esqmCOnmqT2XVYJ7YqMwNmfL92GfUuFQsKRAr/w=="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.12.0-alpha.0_1616450341931_0.4357160734287173"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.12.0":{"name":"apollo-cache-control","version":"0.12.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.0.0","apollo-server-plugin-base":"^0.11.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"93499e703a375ff0fbd128138e46b574074b44e6","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.12.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-kClF5rfAm159Nboul1LxA+l58Tjz0M8L1GUknEMpZt0UHhILLAn3BfcG3ToX4TbNoR9M57kKMUcbPWLdy3Up7w==","shasum":"45aea0a232d0704e33c2b1a3c428a5500b29818c","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.12.0.tgz","fileCount":15,"unpackedSize":45252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXSqhCRA9TVsSAnZWagAA6rQP/RmfBI+GWhbFHVLtn840\nmZP3TlxwtHdtxhBfoB0FXgV6nCii6hTMVH8aWuTDsJKeQqj/BqbiDaH7gfL9\nrfiwLRzbMuNCoODbBERK6vrbR2Uzkd7kezE5buI/rxirgbMyPFt47MUndMM+\n9SsSxuD301Dtd7qUp2oq7X0Fww8aqRsSybZjjD0uM73AIcV+bLA/gKActHBF\noKS7TQI6vOXkjSRxb8ltdyooswQTDLFJdMKkw6CDHqXGdTkVJQ3UxCMkHStS\noTSa3SjWF3/S6Rz1Fv+bn+fDfPgYy3HrpEcc/Dl0AE7LFnNG55nTOXP1nCVh\nQJK3zGhTi45pvwmU724HNEZPehGRmH5YPAogKziZ+Ul0Eiv60dI0Hhk+czpm\ndJ3a04zDxnmyksiPvapuk5QUjlvTuM0z4JvsVXV3J6P+3nmcrQ/K+Ikh7TQV\nwxO/5lQGsQfNaKuF1ogRcecvqxtZSajeBc/FquyFX1S60gKWy4EGIYyeSegS\n8B0Rr1Kau+g73YufVoFxr28ngHWFXzr7FyJ+7Z4Wo0q1woT6DhSi2Pu4Tea+\nq+r+bivOWdCODqxiOnRKGHLguI2b0G4ShP7hJjTxLs60VKqBvinm06BASGtJ\nGQ+kz7kCBeGJwcXDO5zHppu+t+93TiOLkh9KPcOK/ZFULrw/GOzleF00t58d\nAx1l\r\n=mHB5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC06UEsluxwEdStPgWgOTF6AVsEJVyZsfLue+KFxZE87gIgLZFHnyUozQmFw3OR8ysiksyJmQzlxp2rYHaV/nC38R4="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.12.0_1616718496972_0.3442991564966209"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.12.1-unified.0":{"name":"apollo-cache-control","version":"0.12.1-unified.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.0.1-unified.0","apollo-server-plugin-base":"^0.11.1-unified.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"6972e2379e91b08ccc458a230c6a687099dbf108","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.12.1-unified.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-AfaAyGu/Dyq7c9jhcVlKCguiXpIXsTF2xyo5BAopUtcph+c69WRDFbwrZMhs5xOEKqJ2r8eltT6EVOdFJ0R/ZQ==","shasum":"84b9bf32c773b22241474bc67858f8566b714197","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.12.1-unified.0.tgz","fileCount":15,"unpackedSize":45281,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggfclCRA9TVsSAnZWagAAA5IP/jACc89axXZP4nxdoeAF\n+bp74bFtjAlwwYaU1fMp5EPMk/5hPpG84PLPSZ2v8lCCAB2WXwTprMrFjHG7\nwY9iybJLj4eus29zXB+ZrEHMC4OyZfN5lhJR7aoyhzABClQGsBeclgh+Mobi\nss+2hOWCVb0CUxXpdv42uPi+K9TLqHa+Zfb0ngaROvWZ8uEk3EO8AOzzx6yg\nPCwGf0ryOPI4XKL9HFE0pj5jha0FtPlmSPAhkVaPfbhNEItebw8YgXRdaWDL\nAwt77yrFYZ9ok2k39CuxxDCPOlke/24suNSrRyRwo9wkswIHRXO7pDzYfWGa\nQdid8ycJKjooRb/QjD+AOxNHKIgDOQwMqNwNYw9ZnmnMaPw47mrsFbTbz7xZ\n6w9LkcmimTcIA3hiW5Ab8tFTXSy2cSFWYIjyXFI5immUQk8CvwUOOCH0XXDx\nTVTA6tNUm6h+vP/35i0W4Ov7KRL7FAE36o0uZpN6oZVFIlJA63EVkdofbDo2\nU6Nah531YshigvpBhXTamyvXX2eHYtJHGv6P/4t1ViyTf60BSRyiIm/BY3Cx\nYkVM8h2zvzq+Tn0v/tuoX+0kp/cTON55IcfIpxoDkLM3gn0+Ax0zAUxX7PLG\nGd+QufFVR0g92OanDOl+QMcdYbkABWpEo2nRn+EDw92MiCMzftJk2gEAbFKY\n9L0M\r\n=yqjc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDEoFxX6klYPkMQxumzbRRjpsyzD/U7K96sptqoKVdOyAiEAkt9g4NFsgpOpmgNpSlcUPkRfXFPbeiKdb5i5uTW0m9w="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.12.1-unified.0_1619130149344_0.775463810989665"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.12.1-unified2.0":{"name":"apollo-cache-control","version":"0.12.1-unified2.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.0.1-unified2.0","apollo-server-plugin-base":"^0.11.1-unified2.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"9d2889bf59a781fc297672fe463ad4b88e0062af","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.12.1-unified2.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-5SaPLmB47OkKH6ccbk+R1nZ0BSSO42hZfokYq3nmyE2Uz+M8GtFNVpja6zxtWckH2fOC3W/Zcq+stMqpwF4Zqw==","shasum":"107bbe472685f5a27acc8335ae476965922eac24","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.12.1-unified2.0.tgz","fileCount":15,"unpackedSize":45284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgggNaCRA9TVsSAnZWagAAXIsQAJMcduaOszVPTTzjxWp2\nP0gcS34ZDhXLWWbXeDEfhuYQHFMz3yuRzaHEszGlDltxAwl06MJ0PqM5wSoS\n7BFDbcbCLbiT+4zOuLICEnRm4yI3rn1Kkxcz+20oxOk1e4I+DlbNV/uSZEPc\nq/HlQYQErPCPHVhO6x6DaizWcwLHmPKzDUIeZ8f5ARXRouaIgYgDTo8ms29s\nSBOVjRkrqmLjx3/B4FDqkMi08ayxkjgp+re92/flceAAOVseqq1+6MLiqOpD\nHwVAUxAZGkN1LRE33koFQfU/I0K7i0FY4ioMPBbq+6cXN49L/Apuj2cD8l49\ntPOZb95iNfqavMJJyRbegVqm701/eofjdRY+jtjaDaIA11vyaSKU+dW5R+9z\n97V4Ht4FRr3954O7Kw4EGH5ZEXIFHnZHSI2PLZ+ZDtgRx7ewOflvMlXZQIMs\nEsvnsq6Fbr1VancWohBmzoj0eDi4d956W7IwHKUbzvzh0GhmyxDfuhvN+5H8\npPoiLqsX+7bRaHdsL4WZRoAl0z0dQGTKR61Hd8SsbV4ify48Q8daCbqbvVAp\nKOflZpYAHfNUq/fqLUg8vjXtOaBPl0WcKH+wypoiVXkymfrXQB8kPGbIHnb2\nHHeo3wkf2seaB+tDu0XLjqAGxiSmNE5HDda+z9vsG9SsKRWIUKvROZc8358C\nXsCs\r\n=um9L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtQsPX4jxwTN/qCD96bL9jWVCzomal2dt02oNtS11dVAIhALcdEWl5+GxiadKWp2iuXRB5EGqMv/155LnaZzuxUmc4"}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.12.1-unified2.0_1619133273737_0.17656258531766333"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.12.1-unified2.1":{"name":"apollo-cache-control","version":"0.12.1-unified2.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.0.1-unified2.0","apollo-server-plugin-base":"^0.11.1-unified2.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"414d1839ae9203ec4d7ea04af4eeb6fe11aea19c","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.12.1-unified2.1","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-SYcBKOzyzPL6UdfTIc7mkCLjfqgew56Cm2EpCYo66liwJcmJXlG2yOcChq1YNJ1uGz98qVvZfbPDOqsMo/VhQw==","shasum":"bacd6ba0ea5d73fa006708ef624826f128f27941","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.12.1-unified2.1.tgz","fileCount":15,"unpackedSize":45284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiI1dCRA9TVsSAnZWagAAausP/RYPl/eQmMj+i1580rAc\ndoA4f64MkmvPxMMmMqTM8EqIZof5ND0MEtTR/Tp2VtyxGLbj3qVVTzki1BkR\nbpAM5EQyeOQKBVhi3br5h6IOiR+DPLZO/v1PcEgyT42+TrpnGLzj4nxbjx+t\npqvb9X0GLr6StEJ9UqN4mOBLLu4aHKqdQLAWYtAUNrYFxpdUgkyDfhMtkZRm\nNhbftW3SEWs7mR/vTj+tOTSUM3XzQXo8NGYqbHpi00PilAPCGnZvN+0hxOXh\n7uxZ18+nXDP5ei72sqmsz8yJlepj3YZ+lEeKstD6RXtmhxRht+putqGBP9Sh\nQl6bbQlzes/jCJmpTqZEYiy+y9B7putXFaIHccPaLNWn8/RDnESe2Dju9Ce3\nErSmsjWfcz22DKm+UuNQ9qXMwMXRbFKrQuFk0nYsr/aMZhfpKlCsA3OGYPzy\ndJhndf0+GoGKbnD/wxq1h3Lh5c4WCw+pXYRrWSkKHA5VUG/CWMErCm5HRCty\nO3f24sTGrVdhnhXoKHhdGIAbknZ8/6+ntUa3pxaGrQEgvp5Z60ASIUI2Wz9N\nnDJ04IGewJokBAk6LELtnABOOsqLAsucA+JYxA0SsNp7HULpg3yu4suTBEoy\nlTjO3CklcGwVqg/rXRnmMETCInPEhTJnTbqjPLViuKBk7rTzCOMrFQT5YtyQ\nQWhG\r\n=v9oa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF5Pf3CqrsmPTeY7rNwZu2vcVU1CGnuAsiR+hf8FlbD/AiEA15BeEmTm3vGxo/qzhOmEgZiX72kmAKg9tqj90WWE3IE="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.12.1-unified2.1_1619561821505_0.8237615810152719"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.13.0-alpha.0":{"name":"apollo-cache-control","version":"0.13.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.1.0-alpha.0","apollo-server-plugin-base":"^0.12.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"3415b0708fed87b393d9f34ef9df9340502d2b25","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.13.0-alpha.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-qEoLckY4Vo/jNTkP+7JMheHOLDgJZiUmQY0rBn+vMHY2jcEw5itfxbAoTGolsrdjAPE5APJdRsiiXhi4f1hsaA==","shasum":"415ce549966f68559c817932a3a1dcfcf5641af7","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.13.0-alpha.0.tgz","fileCount":15,"unpackedSize":45275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgic06CRA9TVsSAnZWagAA+bAP+QGVOtDtnuTdQKfsT77x\n3lTeGWyyEPL8jXcOWflFyBfXcQ/jw9DZZdM8Bznehlc4u4h1FBLARH49teKG\nl0KmZAR+QB3CEdpVAJogTfha/XD2sYAz7dlW7U5ihUZ14mUAUcQa5flo7Knf\nW/sC7v0vSh8dC05G+fcXEgPOS7nL5k23dk8iO318zjFJ3d25fvNLyr5AZcZB\nib8mkqgLlJk7cezZy4bAwGX0utTtyFR0Eean8LJQx229NSBW6RZ8rQSwov+k\nwwkk1eY6eKm0AMR7rTF1qSkP+wtEdP0jcPU9QOPVI/xyakwCXHZMBR5Lq5cH\nfzn+4d+HrGEV04G3n8Fm3L9yC7gg+37FZ0WOdBftxlYpvqTayJB8M/jRrXNE\nv0GVdo7+1UdLLHtEf91wyLy+A2hb33vkrPvEGU4DWameVoCDQ62+chD7Xm29\nHmHNR5qdh7IndMVukNAXyZrbWOJEXgSFQYHWf42AvrWOBcFkuGPVL7PeYDHs\nlE2P5v1AROecIJkn5zQggJQ32jKL2s93uLE5GAVTHHPy/BUC+RH3A7PwaywF\nJ1VeFnbtyfAm4K4MQozxruq/PO0+h2MY9S1U7qz9jtJjTnrLGTCfF/Rwr6Dp\n9hDdadLiiYtzQe10dGWGFwNSI1z9GFzew2Sck6sX4Etq3CHEG1jhTJc3as0N\npYSi\r\n=U7FC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrQAA5+uluWuBZjnly527BXKvNNhpHADmb0CAeFMKHpgIgKuUH2/xYVhWrOunrHbD47MkA2uytHEiGxy2zNq/cHDE="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.13.0-alpha.0_1619643705553_0.19984984482336254"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.13.0-alpha.1":{"name":"apollo-cache-control","version":"0.13.0-alpha.1","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.1.0-alpha.0","apollo-server-plugin-base":"^0.12.0-alpha.1"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"27275564a9ebf9251ed4e990c4ff1900b6cb49e8","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.13.0-alpha.1","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-qzYnkAhOFotO7jnydmt3YxFLjJQYLXjaJ/qd8Xb6HsBlIJ27axlU+DcayMmnvnOoUa+VgbzwXBvJqtAIEPP0TQ==","shasum":"edd911f59dec45a55b6bc84b38a2484186859415","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.13.0-alpha.1.tgz","fileCount":15,"unpackedSize":45275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgizQiCRA9TVsSAnZWagAAr4QP/1hlMRUIh9gaD4kIcD58\nKTbjfWb58t+DOk8intYw3/Np//t5/sNOhdleqVNQ9uZlzVYLAPTRjpiyqERv\nRw2I6+jrbznNGft9S6GFxlI5+fhvsNKophzL/K7temcxnIswuS+EoYuZCkUq\ngnleErq77mUicYiZAt83HA7He08p9hlu1A1G3npKWgwEfFd7Ah1eDJ90EQu+\n5Gj+T0RwHQkDRnDHfnmt/GF1vZJ55o+qI+GD1wFcdd90FCdjP16sui6fJ5VJ\n4UXfwn6CC/XBVPQywsK3AKP9fSTAybGVabZG6y/3xIfPQA0EasTVog7LlyEf\nFAvb2OWHpsH5GzO+x47egVtUyUTY93P8xEH8t7CbGXwAqfwrhd4nHgSlam4Y\nqaSG6dyZTMJq2CYrqXkUt8fWKSBlO+L0tgSbODh+4Cur8HqfB2oidmcPM3Y4\nK/cCFjBm5lBmd86FKz6UdEE46RoImOYjt9VT7kZnTX+9puMZMNExGPQnO0GF\nuMaWTa1/z1uJwDZviZW/rWNBe3NR1ZEm34JldE9XuAnrWh2wfjdBJEfTfk96\nAXnIcABzar+8Vq5E6Q2oOrjr2IZ3Oz1D/5hHD643g9jNSnqnHvvrF+wDL9vV\nPT67s/LKlC3FhIp5UZW3stBef0odiqT1yjSHXbZlr1EqkMHC9X7uz2HOJjjX\n6PsH\r\n=2tfI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH9fS5ROctYwmsQDEmBgrq+OqBCeeyqcfZrYtcJnVujPAiEAjRtylLbJbHt/u9ZtRmzxxu3D3wXkay4Cd+6eCOYbAgc="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.13.0-alpha.1_1619735586251_0.7505148355394928"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.13.0-alpha.2":{"name":"apollo-cache-control","version":"0.13.0-alpha.2","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.1.0-alpha.0","apollo-server-plugin-base":"^0.12.0-alpha.2"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"4e5f03e2b071c2a049836dd14f072f161a0ccd12","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.13.0-alpha.2","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-wT57hpxauF4WGjHaZ6y+JrM5GJ3fjvvxNgpsPiqxNZEmDqo9p9RXOnptnG8hyeqhx9azxI57FXpOsgxXWzlapg==","shasum":"55381f03e1f3cae42d519958f327e5cf4bb6b9ac","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.13.0-alpha.2.tgz","fileCount":15,"unpackedSize":45275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjA7cCRA9TVsSAnZWagAAhwgP/0H6xHLFd4pm8FeFN3hM\nWRUhB1Y1qTMOrv7Id+gXsgfnMnyvSmzHvWvqb7KYhkdyzquU/kIvIrVm1K7/\nhnUmp2G9JB+/oBzWXZGQqmPqdE58qAEPNCpZVTTYGsma5Gsb9WnM8kK89ZUg\nURI/v8GEbH2rZ8PSSPVRTCGn0dRBlW96y9X2lkYwPkbg1oiXt7N0DEg6daDO\n1sc8EzKTydvsYgiJgzmHn87tqWNcuVSttW4PdhMLwE7DgRdAph4Fq9SCP8dk\n4OCLzM9j9C6d8S3x9X3f4TwO7yK4h0/F6t8f8Es2ny+6OMjpdnSjt1du9ms8\nQB/7chz/iz3fWDLN9pVWHZxtC/PUjqkfBFkDkn6eeNeVHACA/QxrcgZtI7dY\npm/33cTIJg1uVHAMonMu1ddFvjRtLC75IfKBH5HvTlJMAwpb5M+3M7fkCzV6\nN44NLAXSxP0DxBa2vxhtL9NxmTg3t7skrQUx3U7Y3X2GYCSaMHvU6Q/Oeyua\nio+RHvmZeQPSFgf7xjqwjQ7McTnvYnYws948/XIXmFL6GNT6H6w5ZpecxHQd\n6DYPwh8QkabZ76dvSPSvnxaF6j2wg5ecyTrsuDDTF9ij3mENRkS+WyL24eOk\n8Fmrvk0M7YGaiKhHPD0O+M5ecGhAKwE763zn0qkVNm0Z9+vN3u0NR13WXlCB\n8/M+\r\n=9Fab\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHx4SwMfJSjB5bU49WWXTh8UCi8EZL85kZpfgXHeOIK3AiEA8p5AITMk8iG/cqa33QoRHE1hDbxXmVOul0At8Rz15jw="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.13.0-alpha.2_1619791579950_0.5330432934283917"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.13.0":{"name":"apollo-cache-control","version":"0.13.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.1.0","apollo-server-plugin-base":"^0.12.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"f2349d0e10633ee79bed152f682e53730175d59b","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.13.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-ImUXwVc/8K9QA3mQiKbKw8bOS4lMNL4DoP4hldIx+gwna8dgh3gBChgxW5guMOhcvH/55ximS7ZNWUglFmQY4Q==","shasum":"cd63aa24a662b2fe89ef147a30df907c8061aedc","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.13.0.tgz","fileCount":15,"unpackedSize":45251,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjEf5CRA9TVsSAnZWagAAlzgP/1tlm3+HoBv3KbDkht9j\nUnc1Afg8Yjp7HI7ifTC48beonWWzdHhWjos3djuzLFoBZ9sRsklhw01MGZ5W\n+wOMPnZf1GKNkmLay6CfaXhn5XVyzdvwDw4soK/B5iho65hr37tjlgkqLhjd\nbG17J2rXNpMASdTHJpznCtkpn8+PulyiS11/EOZbEpi8CAHPzja0umVnDvQl\nU1MCSysCyyRRIk0DJOhzAE6Pdmiq6Pnw2gycO999q25ibqzqvvRExfdk79zw\n2A2NAwYJ7Oz7RanHW+n+2WwU+qqk1cD28bjMt+vqA/lNuPsu7BbgmyZ9NGSG\nXDMpH+RUK+QM0XK8yvBNoEKhIoMwuW1qeY7U0UaFRxIMFL9v20ja7F69FHEC\nvXTtz6ycBYlQ586h48kEFkveHVWmn8qs5igOGO1jshgyLpA/5/xVw9PtvxQP\nPJixfHdEq4iK59zg1fbzm1tqyJET5/Ga8aYHsWknKQv7qXqELBRFmeIa5IBa\nJMSQN85Wg7VjhbnjlWx1IrWSMNXLdE0maBxmEklaBquahTZBBKcbRyDcKu43\naPhNXwcPGfdLMc12eCTqB0jdn26pxbs4hR7qS28v4/i7qtOK1ed0IZsnuGWN\nun6dslUCOxKNfZyRFLs4I/QZwA1KWLQddPbVZNvZqeflfeE/mpI+5w+JeReL\nNtMy\r\n=q+r7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGEvLpedlG9zisEEZTD1YIa8D06Xw8cU/iyJzg7Pn+nFAiA87w6xJZ/m3W648oaKrKjMdod+MiNdn+xC0bTeCONxcA=="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.13.0_1619806200331_0.5658538086159055"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.300.0-alpha.4":{"name":"apollo-cache-control","version":"0.300.0-alpha.4","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=12.0"},"dependencies":{"apollo-server-env":"^3.1.0-alpha.4","apollo-server-plugin-base":"^0.300.0-alpha.4"},"peerDependencies":{"graphql":"^15.3.0"},"gitHead":"97073f33d30f2d682655eb0e4dce1d7d43721807","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type. With Apollo Server 3, you need to include the definition for the `@cacheControl` directive in your schema.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n\nenum CacheControlScope {\n  PUBLIC\n  PRIVATE\n}\n\ndirective @cacheControl(\n  maxAge: Int\n  scope: CacheControlScope\n) on FIELD_DEFINITION | OBJECT | INTERFACE\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.300.0-alpha.4","_nodeVersion":"12.22.1","_npmVersion":"lerna/4.0.0/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-3clEuLvyRfalRDt5om7l43ViQQswXfMdptN6cyuBonViMJpeJaqunxV2S/2dCt0tpN+yTE1ofBYgmqADX8HmwQ==","shasum":"f897eabc727c079a30c26db4ebcf43ea6a9c9c3b","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.300.0-alpha.4.tgz","fileCount":16,"unpackedSize":433694,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglFAcCRA9TVsSAnZWagAAhvkP/0vRLIjVIBeUoLCW/NPk\nWaqytK0JU5X6MyMSR85U/EMh85lc7ifPpOxuqtCY+z7g3irbZLKqmu4ayEuN\nIzYOdVtIBe+L5ILI7ol56QsXGRwuS7x1Y+rLIeGiJTBJxK6LJH0oFTK2i/Gp\nBcIuJU5fapqhK1+GE95LlijHroTrdpoocMN5RqcqMVtRnHgrTj4eToxn9/A9\nd1xRGPPx2UQqKqwf1lduBX+MeKiZn9V9MjmvIz7pbd3nPunRQTkjHO9keSRd\n/Z+Y4aYrROv0X1ivsLUPKJbp1TR3wUqHnHxyO5O7igv409VSZUuHrLdHoHYI\nOtkTgIR6LIvTF64jgzDwu4ijtuuTivQ4b/QjE3yb0bGrNjeKXMYS2kdq3EbH\n5Rp8/BisJSm8N1wkbdOCS2pUzBdKFwhiqBGZtx1WyNn04Uk9ufc2D18OEZ59\nUHb9IrruJvBEgjE7EFv+p1PMDNJTX5cKWZqMRtTfGkwRvrP4pKP2OuQHTe22\nTT7taC6n+U4zg4JWknI1NrYRy6fSmOKUBGEf2++/lY7XfKWEgWui9VqSMxMc\nrphSrawFWdYrGi8fJSgNfId256C5iMIcL8w817Hevg0ESc2V+6KoUH0TlZkp\nW6UVWo9xBIVSuzEBEW5j1u1VtJdB1pdKfDhdpLv00HzxTtE9k36JcuWkq2tN\nV/ni\r\n=/0vU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEgprqCe2FA154vGjt2Ouq+MJrIsIrJUzsflEwIXkx4wIge09ipXAICg46JcQol2oKjHoDQ/yHW/6T4GxjjWLJU/U="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.300.0-alpha.4_1620332572261_0.8723637328185678"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.14.0-alpha.0":{"name":"apollo-cache-control","version":"0.14.0-alpha.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.1.0","apollo-server-plugin-base":"^0.13.0-alpha.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"c8c07483f914a18c07cce6435dcc8816fa795c34","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.14.0-alpha.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-1yeHl4ljP43R0AQ4Eet4nX3f/0rt6jiBKXErSah/ow45MuFICXZLj6oASW+O+oBngmgr3abHcSWFX0py1BOxUQ==","shasum":"a415bb65e5ab9125a3c867c3eb36764775f26b58","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0-alpha.0.tgz","fileCount":15,"unpackedSize":45267,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrsw8CRA9TVsSAnZWagAAGY8P/1G5B9CjKEoQfZSSZWiE\ntFMjtID9EdmNHa6dkmffaFDrWZOnZtAmWAJSvQ0JcPXIRZiZGTcPyYXTusTJ\njhKKdI4vyAsp2LMz0P4wJfzUpZd4lrkw/gNJq64ouHVR05yh7ISHoUqVtwFf\nb/SJJB5fwGeVfMb1JcKlvd7b+pmloD+vvC37yufa52OTgKSA5V5pvAkMnMxy\naqiChotqPav0ZzQAENqj0EyOI6Ioprfn8odP3QJPSKQUYaziWT0B443zXwls\ncOgn1rkJp8F28qC5mSWVF1rKVZ6VnGnKnAEJIhZwsan3Ib1gPJzrf+be6G8d\nV4DEnb8r7AQRJ/a08HZfW4DZowCi1ql6q9An6g8xnP3Z2M0FumijCu1OdhPj\nuF2ueiOe7w32QfB7zYwJumz9YNZqa+A3M/zsKg528pGZ2yPv3yvrB9ZGqml2\nU45llvtGc7mVQh/XjNuF8FHWjnXcaEYGgff7rr4K06ZlrW4iPMOBLWFIVhlF\nyW5iQG74qI/kc1fAeXHHw0chLC4jsuJeInkprYtUZD7nMX3Y+IWrzteZRErO\nSxoiliq/YXq2nUwWJrtBDrey+glA5zoJM2u3ofDY3Kvt39or8WGJ/rbrzmOq\n1+ekYF+Fi+dQR6esY8R27PsOrxzI3Uh31hGQjLshildlJ17ay8irTGVJIUE9\n24gT\r\n=QWWf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDusIViqYVdazZ/3RVSjZH9ClbT6FCl4ysQv75/ODNqoQIgB5QoPyZOPEZx50nbmmG/C2vrSrNiYiHIpEVugU0qCqA="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.14.0-alpha.0_1622068284088_0.5650263442090167"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.14.0":{"name":"apollo-cache-control","version":"0.14.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.1.0","apollo-server-plugin-base":"^0.13.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"42983b06a381aee6333fd11d5af7bd7fa0d549ec","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.14.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==","shasum":"95f20c3e03e7994e0d1bd48c59aeaeb575ed0ce7","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz","fileCount":15,"unpackedSize":45251,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgr69XCRA9TVsSAnZWagAAbggQAJSfZIpmBCSDVJVvwChn\nl3wM6+KrjYYQObLpiPAM8aGmHULDbgPJYgFkCv9Y7lUuSEQOxHh2WgVMNNeJ\n/sPKh8ZJcHeQEMYjqq38x+lP6+RcOlWbKQaWNQz75Rj8/fX0Gtl0X/i/8lXa\n7zOTrL/+2e/x/m/LnbsX6y+JLn/QIDI0muvd014MF1b3DEgVj5yYxRm/Sa6H\nb5oel0ZdSu5CNV0CR+C80QO8W65Wyyhk08WZNIq2zn1h+d92hDElLPZBbdnY\nC8MgikXCuESGYSNBxV9AJUYRR2r306P8JDwKdAvf2w+2R7yicwyYQWLmk6/T\nGmvcl3gUxtJ2BPhMOAq74BCo3iVzMCdfDGnUc1QUn7JrigVRrg86WCoAhBfK\nhnhrqPbAYQbZfL17bTZiG3LXqPoI3XpxF8Dm8V4Di1oJvqH9k3xS0BS9puHR\n49z4ha7L9n1k3HIdA57nAF4YRpHtXpBFc3KO/fj2dMme+2ZYjjsxXjb6o3uY\nhrB4njYEES9yDeX5gsEwbsFEnSNEJTQB9fnHmIacEo+xJKv3veJfNLN9vU3j\nDygTu+MEHJK7+8jIZoKjWDlbnEjLiDhrS3byqyPqWEQ9VYJczkbGo1COGxgf\n16jrRUTeDY+JxlhnmQu0hhI8CjbI6AZzv11+SCLH2wAluUxKEZ3/5EuCKXeP\n3NcV\r\n=XsEJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDenywP3ljbKDKvYx/9vzCDLDStIE/XdW4bB96UWewC0gIgQQITmjFBzeNguZqSlIZHRBX10YL6ErOWDfsqQXcp1SU="}]},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.14.0_1622126423203_0.6822849211797108"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."},"0.15.0":{"name":"apollo-cache-control","version":"0.15.0","description":"A GraphQL extension for cache control","main":"./dist/index.js","types":"./dist/index.d.ts","license":"MIT","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"engines":{"node":">=6.0"},"dependencies":{"apollo-server-env":"^3.2.0","apollo-server-plugin-base":"^0.14.0"},"peerDependencies":{"graphql":"^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"},"gitHead":"91de501bb389c07ccfc5e684811153267b91e9ac","readme":"# Apollo Cache Control (for Node.js)\n\nThis package is used to collect and expose cache control data in the [Apollo Cache Control](https://github.com/apollographql/apollo-cache-control) format.\n\nIt relies on instrumenting a GraphQL schema to collect cache control hints, and exposes cache control data for an individual request under `extensions` as part of the GraphQL response.\n\nThis data can be consumed by any tool to inform caching and visualize the cache policies that are in effect for a particular request.\n\nUses for this data include apollo-server-plugin-response-cache (which implements a full response cache) and setting cache-control HTTP headers.\n\nSee https://www.apollographql.com/docs/apollo-server/performance/caching/ for more details.\n\n## Usage\n\n### Apollo Server\n\nApollo Server includes built-in support for Apollo Cache Control from version 1.2.0 onwards.\n\nThe only code change required is to add `tracing: true` and `cacheControl: true` to the options passed to the Apollo Server middleware function for your framework of choice. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: true\n}));\n```\n\n> If you are using `express-graphql`, we recommend you switch to Apollo Server. Both `express-graphql` and Apollo Server are based on the [`graphql-js`](https://github.com/graphql/graphql-js) reference implementation, and switching should only require changing a few lines of code.\n\n### Add cache hints to your schema\n\nCache hints can be added to your schema using directives on your types and fields. When executing your query, these hints will be used to compute an overall cache policy for the response. Hints on fields override hints specified on the target type.\n\n```graphql\ntype Post @cacheControl(maxAge: 240) {\n  id: Int!\n  title: String\n  author: Author\n  votes: Int @cacheControl(maxAge: 30)\n  readByCurrentUser: Boolean! @cacheControl(scope: PRIVATE)\n}\n```\n\nIf you need to add cache hints dynamically, you can use a programmatic API from within your resolvers.\n\n```javascript\nconst resolvers = {\n  Query: {\n    post: (_, { id }, _, { cacheControl }) => {\n      cacheControl.setCacheHint({ maxAge: 60 });\n      return find(posts, { id });\n    }\n  }\n}\n```\n\nIf you're using TypeScript, you need the following:\n```javascript\nimport 'apollo-cache-control';\n```\n\nIf set up correctly, for this query:\n\n```graphql\nquery {\n  post(id: 1) {\n    title\n    votes\n    readByCurrentUser\n  }\n}\n```\n\nYou should receive cache control data in the `extensions` field of your response:\n\n```json\n\"cacheControl\": {\n  \"version\": 1,\n  \"hints\": [\n    {\n      \"path\": [\n        \"post\"\n      ],\n      \"maxAge\": 240\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"votes\"\n      ],\n      \"maxAge\": 30\n    },\n    {\n      \"path\": [\n        \"post\",\n        \"readByCurrentUser\"\n      ],\n      \"scope\": \"PRIVATE\"\n    }\n  ]\n}\n```\n\n### Setting a default maxAge\n\nThe power of cache hints comes from being able to set them precisely to different values on different types and fields based on your understanding of your implementation's semantics. But when getting started with Apollo Cache Control, you might just want to apply the same `maxAge` to most of your resolvers. You can specify a default max age when you set up `cacheControl` in your server. This max age will be applied to all resolvers which don't explicitly set `maxAge` via schema hints (including schema hints on the type that they return) or the programmatic API. You can override this for a particular resolver or type by setting `@cacheControl(maxAge: 0)`. For example, for Express:\n\n```javascript\napp.use('/graphql', bodyParser.json(), graphqlExpress({\n  schema,\n  context: {},\n  tracing: true,\n  cacheControl: {\n    defaultMaxAge: 5,\n  },\n}));\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","_id":"apollo-cache-control@0.15.0","_nodeVersion":"12.22.7","_npmVersion":"lerna/3.22.1/node@v12.22.7+x64 (linux)","dist":{"integrity":"sha512-U2uYvHZsWmR6s6CD5zlq3PepfbUAM8953CeVM2Y2QYMtJ8i4CYplEPbIWb3zTIXSPbIPeWGddM56pChI6Iz3zA==","shasum":"45897ed318b883bf964960e6fcd7516a50b4e4d4","tarball":"https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.15.0.tgz","fileCount":15,"unpackedSize":45251,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyuRinaan4C7GomXWFFmBATZIVvrzgG9r67vf47ggJPwIgetMKq4u4EYyrfD4l7iU/s8vPBvFOACqHKcgO3qo1z90="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/oL+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqkAA/+MVccMw43HBZ+5acbKJ2o9yzzmC0v7yKRTtGeDUMOH2sewNEW\r\nbq9HDy3ifUyP9ZjLeXPq9Poj7sK8OJjtTlv/r7xIXJqXsey5A579I74sTIzc\r\nz6ONEHjpbz2zKX5WTLCk+8dc7MKAbdseArXVWrcpfEcxUFB1zW1UmymgbAmp\r\nJVJsXWIauAzVLlwoiC6H4n2r5eoEuOisbpdDrIIsWuvVfmW1XKxYkBcqD7+k\r\nsb/MQR5wIrHgG5kUAbpEWcbdyVwJ8XgavxZBNqNumQGRaaZ+10RRYoiPAbhB\r\nay8JsjAOuMn5SABpTSZFkZlDOY8YX0xyYeVc4uIpOtcKCEzxX1gr0ZE1HSJ+\r\nY6n5M2VZeKZ7PQtqzHP45XuuSKXGaSingTRokO6gVE8dgIO8CymYngic88ve\r\nvOSZF+vSdb2Ncf4y0SkBRHz4mdXuzZatYlTY+nmD6xLosaD9PrVn9Y2G+Tf8\r\nTaEEFJn5+kyPav9VwEPfDFYmZmx5fb2VafWrxMtEnvBiGdi2wSbG8vldQjxL\r\nThCcpPkyqab3TpLAJh6tZJwq13eld5Comj02sqnAzZSeD0ReCCYqo5nlbtDl\r\n4XkfZ8ZZHuc1ljfJTUj+4ntauKHGQYlSKIdujdbgbBCAmegULBwX+JlvAWkV\r\nnBbDjnDNzifqaqtyDG8fO1MkGvK1qiOrZ80=\r\n=hiPP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"apollo-bot","email":"npm@apollographql.com"},"directories":{},"maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apollo-cache-control_0.15.0_1660846846204_0.39304806448236396"},"_hasShrinkwrap":false,"deprecated":"The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details."}},"readme":"","maintainers":[{"name":"apollo-bot","email":"npm@apollographql.com"}],"time":{"modified":"2022-11-16T01:12:19.727Z","created":"2017-10-11T12:57:57.902Z","0.0.1":"2017-10-11T12:57:57.902Z","0.0.3":"2017-10-11T13:28:22.325Z","0.0.4":"2017-10-18T20:38:03.615Z","0.0.5":"2017-10-19T22:19:10.229Z","0.0.6":"2017-10-24T02:03:59.973Z","0.0.7":"2017-10-24T03:31:19.125Z","0.0.8":"2018-01-16T21:47:17.940Z","0.0.9":"2018-01-16T21:47:41.081Z","0.0.10":"2018-03-28T13:33:48.729Z","0.1.0":"2018-03-28T20:29:19.571Z","0.1.1":"2018-04-17T00:16:48.768Z","0.2.0-rc.0":"2018-07-10T02:33:17.104Z","0.2.0-rc.1":"2018-07-14T00:49:57.555Z","0.2.0-rc.2":"2018-07-17T17:45:41.055Z","0.2.0-rc.3":"2018-07-17T17:56:43.505Z","0.2.0-rc.4":"2018-07-17T23:26:22.382Z","0.2.0":"2018-07-19T19:50:43.936Z","0.2.1":"2018-08-14T18:05:39.302Z","0.2.2":"2018-08-14T18:50:32.212Z","0.2.3":"2018-09-03T13:07:19.922Z","0.2.4":"2018-09-14T17:36:43.298Z","0.2.5":"2018-09-18T23:15:49.062Z","0.3.0-register.2195":"2018-10-09T01:49:55.161Z","0.3.0-alpha.0":"2018-10-10T19:31:31.193Z","0.3.0-alpha.1":"2018-10-26T18:29:02.764Z","0.3.0-alpha.2":"2018-11-05T19:46:23.027Z","0.3.0-alpha.3":"2018-11-06T05:37:10.151Z","0.3.0":"2018-11-07T16:17:53.079Z","0.3.1":"2018-11-12T13:26:46.060Z","0.3.2":"2018-11-13T13:59:15.907Z","0.3.3":"2018-11-26T18:58:39.660Z","0.3.4-alpha.0":"2018-12-04T11:44:26.021Z","0.4.0-alpha.0":"2018-12-04T19:12:54.340Z","0.3.4":"2018-12-13T13:02:40.894Z","0.4.0":"2018-12-13T13:30:16.122Z","0.5.0-alpha.0":"2018-12-18T15:14:21.650Z","0.5.0-alpha.1":"2019-01-16T11:11:37.235Z","0.5.0-alpha.2":"2019-01-23T13:59:07.250Z","0.4.1":"2019-01-25T16:48:33.278Z","0.5.0-alpha.3":"2019-02-07T11:01:32.591Z","0.5.0":"2019-02-07T12:08:47.011Z","0.5.1-rc.0":"2019-02-14T13:16:56.330Z","0.5.1":"2019-02-14T13:25:59.424Z","0.5.2":"2019-02-21T18:22:48.683Z","0.6.0-alpha.0":"2019-03-22T18:32:18.089Z","0.6.0-alpha.1":"2019-04-05T14:56:01.252Z","0.6.0-alpha.2":"2019-04-05T16:52:32.451Z","0.6.0-alpha.3":"2019-04-14T03:53:48.011Z","0.6.0-alpha.7":"2019-04-25T17:51:18.871Z","0.6.0":"2019-05-07T12:43:48.615Z","0.6.1-alpha.14":"2019-05-10T02:03:55.272Z","0.7.0-alpha.0":"2019-05-13T19:23:00.171Z","0.7.0-alpha.1":"2019-05-22T18:34:21.114Z","0.7.0-alpha.6":"2019-05-24T21:22:15.258Z","0.7.0-alpha.7":"2019-05-27T18:27:40.045Z","0.6.1":"2019-05-30T13:18:18.954Z","0.7.0":"2019-05-31T17:58:50.943Z","0.7.1":"2019-05-31T22:02:42.419Z","0.7.2-alpha.0":"2019-06-06T15:27:11.933Z","0.7.2":"2019-06-06T19:48:40.961Z","0.7.3-alpha.0":"2019-06-21T16:51:04.774Z","0.7.4":"2019-06-25T16:20:33.290Z","0.7.5-alpha.0":"2019-06-25T22:08:24.826Z","0.7.5-alpha.2":"2019-06-30T22:08:44.753Z","0.7.5-alpha.8":"2019-07-05T13:48:14.672Z","0.7.5":"2019-07-11T18:28:56.523Z","0.7.6-alpha.9":"2019-07-13T20:49:42.517Z","0.7.6-alpha.13":"2019-07-15T12:42:00.230Z","0.8.0":"2019-07-16T13:45:46.948Z","0.8.1":"2019-07-25T10:47:08.109Z","0.8.2":"2019-08-28T20:32:53.780Z","0.8.3":"2019-08-30T10:05:55.757Z","0.8.4":"2019-09-01T21:47:07.250Z","0.8.5":"2019-10-10T12:15:37.515Z","0.8.6":"2019-11-20T22:27:03.935Z","0.8.7":"2019-11-20T23:29:38.793Z","0.8.8":"2019-11-21T18:01:18.993Z","0.8.9":"2019-12-17T12:24:01.884Z","0.8.10":"2019-12-27T12:10:43.370Z","0.8.11":"2020-01-09T22:16:48.983Z","0.9.0-alpha.1":"2020-02-24T15:28:41.188Z","0.9.0":"2020-03-03T17:42:36.676Z","0.9.1-alpha.1":"2020-03-18T18:08:40.413Z","0.9.1-alpha.2":"2020-03-23T14:40:36.931Z","0.9.1-alpha.3":"2020-03-26T13:13:48.672Z","0.9.1-alpha.4":"2020-03-26T13:54:14.609Z","0.9.1-alpha.5":"2020-04-02T23:10:02.208Z","0.9.1":"2020-04-07T18:36:27.402Z","0.10.0-alpha.0":"2020-04-10T12:14:45.975Z","0.10.0-alpha.1":"2020-04-23T16:39:30.565Z","0.10.0":"2020-05-04T14:49:15.282Z","0.10.1-alpha.0":"2020-05-08T19:49:25.660Z","0.11.0-alpha.0":"2020-05-13T10:06:12.851Z","0.11.0-alpha.1":"2020-05-19T09:54:48.990Z","0.11.0":"2020-05-27T14:32:12.396Z","0.11.1":"2020-06-30T11:24:58.496Z","0.300.0-alpha.2":"2020-08-06T20:01:09.673Z","0.300.0-alpha.3":"2020-08-12T16:58:31.189Z","0.11.2-rc.0":"2020-09-18T22:17:06.413Z","0.11.2":"2020-09-22T04:24:13.525Z","0.11.3":"2020-09-24T18:09:38.533Z","0.11.4-alpha.0":"2020-10-19T18:33:40.230Z","0.11.4":"2020-10-30T20:02:28.587Z","0.11.5":"2020-12-22T23:07:11.682Z","0.11.6":"2021-01-14T16:51:08.441Z","0.12.0-alpha.0":"2021-03-22T21:59:02.031Z","0.12.0":"2021-03-26T00:28:17.116Z","0.12.1-unified.0":"2021-04-22T22:22:29.554Z","0.12.1-unified2.0":"2021-04-22T23:14:33.853Z","0.12.1-unified2.1":"2021-04-27T22:17:01.631Z","0.13.0-alpha.0":"2021-04-28T21:01:45.698Z","0.13.0-alpha.1":"2021-04-29T22:33:06.407Z","0.13.0-alpha.2":"2021-04-30T14:06:20.152Z","0.13.0":"2021-04-30T18:10:00.772Z","0.300.0-alpha.4":"2021-05-06T20:22:52.468Z","0.14.0-alpha.0":"2021-05-26T22:31:24.218Z","0.14.0":"2021-05-27T14:40:23.346Z","0.15.0":"2022-08-18T18:20:46.433Z"},"homepage":"https://github.com/apollographql/apollo-cache-control-js#readme","repository":{"type":"git","url":"git+https://github.com/apollographql/apollo-cache-control-js.git"},"author":{"name":"Apollo","email":"opensource@apollographql.com"},"bugs":{"url":"https://github.com/apollographql/apollo-cache-control-js/issues"},"license":"MIT","readmeFilename":"","users":{"jk6":true}}