{"_id":"@gmod/shared-read-cache","_rev":"15-eec7730d4ea3751a5b82619d933afcbf","name":"@gmod/shared-read-cache","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"@gmod/shared-read-cache","version":"1.0.0","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.0.0","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"e938900c9718898de2c719edafc2292546f5b6f2","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.0.0.tgz","fileCount":25,"integrity":"sha512-fn5FaQdvcL9fpB77HDWLYeOqbaZFmmJzArq4SzUdQQP45rPMUY69diXucBAOp/aJJrSN+qxYvnd5tXbpG/gCRw==","signatures":[{"sig":"MEUCIQDoc6BTfO9B3aYz1BqimGcyVk6wG+0fmvtRBIZecFRioAIgS49aT11dRBjiEWkWNxfNP9GsLUrPxuxJPyNlwRHSC9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63903},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"4a297496895f86dbccc8e239c0ae1bbc2e095fc7","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"cmdcolin","email":"colin.diesh@gmail.com"},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.12.1","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.2.1","rimraf":"^6.1.3","vitest":"^4.1.5","prettier":"^3.8.3","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.6.0","typescript-eslint":"^8.59.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import-x":"^4.16.2"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.0.0_1785986882748_0.3286260967324086","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@gmod/shared-read-cache","version":"1.3.0","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.3.0","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"f584561fb6d79e7e86895a56b71f6765729717ca","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.3.0.tgz","fileCount":25,"integrity":"sha512-tiq+TDrDyd4aKnePr5xqKvieok9kYZ6TCbfXZ9RKDucRjyT8awn0HZxMyjVfm0/J02eNiD0Q2400GgpcSUEnAw==","signatures":[{"sig":"MEQCIF3Qr2gMUHq8iOfF/OYewG/XteY+596koz1QZKlYYit6AiAoPA3n8X6G3v0wTo5XEcDPriLtnqaJYF+AmQUIG3FEsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84418},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"f10922916752baa7f2b13fa0a0e7ea60d467d7f8","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.16.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.2.1","rimraf":"^6.1.3","vitest":"^4.1.5","prettier":"^3.8.3","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.6.0","typescript-eslint":"^8.59.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import-x":"^4.16.2"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.3.0_1785990380897_0.1710533574921358","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@gmod/shared-read-cache","version":"1.4.0","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.4.0","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"e89af55c90d7e111588da6e87056d5d5dceaf8c8","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.4.0.tgz","fileCount":25,"integrity":"sha512-OfYfK2CTijetH3l0qrkAeHNVbrb7bU/s3wQa47Sd/avQA7kyA2X18DI+KEr12UEkyW+QWQ5/t4T9EFBETAUQ5w==","signatures":[{"sig":"MEYCIQCmURVyiVyITRNW1PHJbg9EMQHY/5tZt3YROKLN4LCDwAIhAINR4GxRMVKW/zf7uYb9lpIyDQQNhCMmKaiZ0zZt9S5H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104228},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"0b9fde20ee9fa834107a2a485e70663f12a598b4","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.16.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.4.0_1785996031447_0.38043335308144743","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@gmod/shared-read-cache","version":"1.4.1","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.4.1","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"7cfaf66791603ff1e302df35e2d9f135e91c6a9c","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.4.1.tgz","fileCount":25,"integrity":"sha512-1UG3NtGKCyz1t3RJ9uIrYYroFVsf9Gc6Y6coejyr74enogQ3dLRvia8TLCV/uf+XTzkuNAvEV2AT+aN1qOo+bQ==","signatures":[{"sig":"MEYCIQDAwDeK+OylACKOAMCWmEAg5pYtTxkSuMKMrwc7LUY8WAIhAO2FHCS+s/5QgdEpVlt3uYhzmbq78Z0XFyhenr7LqbUt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104941},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"51275598eebbeb6b8c79d1034afab81b8d128879","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.16.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.4.1_1785996485984_0.09591701164839739","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@gmod/shared-read-cache","version":"1.4.2","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.4.2","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"4f7193d0f319403e7ad50690c5dffdb4f29ce722","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.4.2.tgz","fileCount":25,"integrity":"sha512-oRR61ThcE3YWKapJi8tEbPE+qnkfup8/0kINwE/wWa0S/urWsmJGxiIw0a9N6z7SpyaaKlfG3HpTwJQYkfzq0A==","signatures":[{"sig":"MEQCICAWyYbd7dmEoZdtbi/2J/ecZEmwoc6xOT45pKmkaZKmAiAjX0M7hRzJ2OWiE1pvqzqg0dPDl1aQEhBzgLkC5Qw19w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108460},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"8aedd875f98b4e304a46939c8b671af6b812d2ce","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.16.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.4.2_1785999138474_0.9662975476701556","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@gmod/shared-read-cache","version":"1.4.4","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.4.4","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"ac6a4d8bfd6bab159da72cd27b3a3b3160f34a31","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.4.4.tgz","fileCount":25,"integrity":"sha512-K8YhHkibBm/b8AMs+t35nGgbE2jlhsQ2+MqDv7b1hWDcGoSudyLwVmLLiPMlWrIwxXCzM4ROZF7cY3RamC7kDQ==","signatures":[{"sig":"MEQCIHYuOow+2FQfPAZrWwVkOU2RmPzX3uAYSn2omUElgEsiAiBKTPAL8F3oxvja5/wW+3oiOkCaMkkECfxoV6XSqblFuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113505},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"64b860a0410d83a6da92aa177392ab66ba325be8","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.16.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.4.4_1786312401351_0.5201303108906277","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@gmod/shared-read-cache","version":"1.5.0","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.5.0","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"92845757a97772240dc893d713c319d521f48d7d","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.5.0.tgz","fileCount":32,"integrity":"sha512-6bbUEcv9a/D/P5zWrscnwyCvmh2Yvo1e3NYv+V1xZyXe+bqb7tKAu5zXJoEUADlEnkkY2dpps+A5/vQrFRYrkw==","signatures":[{"sig":"MEUCICSyrW4x/Wi0pIu22PKMsRHI4/eto/JpZjzww56zC8x/AiEA6oi3OpYpwYoVTBX0VzHnFnRgw2sfLf11Z0g9S+O7fO4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":168137},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"041914eb7f78d73bfa97184b76f41f00ac6fd8c9","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.16.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.5.0_1786375465426_0.8986087252321713","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@gmod/shared-read-cache","version":"1.5.1","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.5.1","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"710f58d190f2601dc51124a22059d2467fc4a7d2","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.5.1.tgz","fileCount":32,"integrity":"sha512-2Me6eOJhBrZzYruG1t73trs29ovAMSNnn6JzzzYcL4t1/bxK3EToyDBPslcoebTrg5zDeocA+yzgwsQ2mHe0eA==","signatures":[{"sig":"MEQCIHBc72nDklFraYRS4iXfFY0Ex0I4QESBpVhVYCeN6yQhAiATuyjH+98u1jJq4qhQ+2nbE5U7gDq0Wu4bOvSb/c914w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":168176},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"a1c338938543c56d4a0d2761bca74d8e6ce0f558","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm format:check && pnpm typecheck && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.16.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.5.1_1786380128034_0.2876829052936125","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@gmod/shared-read-cache","version":"1.6.0","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.6.0","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"d035b925880b7e7731c7f7d924b53fb1328693c6","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.6.0.tgz","fileCount":32,"integrity":"sha512-RrkbPdTFcKgtapYTCt8nwP4B/wzFlSLpPC4f5OfNAciC9o/Hxa1oW5qBVLk/4BEV61gp5x3sLjYHIXvMwklHDQ==","signatures":[{"sig":"MEUCIGDDf2WbJXdWXiPTjneDA5ZEx5LOHn0L8d+1hoMp/BUmAiEAjPc1fc7F1ztCRC1VGfnakspsXdxleg6HT+tykvKXiYU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":184055},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"80953ba4d650af116e5f1d3feaf6ee14667df7fc","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm format:check && pnpm typecheck && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.17.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.6.0_1786715063556_0.49710547551225215","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@gmod/shared-read-cache","version":"1.7.0","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.7.0","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"280bf4623da868a7ac84dcb65bb15c8dada9e599","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.7.0.tgz","fileCount":32,"integrity":"sha512-TAhDVn5T3QEGJ5EKUQBvffNpdmNxj08X3kah8DCoZLUkon9rRp54R7LkR8oR43ZkNeLpWi6SBX8OBwEaivsrjQ==","signatures":[{"sig":"MEQCIF60trzSkdFYhjCuNpe/V7UoWXbwPO5WOc0YC8POOnYXAiB+dEjCBxy22yO9Gjf8biuA8PPlVfEaH4F5JhXBZhZdrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDaHUuOZjH6vbyMD2pnHONGSn3med+XD0B7Rwuv2DUvMwIhAISiNwVa2jsPhyVIF/medjnRhVIhxr1nXHsY3BIY9PL5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227475},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"80db290a9b5b83c0c105decaead48fc336a98b71","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm format:check && pnpm typecheck && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.17.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.7.0_1787340028514_0.2656184825083916","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@gmod/shared-read-cache","version":"1.7.1","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.7.1","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"ac3bbeee198ebdf2239c3b81b08c24363e06ab65","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.7.1.tgz","fileCount":32,"integrity":"sha512-x67voqM7ADGj8o4HmwXobzSJ0+vB36AWUKHJkb7nL1AQSoZHzsTFEbDPik4hmUMqyp4QHPmXIGHgRuUVVQ2mvQ==","signatures":[{"sig":"MEQCIGG6/hfo8SLcDj5YlveVnzwl5kClpvJuQV76daGPHWxEAiBIAzZBIK1+o/K8BZJFM7Nw8po7UVSAVT5DbGHbkCsrEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCR00ensYkXlZvk1/uGjegKZaNf5b01r4mkX4AIfCthHgIhAJiTbkYK7PWSMlrwUUR3MI8EbdzadPOxiN6VEyBuzWb+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":231123},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"99807d0fd09fe7253b4e07f517679475ac5657e4","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm format:check && pnpm typecheck && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.17.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.7.1_1787341362779_0.365252796038678","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"@gmod/shared-read-cache","version":"1.7.2","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@1.7.2","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"cf0dbeb27a01c307a92c7c1c4a15f27a6d2b5980","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-1.7.2.tgz","fileCount":32,"integrity":"sha512-N71dzJHYYSEAZYQCl38QGZ8cx468lFZE9VdS29N2DhRbKMf/X7Qb+cJsuIt1MeVDmpvKui5wDiNILgkQREpwlw==","signatures":[{"sig":"MEUCIF0tNfrITSvO9McPGLYJRRqqffminnptzoFrABGJYl7iAiEA8CJ9I0W5SqZO3S4Ca8VimAKK3BrVGJ8V67yR9K3gDOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHGneXmWROT2AAKJHEE/3nySlM84T6zbgTxiJrfyoEMrAiAIZs2ZT+Dd5+Z46izG0kBbztItzmlG+Htk8G0+aU4y0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@1.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":232935},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"7e1d5138b5ebf01ec7115eed323853fa621f435c","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm format:check && pnpm typecheck && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.17.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{"lib":"dist"},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_1.7.2_1787344814448_0.9507068209782532","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@gmod/shared-read-cache","version":"2.0.0","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@2.0.0","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"42679ba9b59a1925034ebb9cd3d6df393d0ebdd0","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-2.0.0.tgz","fileCount":32,"integrity":"sha512-nU4HPB+DlvZqRVJZvtIbJ3zS+kSKfOhibCu3Y7Sia9D4GwA1MotdBNH19hM8/gP/tYuHGaSdvpGhZ0FfJbw/Hg==","signatures":[{"sig":"MEUCIGVKn5JbhQMk/VT1WlUIvu+kyxdWWjzsE3X+sxHHwECUAiEAm0L6UJw5mWzs1egvAPMR76I7gMZaHVZwHyU8fyRJNMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHSa4buXfMj6BLIjEM48/NHXZi+nIWiuIPKt3Rn/rU8uAiAvpgaWFQPuJdPovA9tshgOUQVn4Qeyldi4yj7Gqx/WPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":184643},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"bced895bba316ccc63e306c9fb10c1566b5b4d23","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm format:check && pnpm typecheck && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.19.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_2.0.0_1791504798236_0.47297534805275787","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@gmod/shared-read-cache","version":"2.0.1","keywords":["abort","abortsignal","cache","lru","promise"],"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","_id":"@gmod/shared-read-cache@2.0.1","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"homepage":"https://github.com/GMOD/shared-read-cache#readme","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"26582f4bc3bb32024469bcb312a5c75559cd5b74","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-2.0.1.tgz","fileCount":32,"integrity":"sha512-HXLI9d42+wRhnUx+Iyh5DPTIY4TnuVW9ROF90nGb0vQdOLT8MHq44VdQyc2Zt0HfngJUvhmPxjJRr28YykT05g==","signatures":[{"sig":"MEUCID9LXWfqdicmazmRztP3ZmJErjjmnsqIMJtbgdYmKx/CAiEAkeveFQ5LFsp6IAosbJtRS0k+h/OMRa3OkmxVyRqScgQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICJAfcs/UrKTWa646THHbzqOGWaQz4D/66fPxzjxNWaBAiBviu596gsuAphaPqS/hKb3T/VcqkZPXl3Lki7OLU/D1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":184080},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"b20abfb8f0eb64b8826d34ce37b761775b872da9","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm format:check && pnpm typecheck && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d4ae2469-7683-4417-b571-95fbc5167f99"}},"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.19.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"tmp":"tmp/shared-read-cache_2.0.1_1791735143733_0.4717160909629796","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"_id":"@gmod/shared-read-cache@2.1.0","bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"dist":{"shasum":"9d70a229354c674e725516ba3ac92c357802f44e","tarball":"https://registry.npmjs.org/@gmod/shared-read-cache/-/shared-read-cache-2.1.0.tgz","fileCount":32,"integrity":"sha512-AyiUt0hiEGl7lWc1fuigbXR/RToIw3h72dalaRoSNau9WL9ux9rEfkcsXDYTgSDudehfAEQac1jTvn2zrfnELQ==","signatures":[{"sig":"MEUCIQCNRE4gTUqtIqLcYEPdxFHxlxUs04JoEVX71wAbHOSJzQIgFMO4IFLVRF5e8XZjtCig1T9vue2zWjsuiAzRx0u3CKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDWuOhDEf+icmUccu0JkZccyGV70SBhqAoMpL+YcVM6JQIhAKT+9FBYjLbAV5yCPYBgmVHAw7s2AuuFT2xrsVIJfQlR"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@gmod%2fshared-read-cache@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99118},"main":"dist/index.js","name":"@gmod/shared-read-cache","type":"module","types":"./dist/index.d.ts","author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"exports":{"import":"./esm/index.js","require":"./dist/index.js"},"gitHead":"338673f46caf414e8b5fa610f0f9b77c130084da","license":"MIT","scripts":{"lint":"eslint --report-unused-disable-directives --max-warnings 0","test":"vitest","build":"pnpm build:esm && pnpm build:es5","clean":"rimraf dist esm","format":"prettier --write .","version":"git-cliff --tag v$npm_package_version --unreleased --prepend CHANGELOG.md && git add CHANGELOG.md","prebuild":"pnpm clean","build:es5":"tsc --module commonjs --moduleResolution bundler --outDir dist","build:esm":"tsc --outDir esm","typecheck":"tsc --noEmit -p tsconfig.lint.json","preversion":"pnpm lint && pnpm format:check && pnpm typecheck && pnpm test --run && pnpm build","postversion":"git push --follow-tags","format:check":"prettier --check .","postbuild:es5":"echo '{\"type\": \"commonjs\"}' > dist/package.json"},"version":"2.1.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d4ae2469-7683-4417-b571-95fbc5167f99"}},"homepage":"https://github.com/GMOD/shared-read-cache#readme","keywords":["abort","abortsignal","cache","lru","promise"],"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"_npmVersion":"11.19.0","description":"A promise cache whose shared reads are cancelled only once every caller has given up","directories":{},"maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.15.1","devDependencies":{"eslint":"^10.8.0","rimraf":"^6.1.3","vitest":"^4.1.10","prettier":"^3.9.6","git-cliff":"^2.13.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.5","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.10","eslint-plugin-import-x":"^4.17.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shared-read-cache_2.1.0_1792019891415_0.5618798059033776"}}},"time":{"created":"2026-08-06T03:28:02.619Z","modified":"2026-10-14T23:18:11.860Z","1.0.0":"2026-08-06T03:28:02.881Z","1.3.0":"2026-08-06T04:26:21.070Z","1.4.0":"2026-08-06T06:00:31.582Z","1.4.1":"2026-08-06T06:08:06.170Z","1.4.2":"2026-08-06T06:52:18.613Z","1.4.4":"2026-08-09T21:53:21.497Z","1.5.0":"2026-08-10T15:24:25.557Z","1.5.1":"2026-08-10T16:42:08.224Z","1.6.0":"2026-08-14T13:44:23.727Z","1.7.0":"2026-08-21T19:20:28.622Z","1.7.1":"2026-08-21T19:42:42.858Z","1.7.2":"2026-08-21T20:40:14.535Z","2.0.0":"2026-10-09T00:13:18.321Z","2.0.1":"2026-10-11T16:12:23.822Z","2.1.0":"2026-10-14T23:18:11.524Z"},"bugs":{"url":"https://github.com/GMOD/shared-read-cache/issues"},"author":{"url":"https://github.com/cmdcolin","name":"Colin Diesh","email":"colin.diesh@gmail.com"},"license":"MIT","homepage":"https://github.com/GMOD/shared-read-cache#readme","keywords":["abort","abortsignal","cache","lru","promise"],"repository":{"url":"git+https://github.com/GMOD/shared-read-cache.git","type":"git"},"description":"A promise cache whose shared reads are cancelled only once every caller has given up","maintainers":[{"name":"rbuels","email":"rbuels@gmail.com"},{"name":"cmdcolin","email":"colin.diesh@gmail.com"},{"name":"garrettjstevens","email":"stevens.garrett.j@gmail.com"}],"readme":"# @gmod/shared-read-cache\n\nA promise cache for reads that several callers want at once. One read per key,\nshared by everyone who asks for it while it is in flight, cancelled only once\n**every** one of them has given up.\n\n## Why\n\nWhen a cache memoizes a bare promise built from the first caller's signal, that\ncaller's abort rejects everyone else awaiting it. In a genome browser, panning\naway from one block then fails its still-wanted siblings.\n\n```js\nimport { SharedReadCache } from '@gmod/shared-read-cache'\n\nconst cache = new SharedReadCache({\n  cacheKey: chunk => chunk.toString(),\n  fill: (chunk, signal) => readChunk(chunk, { signal }),\n})\n\nconst data = await cache.get(chunk, opts.signal)\n```\n\nThis package caches what a read produced, keyed however you like.\n[`@gmod/range-cache-filehandle`](https://github.com/GMOD/range-cache-filehandle)\nsits below it and caches the raw HTTP byte ranges underneath a filehandle.\n\n## Docs\n\n- [docs/dataflow.md](docs/dataflow.md) — how one `get()` flows\n- [docs/memory.md](docs/memory.md) — how entries leave the cache, and the\n  measurements behind the budgets\n- [docs/api.md](docs/api.md) — every option and method\n- [docs/consumers.md](docs/consumers.md) — which gmod packages use this, and\n  where each measurement was taken\n\n## Budgets are opt-in\n\nThere is no default limit, because a sensible one depends on what you cache:\n\n```js\nconst cache = new SharedReadCache({\n  maxSize: 100 * 2 ** 20,\n  sizeOf: chunk => chunk.byteLength,\n  cacheKey: chunk => chunk.toString(),\n  fill: (chunk, signal) => readChunk(chunk, { signal }),\n})\n```\n\nA budget bounds _retained_ memory, not request size:\n\n- The cache never turns a value away for being too large. A value bigger than\n  the whole budget still goes in.\n- Eviction never touches a read in flight, because dropping the promise would\n  lose the de-duplication its callers rely on.\n- Eviction only discards values the cache has already handed back once, so the\n  worst a budget can cost is a re-read.\n\nWith no budget the cache grows for the life of the object. `@gmod/tabix`\nmeasured 2GB RSS panning a dense VCF before it bounded this. Pass a budget if\nthe values are large or the object is long-lived.\n\nSetting `cache.maxSize = n` later evicts immediately, so a consumer can shed\nmemory under pressure.\n\n## `idleTimeoutMs` — reclaiming while nothing is happening\n\nThe cache checks `maxSize` when a read settles, so an idle cache stays at the\nlevel it reached, and no budget alone lowers it.\n\n```js\nconst cache = new SharedReadCache({\n  maxSize: 1024 * 2 ** 20, // the ceiling under load\n  idleTimeoutMs: 180_000, // ...but only while it is being used\n  sizeOf: chunk => chunk.byteLength,\n  fill: (chunk, signal) => readChunk(chunk, { signal }),\n})\n```\n\nUse the two options together:\n\n- Set `maxSize` generously. Below one request's working set it caches _nothing_,\n  because the cache evicts each value before the next request can reuse it,\n  while the reads in flight hold their memory anyway.\n- `idleTimeoutMs` makes a generous ceiling affordable, because memory peaks\n  under load and falls back when idle.\n\nHow the idle clock works:\n\n- It runs from the last **read** of an entry, or from the fill settling if\n  nothing has read it since.\n- An entry fetched once and used every second never expires.\n- A slow read still gets the full timeout for reuse after its download ends.\n- The sweep skips reads in flight.\n- `cache.sweepIdle()` reclaims on demand, for example when a tab goes hidden.\n\nThe sweep timer:\n\n- The first read to settle arms it, and the first sweep that finds no settled\n  entry stops it.\n- It holds its cache weakly, so a dropped cache is collected without a\n  `dispose()` call.\n- It calls `unref` where that exists, so it never holds a Node process open.\n\n## One budget across several caches\n\nA per-cache ceiling does not bound a consumer that opens many caches, such as\none per open file. `SharedBudget` bounds them in aggregate and evicts the\nglobally least-recently-used entry, so a busy cache can use the space an idle\none is not using:\n\n```js\nconst budget = new SharedBudget(1024 * 2 ** 20)\nconst cache = new SharedReadCache({ budget, sizeOf, fill })\n```\n\n- `SharedBudget` works alongside `maxSize`; it does not replace it.\n- It holds its members weakly, so there is no `unregister` to call.\n- Every member must measure size in the same unit. A budget that adds one\n  cache's bytes to another's entry counts bounds neither.\n\n[docs/memory.md](docs/memory.md) has the measurement for dividing a ceiling by\nthe file count instead.\n\n## Why `sizeOf`\n\n`sizeOf` weighs a settled value against the budget; without it, the budget\ncounts entries. The cache can only call `sizeOf` once a read settles, so a cache\nthat budgets this way has to own its entries, which a plain LRU package cannot\ndo. [docs/consumers.md](docs/consumers.md) lists what each gmod package weighs.\n\n## Behaviour\n\n- A caller with no signal pins the read. It can never abort, so aborting every\n  other caller does not stop the read, and the read is uncancellable for\n  everyone joined to it.\n- The cache drops a rejection rather than caching it, so one transient failure\n  does not make the key fail for the life of the cache.\n\n## Relationship to `@gmod/abortable-promise-cache`\n\nThis package replaces `@gmod/abortable-promise-cache`, which had two bugs:\n\n- It never removed its listener from a caller's signal, so a long-lived signal\n  accumulated one per key.\n- It counted a caller that arrived already aborted as a waiter. An abort\n  listener never fires on an already-aborted signal, so the count never reached\n  zero and the read became uncancellable for everyone joined to it.\n","readmeFilename":"README.md"}