{"_id":"@bernierllc/contentful-cache-service","_rev":"15-ce687a8a1bbea06d59ffe73030a1377e","name":"@bernierllc/contentful-cache-service","dist-tags":{"latest":"1.4.2"},"versions":{"1.0.2":{"name":"@bernierllc/contentful-cache-service","version":"1.0.2","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.0.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"170d9ea9fd26140f9e2cce1d010736635f55eedf","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.0.2.tgz","fileCount":15,"integrity":"sha512-4RzAB+wh+QVC+nFRMzu+sWS3PXJb5tNHYVkpDKzL4X71V511WAqjtpVrvP+hdu/9O5HeefDbYdy0wChCbiqMaQ==","signatures":[{"sig":"MEUCIDi8b3AWDfAWb5KKULzME84QvmlSydw0ZOOKPNwqNsZiAiEAgM9JGrq4PiGiXqa1qoRKJqPKbVF2EJYG1CikKTSAb10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47243},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.0.2.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/private/var/folders/r0/wspnzd1s18sfjy10ffyv2qxw0000gn/T/c42156b030fb32eaf0ce8c4784631ec0/bernierllc-contentful-cache-service-1.0.2.tgz","_integrity":"sha512-4RzAB+wh+QVC+nFRMzu+sWS3PXJb5tNHYVkpDKzL4X71V511WAqjtpVrvP+hdu/9O5HeefDbYdy0wChCbiqMaQ==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.6.2","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@bernierllc/logger":"^1.0.1","@bernierllc/cache-manager":"^1.0.4","@bernierllc/contentful-types":"^1.0.4","@bernierllc/neverhub-adapter":"^1.0.2","@bernierllc/contentful-cda-client":"^1.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.0.2_1764704622280_0.004546934693872684","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bernierllc/contentful-cache-service","version":"1.0.3","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.0.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"085bd004f12251bda7a4eaa644173ba1ccdac138","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.0.3.tgz","fileCount":15,"integrity":"sha512-1BxDXwYsGFrr3o2tNjJVhK4H6TH101JH5+y5nNRP3uhqCWggqy0BjAH5ild9hNV0JiMB2omQe2lQfcEj5A6vCg==","signatures":[{"sig":"MEYCIQC6V1HUQNx2FO0ZCm3ApWbAPJyWVOQYoADqR6+CSUsPQgIhAOI8OwiX+Cq4ifbeBvhug1FwArRQN9l1L/HKtlPsAG6R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47243},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.0.3.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/private/var/folders/r0/wspnzd1s18sfjy10ffyv2qxw0000gn/T/e8c6b3bf62c174fc082fb8c36e16914d/bernierllc-contentful-cache-service-1.0.3.tgz","_integrity":"sha512-1BxDXwYsGFrr3o2tNjJVhK4H6TH101JH5+y5nNRP3uhqCWggqy0BjAH5ild9hNV0JiMB2omQe2lQfcEj5A6vCg==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.6.2","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@bernierllc/logger":"^1.0.1","@bernierllc/cache-manager":"^1.0.4","@bernierllc/contentful-types":"^1.0.4","@bernierllc/neverhub-adapter":"^1.0.2","@bernierllc/contentful-cda-client":"^1.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.0.3_1764704785608_0.20325813528965342","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@bernierllc/contentful-cache-service","version":"1.0.4","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.0.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"d83b8c7b4f56be2a2c2586c7f6c35805a36b9fd4","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.0.4.tgz","fileCount":15,"integrity":"sha512-pgZRJjiM4UX8KUW4mcFzs17Nf/CjUVEA9ywSWdwwmeq58I8I16iAtyvYzTNBzT1BJnndQmhIKcZv0v2+Zl55iA==","signatures":[{"sig":"MEQCIBLYtGXYTISkUwrAm3Zm6tqMcVAAc/F1VGJmHxS2oAb/AiBbOUEh44JlhCC4F67Z25+Dg2WPTOeuDJjcoIDYRHE5IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47285},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.0.4.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/tmp/ef2a7cf6aeec5e418cc30ce1f0ca47a3/bernierllc-contentful-cache-service-1.0.4.tgz","_integrity":"sha512-pgZRJjiM4UX8KUW4mcFzs17Nf/CjUVEA9ywSWdwwmeq58I8I16iAtyvYzTNBzT1BJnndQmhIKcZv0v2+Zl55iA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.7.0","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.0.4","@bernierllc/cache-manager":"1.0.4","@bernierllc/contentful-types":"1.0.4","@bernierllc/neverhub-adapter":"0.1.2","@bernierllc/contentful-cda-client":"1.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.0.4_1766437833070_0.347292755030711","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@bernierllc/contentful-cache-service","version":"1.0.5","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.0.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"fbc07821228ac6334aaab66af1cfd33ead2e1fcb","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.0.5.tgz","fileCount":15,"integrity":"sha512-CfdzkN3/ezpCSLA+d3+6znL7YCbWZituPUt9rbTo98sI8EoPKrdNXjg6MIkgfyo+aARnLsBYVoRgQ+grbseo8A==","signatures":[{"sig":"MEYCIQDSaT2d1SKBxkuewvWUGmSdh10dkoZl7rZoyUc1WyyLdwIhAPJGApSVHUFl9gnCZZH6Qe/686iZA8Wn7+5XT2AHhD42","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47285},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.0.5.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/tmp/b1658cae26aa3a10faaf7c8c12dcf052/bernierllc-contentful-cache-service-1.0.5.tgz","_integrity":"sha512-CfdzkN3/ezpCSLA+d3+6znL7YCbWZituPUt9rbTo98sI8EoPKrdNXjg6MIkgfyo+aARnLsBYVoRgQ+grbseo8A==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.7.0","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.1.0","@bernierllc/cache-manager":"1.0.4","@bernierllc/contentful-types":"1.0.4","@bernierllc/neverhub-adapter":"0.1.2","@bernierllc/contentful-cda-client":"1.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.0.5_1766454451289_0.23317617990627348","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@bernierllc/contentful-cache-service","version":"1.0.7","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.0.7","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"b8b0152550142c486e20a6ae16d2dc25a0176e74","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.0.7.tgz","fileCount":15,"integrity":"sha512-3Dn/KyTwlmY8aYrVvIGtKRtruc+G3k86/S6x/0TZECHx/J3UX9Zs3LshQeknIoABMq9leJ513EzTsjPolcpFpg==","signatures":[{"sig":"MEQCIGFcxRqEjuDeZqsVLNnTzbcqTdYXGXZ3aoTG/UKHXLENAiAaeUV1LjMhQfHt23nq5a45LaNQ+ITgDTD/QgIa9Cijqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47343},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.3.0","@bernierllc/cache-manager":"1.0.5","@bernierllc/contentful-types":"1.2.0","@bernierllc/neverhub-adapter":"0.1.4","@bernierllc/contentful-cda-client":"1.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.0.7_1767642493470_0.8742324857070465","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@bernierllc/contentful-cache-service","version":"1.0.9","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.0.9","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"4a36e4ba22ada2c106f1ded12c9571d7649c4495","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.0.9.tgz","fileCount":15,"integrity":"sha512-DlNzC2maz01npzXR9OoDQgdsJRyN2FDB628gSg/iL+mdL/Ro4i4aSHo9vCuNTZK/rrb9rOD87VezVlAFm27owg==","signatures":[{"sig":"MEUCICN45SMP/JKhn39n33qtc04qSeBLFeuUCMwMRvwCrmmKAiEAwaCFtnuImd1y0h/9Z2i1tNNQgxD4i3BCjPssJRdw0P8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47285},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.0.9.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.0.9.tgz","_integrity":"sha512-DlNzC2maz01npzXR9OoDQgdsJRyN2FDB628gSg/iL+mdL/Ro4i4aSHo9vCuNTZK/rrb9rOD87VezVlAFm27owg==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.11.0","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/logger":"1.3.2","@bernierllc/cache-manager":"1.0.7","@bernierllc/contentful-types":"1.2.2","@bernierllc/neverhub-adapter":"0.1.6","@bernierllc/contentful-cda-client":"1.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.0.9_1773163518147_0.4677083617281761","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@bernierllc/contentful-cache-service","version":"1.0.10","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.0.10","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"00e80de7b86e669dead4ad3fb3cd4ea205400397","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.0.10.tgz","fileCount":15,"integrity":"sha512-2l4lpU1sCZYRkCWDB+IpcEBieSkGES4UoelMdHGH4MQ73MTmGAceqBorhDyZyYhh8kD5YLCNjyCb7G215eXbUA==","signatures":[{"sig":"MEUCICCjFLXKVY7LR3dOcOMCf9Y+DjqsaqHRW+4FzdCg11RYAiEA2xWw5vmJuY2MjojNh4Hrj6BAQlTHJmChe1AaovrOOdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47286},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.0.10.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.0.10.tgz","_integrity":"sha512-2l4lpU1sCZYRkCWDB+IpcEBieSkGES4UoelMdHGH4MQ73MTmGAceqBorhDyZyYhh8kD5YLCNjyCb7G215eXbUA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.14.1","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.0","@bernierllc/cache-manager":"1.0.7","@bernierllc/contentful-types":"1.2.2","@bernierllc/neverhub-adapter":"0.1.6","@bernierllc/contentful-cda-client":"1.2.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.0.10_1779133724753_0.8883770557691344","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@bernierllc/contentful-cache-service","version":"1.0.11","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.0.11","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"1f5958ff647ea98ac67d9fdd0aa60b360408dc8a","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.0.11.tgz","fileCount":15,"integrity":"sha512-O8G8CJelKzbdYx3p299t9mSIZB48/I3pbwH+RZhXKTyZycOf9S1CxFEqPahf/RFtIfXeyFz+G6B99aYeEgeVyA==","signatures":[{"sig":"MEYCIQCbX7uDX3EGC84NuXokR6kewg/N/VhLe/vIm0Prs1DWIAIhANQ5JlDw+WJMLcK3dOZbfdX2qgtBu9T9Ixn7qotcn6uS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47286},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.0.11.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.0.11.tgz","_integrity":"sha512-O8G8CJelKzbdYx3p299t9mSIZB48/I3pbwH+RZhXKTyZycOf9S1CxFEqPahf/RFtIfXeyFz+G6B99aYeEgeVyA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.14.1","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.2","@bernierllc/cache-manager":"1.0.7","@bernierllc/contentful-types":"1.2.2","@bernierllc/neverhub-adapter":"0.1.6","@bernierllc/contentful-cda-client":"1.2.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.0.11_1779157413206_0.33279081211688744","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@bernierllc/contentful-cache-service","version":"1.0.12","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.0.12","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"0c6605dc4ea8bf33f5e7d938b0b312b60245865d","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.0.12.tgz","fileCount":15,"integrity":"sha512-Dwr7GCqN1upwO3Dn49Q0YXZJIXniuN2MvPq4pM0PIYsAB2bj+lW+uw8MUhhAPVrXfiqRdk3fZ0/v1SLdIZI/9A==","signatures":[{"sig":"MEQCIBOAdgDgL0nrXpDWFZjZ+TkIZcz72U7noM1dYRNAX+QmAiB5v8U7BrUZrIMiQv7ASzd6EzRDGKg1T3KFBmw76U9FuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47286},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.0.12.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.0.12.tgz","_integrity":"sha512-Dwr7GCqN1upwO3Dn49Q0YXZJIXniuN2MvPq4pM0PIYsAB2bj+lW+uw8MUhhAPVrXfiqRdk3fZ0/v1SLdIZI/9A==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.14.1","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.3","@bernierllc/cache-manager":"1.2.0","@bernierllc/contentful-types":"1.2.2","@bernierllc/neverhub-adapter":"0.2.0","@bernierllc/contentful-cda-client":"1.2.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.0.12_1779221566897_0.9354947662830757","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bernierllc/contentful-cache-service","version":"1.1.0","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.1.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"1d442d1b201ed543cb18a9d4c06cc670517eadba","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.1.0.tgz","fileCount":15,"integrity":"sha512-ge5SA4Bw+ZKvOpwF1Ex0GNfSagZUJYvN4lk2SRWXiLnpvvTKldLttHT7WSdgUh3SHJ2bRuFwtkiNx5kQADD6CQ==","signatures":[{"sig":"MEQCICMzlrbxq7i2cIxXva/aFlqH3U/sEq2qC9iutuiQGAAQAiA/p8xTQUmv+Y+iCOWEDjDSdE6v/jNqH1kkd71c3EMtpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47285},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.1.0.tgz","_integrity":"sha512-ge5SA4Bw+ZKvOpwF1Ex0GNfSagZUJYvN4lk2SRWXiLnpvvTKldLttHT7WSdgUh3SHJ2bRuFwtkiNx5kQADD6CQ==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.14.1","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.6.0","@bernierllc/cache-manager":"1.3.0","@bernierllc/contentful-types":"1.4.0","@bernierllc/neverhub-adapter":"0.3.0","@bernierllc/contentful-cda-client":"1.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.1.0_1779241615609_0.3888821966939291","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bernierllc/contentful-cache-service","version":"1.1.1","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.1.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"e46473a0c397d968d9154ea648c36429aef94b6a","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.1.1.tgz","fileCount":15,"integrity":"sha512-iJuxk4noSlLj+wapLPcedGkMVn1AqpwnvZv8AEVxxqKcLqQpqgome7xBJFpZg1/lpO6EFA2DOHinM2tmfYOa2g==","signatures":[{"sig":"MEYCIQCr/koNA3aAF3+eZVST+Qip0rMMwKDOwklZPZwJ8K1AugIhAKMpNak4gXhVL+BW0efMbbzVDTH4KAR9gKAaN7J4LH+G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47285},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.1.1.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.1.1.tgz","_integrity":"sha512-iJuxk4noSlLj+wapLPcedGkMVn1AqpwnvZv8AEVxxqKcLqQpqgome7xBJFpZg1/lpO6EFA2DOHinM2tmfYOa2g==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.14.1","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.6.0","@bernierllc/cache-manager":"1.3.0","@bernierllc/contentful-types":"1.4.0","@bernierllc/neverhub-adapter":"0.3.0","@bernierllc/contentful-cda-client":"1.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.1.1_1779243431611_0.06948792717590768","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bernierllc/contentful-cache-service","version":"1.3.0","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"38efcbece17a5ac4adb0c90e29c6e1888f036d0c","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.3.0.tgz","fileCount":19,"integrity":"sha512-lE/yUF5sxl4VXeduNtZWs1UfPC+UZxP/e6v93qTTb7DKLHgkm5LRM1BUehMKszghisisUyIwlWPdVg8/vjg4jw==","signatures":[{"sig":"MEUCIQDPqERMv9b1Mrr4Rv5m+k/r0LM8VGe3mwKqRUsroVK5pgIgbSM6xSNNdkRWBn7PCJjvki5J1iBe0JRBozEH7iRvbX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50119},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.3.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.3.0.tgz","_integrity":"sha512-lE/yUF5sxl4VXeduNtZWs1UfPC+UZxP/e6v93qTTb7DKLHgkm5LRM1BUehMKszghisisUyIwlWPdVg8/vjg4jw==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.14.1","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.6.0","@bernierllc/cache-manager":"1.3.0","@bernierllc/contentful-types":"1.4.0","@bernierllc/neverhub-adapter":"0.3.0","@bernierllc/contentful-cda-client":"1.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.3.0_1779245955101_0.15973287446938245","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bernierllc/contentful-cache-service","version":"1.4.0","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"95dce6b54ac9f4f73ca23fab260d14481cb8dd52","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.4.0.tgz","fileCount":19,"integrity":"sha512-eQzgJ5Z1WQiY4bW6Pzx4yhOoZ5apmuP7G98K4kthvlKEvsiCPGD/FHrPqsMfHZVoXbMnjFZq9mnsPHOwehbuKQ==","signatures":[{"sig":"MEQCIH9KcpZ793ZYMEnixNArabNBs1qzwNXnQwk/uJXZXngFAiBzeH/jWJymhDEiY5+IeUOGm0FhT1XLcEzCzExxDpiVww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50119},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.4.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.4.0.tgz","_integrity":"sha512-eQzgJ5Z1WQiY4bW6Pzx4yhOoZ5apmuP7G98K4kthvlKEvsiCPGD/FHrPqsMfHZVoXbMnjFZq9mnsPHOwehbuKQ==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"11.14.1","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.7.0","@bernierllc/cache-manager":"1.4.0","@bernierllc/contentful-types":"1.5.0","@bernierllc/neverhub-adapter":"0.4.0","@bernierllc/contentful-cda-client":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.4.0_1779250360976_0.08375993680681826","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@bernierllc/contentful-cache-service","version":"1.4.1","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/contentful-cache-service@1.4.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"4e05eee09216e960b20426fc93f745fd9fc27192","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.4.1.tgz","fileCount":19,"integrity":"sha512-McyIKrHDm6c2dVSgaGCFz0PUfKQRtfdQ85o6vQzeBK6usomOggkQ51iIYQ8i7NbqOHSr47EGheJI37HVnVAanA==","signatures":[{"sig":"MEQCIDNu0mURZlaUBTE2/CNex9RWzDPRIw+GeLEttNZgwTR4AiAfxeAi/JSQW0MZZG0gVgIJnIy6NGGoEbA8QT5rG5LZdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50119},"main":"dist/index.js","type":"module","_from":"file:bernierllc-contentful-cache-service-1.4.1.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:50b2a2a4-b417-4dec-8640-f664925bd926"}},"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.4.1.tgz","_integrity":"sha512-McyIKrHDm6c2dVSgaGCFz0PUfKQRtfdQ85o6vQzeBK6usomOggkQ51iIYQ8i7NbqOHSr47EGheJI37HVnVAanA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"12.0.1","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@bernierllc/logger":"1.7.1","@bernierllc/cache-manager":"1.4.0","@bernierllc/contentful-types":"1.5.0","@bernierllc/neverhub-adapter":"0.4.1","@bernierllc/contentful-cda-client":"1.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/contentful-cache-service_1.4.1_1784015834508_0.7787287833105456","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"_id":"@bernierllc/contentful-cache-service@1.4.2","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"e6ca7d281b1d86b64b1d311f8f42c0589ba34a36","tarball":"https://registry.npmjs.org/@bernierllc/contentful-cache-service/-/contentful-cache-service-1.4.2.tgz","fileCount":19,"integrity":"sha512-FJIXZJQsJAPH0QGW/cK1d6DA4WsBeXz+AOxk8WdN6qaPXwyOc0or5hdnRGHYGmm+k/62feSpupaErlLGjzueOQ==","signatures":[{"sig":"MEUCIQDUa67vYWqoGfBlbdYBzq1GllvA/zpvp8gplKt937943QIgFBokhLd1viD0qIAj3qUnY8XWqIsO/bw88krYOYPyD7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDsh8xLLdG1MzQlnGB63wArPezFwDZjiDj6lLOmXWGTxwIhALtF7sCfQ9OD1XbiJszh6S1F8/X20FIpiE8yqPWEEJcq"}],"unpackedSize":50124},"main":"dist/index.js","name":"@bernierllc/contentful-cache-service","type":"module","_from":"file:bernierllc-contentful-cache-service-1.4.2.tgz","types":"dist/index.d.ts","author":{"name":"Bernier LLC"},"engines":{"node":">=18.0.0"},"license":"SEE LICENSE IN LICENSE","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"version":"1.4.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"50b2a2a4-b417-4dec-8640-f664925bd926"}},"homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"_resolved":"/home/runner/work/tools/tools/packages/service/contentful-cache-service/bernierllc-contentful-cache-service-1.4.2.tgz","_integrity":"sha512-FJIXZJQsJAPH0QGW/cK1d6DA4WsBeXz+AOxk8WdN6qaPXwyOc0or5hdnRGHYGmm+k/62feSpupaErlLGjzueOQ==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"_npmVersion":"12.2.0","description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/logger":"^1.7.1","@bernierllc/cache-manager":"^1.4.0","@bernierllc/contentful-types":"^1.5.0","@bernierllc/neverhub-adapter":"^0.4.1","@bernierllc/contentful-cda-client":"^1.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/contentful-cache-service_1.4.2_1790884228340_0.38364158420193784"}}},"time":{"created":"2025-12-02T19:43:42.174Z","modified":"2026-10-01T19:50:28.698Z","1.0.2":"2025-12-02T19:43:42.471Z","1.0.3":"2025-12-02T19:46:25.801Z","1.0.4":"2025-12-22T21:10:33.209Z","1.0.5":"2025-12-23T01:47:31.429Z","1.0.7":"2026-01-05T19:48:13.603Z","1.0.9":"2026-03-10T17:25:18.289Z","1.0.10":"2026-05-18T19:48:44.960Z","1.0.11":"2026-05-19T02:23:33.360Z","1.0.12":"2026-05-19T20:12:47.094Z","1.1.0":"2026-05-20T01:46:55.760Z","1.1.1":"2026-05-20T02:17:11.748Z","1.3.0":"2026-05-20T02:59:15.236Z","1.4.0":"2026-05-20T04:12:41.158Z","1.4.1":"2026-07-14T07:57:14.653Z","1.4.2":"2026-10-01T19:50:28.431Z"},"bugs":{"url":"https://github.com/bernierllc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/bernierllc/tools/tree/main/packages/service/contentful-cache-service#readme","keywords":["contentful","cache","invalidation","performance","webhook","ttl","redis","bernierllc"],"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/contentful-cache-service"},"description":"Caches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/contentful-cache-service\n\nCaches Contentful API responses with webhook-based invalidation, TTL expiration, and cache warming. Reduces API calls and improves performance for frequently accessed content.\n\n## Features\n\n- **Response Caching**: Cache entries, assets, and query results with configurable TTL\n- **Webhook Invalidation**: Automatic cache invalidation via Contentful webhooks\n- **Cache Warming**: Pre-fetch popular content to optimize cache hit rates\n- **Multi-Space Isolation**: Separate cache namespaces for different Contentful spaces\n- **Cache Metrics**: Track hits, misses, hit rate, and cache size\n- **NeverHub Integration**: Optional integration with NeverHub for enhanced capabilities\n\n## Installation\n\n```bash\nnpm install @bernierllc/contentful-cache-service\n```\n\n## Usage\n\n### Basic Setup\n\n```typescript\nimport { ContentfulCacheService } from '@bernierllc/contentful-cache-service';\n\nconst service = new ContentfulCacheService({\n  contentful: {\n    space: 'your-space-id',\n    accessToken: 'your-cda-token',\n    environment: 'master'\n  },\n  cache: {\n    ttl: 300000, // 5 minutes\n    maxSize: 1000,\n    strategy: 'lru'\n  }\n});\n\nawait service.initialize();\n```\n\n### Fetching Entries (with caching)\n\n```typescript\n// Get single entry (cached)\nconst entry = await service.getEntry('entryId');\n\n// Get entry in specific locale\nconst localizedEntry = await service.getEntry('entryId', 'es-ES');\n\n// Get multiple entries (cached)\nconst entries = await service.getEntries({\n  content_type: 'blogPost',\n  limit: 10,\n  order: '-sys.createdAt'\n});\n```\n\n### Fetching Assets (with caching)\n\n```typescript\n// Get single asset (cached)\nconst asset = await service.getAsset('assetId');\n\n// Get multiple assets (cached)\nconst assets = await service.getAssets({\n  mimetype_group: 'image',\n  limit: 20\n});\n```\n\n### Webhook-Based Cache Invalidation\n\n```typescript\n// In your webhook endpoint\napp.post('/webhooks/contentful', (req, res) => {\n  const topic = req.headers['x-contentful-topic'];\n  const payload = req.body;\n\n  service.handleWebhook(topic, payload);\n\n  res.status(200).send('OK');\n});\n\n// Supported topics:\n// - ContentManagement.Entry.publish\n// - ContentManagement.Entry.unpublish\n// - ContentManagement.Entry.delete\n// - ContentManagement.Asset.publish\n// - ContentManagement.Asset.unpublish\n// - ContentManagement.Asset.delete\n```\n\n### Manual Cache Invalidation\n\n```typescript\n// Invalidate specific entry\nawait service.invalidateEntry('entryId');\n\n// Invalidate specific asset\nawait service.invalidateAsset('assetId');\n\n// Clear entire cache\nawait service.clearCache();\n```\n\n### Cache Warming\n\nPre-fetch popular content to improve cache hit rates:\n\n```typescript\n// Warm cache with popular entries\nconst popularEntryIds = ['entry1', 'entry2', 'entry3'];\nawait service.warmCache(popularEntryIds);\n\n// Warm cache for specific locale\nawait service.warmCache(popularEntryIds, 'en-US');\n```\n\n### Cache Metrics\n\n```typescript\n// Get cache metrics\nconst metrics = await service.getMetrics();\nconsole.log(`Hit rate: ${(metrics.hitRate * 100).toFixed(2)}%`);\nconsole.log(`Cache size: ${metrics.size} entries`);\nconsole.log(`Hits: ${metrics.hits}, Misses: ${metrics.misses}`);\nconsole.log(`Evictions: ${metrics.evictions}, Expirations: ${metrics.expirations}`);\n\n// Check cache size\nconst size = await service.getCacheSize();\n\n// Check if entry is cached\nconst isCached = await service.isCached('entryId');\n```\n\n## Configuration\n\n### ContentfulCacheConfig\n\n```typescript\ninterface ContentfulCacheConfig {\n  contentful: {\n    space: string;              // Contentful space ID (required)\n    accessToken: string;         // Contentful CDA token (required)\n    environment?: string;        // Environment (default: 'master')\n    host?: string;               // API host (default: 'cdn.contentful.com')\n  };\n  cache?: {\n    ttl?: number;                // TTL in milliseconds (default: 300000 = 5 min)\n    maxSize?: number;            // Max entries (default: 1000)\n    keyPrefix?: string;          // Cache key prefix (default: 'contentful:')\n    strategy?: 'lru' | 'lfu' | 'ttl'; // Eviction strategy (default: 'lru')\n  };\n  neverhub?: {\n    enabled?: boolean;           // Enable NeverHub integration (default: auto-detect)\n  };\n}\n```\n\n## Cache Key Strategy\n\nThe service generates deterministic cache keys based on:\n\n- **Space ID**: Ensures multi-space isolation\n- **Environment**: Separates staging/production content\n- **Resource Type**: Entry, asset, entries query, assets query\n- **Resource ID**: Specific entry or asset ID\n- **Locale**: Optional locale for localized content\n- **Query Parameters**: Hashed query params for consistent keys\n\n### Examples\n\n```\nEntry:         contentful:space-id:master:entry:entryId\nEntry (locale): contentful:space-id:master:entry:entryId:en-US\nAsset:         contentful:space-id:master:asset:assetId\nEntries query: contentful:space-id:master:entries:<base64-query-hash>\nAssets query:  contentful:space-id:master:assets:<base64-query-hash>\n```\n\n## MECE Principles\n\n### What This Package DOES\n\n- ✅ Cache Contentful API responses (CDA)\n- ✅ Webhook-based cache invalidation\n- ✅ TTL-based cache expiration\n- ✅ Cache warming (pre-fetch)\n- ✅ Multi-space cache isolation\n- ✅ Cache hit/miss metrics\n\n### What This Package DOES NOT DO\n\n- ❌ **Database Caching**: Use `@bernierllc/contentful-sync-service` for persistent storage\n- ❌ **Asset File Caching**: CDN handles asset files (images, videos, etc.)\n- ❌ **Write-Through Caching**: Contentful is the source of truth for writes\n- ❌ **Content Management API (CMA) Caching**: Only caches CDA (published content)\n\n## Integration with Contentful Webhooks\n\n### Setup Webhook in Contentful\n\n1. Go to **Settings > Webhooks** in Contentful\n2. Create new webhook\n3. Set URL: `https://your-app.com/webhooks/contentful`\n4. Select topics:\n   - `Entry.publish`\n   - `Entry.unpublish`\n   - `Entry.delete`\n   - `Asset.publish`\n   - `Asset.unpublish`\n   - `Asset.delete`\n5. Save webhook\n\n### Webhook Handler Example\n\n```typescript\nimport express from 'express';\n\nconst app = express();\napp.use(express.json());\n\napp.post('/webhooks/contentful', (req, res) => {\n  const topic = req.headers['x-contentful-topic'] as string;\n  const payload = req.body;\n\n  // Validate webhook (recommended)\n  const signature = req.headers['x-contentful-webhook-signature'];\n  if (!validateSignature(signature, req.body)) {\n    return res.status(401).send('Unauthorized');\n  }\n\n  // Handle webhook\n  service.handleWebhook(topic, payload);\n\n  res.status(200).send('OK');\n});\n\napp.listen(3000);\n```\n\n## NeverHub Integration\n\nThe service supports optional NeverHub integration for enhanced capabilities:\n\n```typescript\nconst service = new ContentfulCacheService({\n  contentful: { /* ... */ },\n  neverhub: {\n    enabled: true  // Auto-detect by default\n  }\n});\n\nawait service.initialize();\n// NeverHub registration happens automatically if available\n```\n\n## Performance Considerations\n\n### Cache Strategy Selection\n\n- **LRU (Least Recently Used)**: Best for general-purpose caching\n- **LFU (Least Frequently Used)**: Best when some content is accessed much more often\n- **TTL (Time To Live)**: Best when content freshness is critical\n\n### TTL Guidelines\n\n- **Frequently Updated Content**: 1-5 minutes (60000-300000ms)\n- **Stable Content**: 15-60 minutes (900000-3600000ms)\n- **Static Content**: 1-24 hours (3600000-86400000ms)\n\n### Cache Size\n\nBalance between memory usage and hit rate:\n- Small sites: 100-500 entries\n- Medium sites: 500-2000 entries\n- Large sites: 2000-5000 entries\n\n## TypeScript\n\nFull TypeScript support with type definitions included.\n\n```typescript\nimport type {\n  ContentfulCacheConfig,\n  CacheMetrics,\n  WebhookPayload\n} from '@bernierllc/contentful-cache-service';\n```\n\n## License\n\nCopyright (c) 2025 Bernier LLC\n\nThis file is licensed to the client under a limited-use license.\nThe client may use and modify this code *only within the scope of the project it was delivered for*.\nRedistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.\n\n## Related Packages\n\n- [@bernierllc/contentful-cda-client](../core/contentful-cda-client) - Contentful CDA client\n- [@bernierllc/contentful-sync-service](./contentful-sync-service) - Persistent content sync\n- [@bernierllc/cache-manager](../core/cache-manager) - Generic cache manager\n- [@bernierllc/contentful-webhook-handler](../core/contentful-webhook-handler) - Webhook validation\n\n## Support\n\nFor issues and questions, please open an issue on GitHub.\n","readmeFilename":"README.md"}