{"_id":"@humanspeak/memory-cache","_rev":"11-3233d08d9e389016c8d4fbc38ec158c9","name":"@humanspeak/memory-cache","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@humanspeak/memory-cache","version":"1.0.0","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/memory-cache@1.0.0","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"4b2f8fde23f2815af4d10df98b2ff405ca8e9a5d","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.0.0.tgz","fileCount":7,"integrity":"sha512-rz6RDT3S9N5syEroUCqa5bRHiO+QGXl8xAui6vivsYRemleOYn+4xb3bDtiI86NJDgkHm2sDnDcGpAGBE5BUUg==","signatures":[{"sig":"MEUCID7CBhKirOF9Va6dfLG0qF2+ag0/HJYQ0D+8j+frxy5qAiEA/teuH8AYbIVzTRMnt/nez7M0QS4vRUcB7Lu6mAInN4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36213},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","volta":{"node":"22.21.1"},"module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","prepare":"husky","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"humanspeakadmin","email":"admin@humanspeak.com"},"repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.39.2","vitest":"^4.0.16","globals":"^16.5.0","publint":"^0.3.16","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^22.10.2","@eslint/compat":"^2.0.0","vite-plugin-dts":"^4.5.0","typescript-eslint":"^8.51.0","@vitest/coverage-v8":"^4.0.16","eslint-config-prettier":"10.1.8","@typescript-eslint/parser":"^8.51.0","prettier-plugin-sort-json":"^4.1.1","@typescript-eslint/eslint-plugin":"^8.51.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.0.0_1767039550568_0.7412639673689227","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@humanspeak/memory-cache","version":"1.0.1","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/memory-cache@1.0.1","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"bdab64a39438060fdb549900f804e750ea3a5640","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.0.1.tgz","fileCount":7,"integrity":"sha512-31EAdO/7NsGODG17wv5IHq6pJFU9m5ZsRDlsOkHn0rqGgMxxmBGR0BIIeWnG+o0aJXrTvylmxrZ9Jv9YZWuWIQ==","signatures":[{"sig":"MEUCIQD62YWk6x7iCVXJsTmt8NvHN8XKSfwFXPM9SvDHtojYnAIgBzYd9GpMihfAZLPNEbqajtLhsoP+2ZlJBeR3HP9txpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35976},"main":"./dist/index.js","type":"module","_from":"file:humanspeak-memory-cache-1.0.1.tgz","types":"./dist/index.d.ts","volta":{"node":"22.21.1"},"module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","dev:all":"concurrently -k -n pkg,docs -c green,cyan \"pnpm -w -r --filter @humanspeak/memory-cache run dev\" \"pnpm --filter docs run dev\"","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","test:watch":"vitest"},"_npmUser":{"name":"humanspeakadmin","email":"admin@humanspeak.com"},"_resolved":"/tmp/c6becd82705ca69da3fbb36d8521b310/humanspeak-memory-cache-1.0.1.tgz","_integrity":"sha512-31EAdO/7NsGODG17wv5IHq6pJFU9m5ZsRDlsOkHn0rqGgMxxmBGR0BIIeWnG+o0aJXrTvylmxrZ9Jv9YZWuWIQ==","repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.39.2","vitest":"^4.0.16","globals":"^16.5.0","publint":"^0.3.16","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^22.10.2","concurrently":"^9.2.1","@eslint/compat":"^2.0.0","vite-plugin-dts":"^4.5.0","typescript-eslint":"^8.51.0","@vitest/coverage-v8":"^4.0.16","eslint-config-prettier":"10.1.8","@typescript-eslint/parser":"^8.51.0","prettier-plugin-sort-json":"^4.1.1","@typescript-eslint/eslint-plugin":"^8.51.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.0.1_1767041992726_0.21003033574212293","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@humanspeak/memory-cache","version":"1.0.2","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/memory-cache@1.0.2","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"04d39c14f650228ccb1df204da9cdfcc9c7d5e0a","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.0.2.tgz","fileCount":7,"integrity":"sha512-UgyiEqv10ioIXcz10Le7ZRdnr5AAxnSJC8rtxulAozDfoiiIPsxa3e8v58OWqxUlev+5BbwfCtulQsrtJIRjgg==","signatures":[{"sig":"MEQCIGzfyBLu/4EBGMW2SfCVrEVAs6ZKa+Oq6sdUs4hcNsONAiBNCIDAuOBhiwZnh6wVDZBINHh36PphVuE4dG9vDJ9oZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57069},"main":"./dist/index.js","type":"module","_from":"file:humanspeak-memory-cache-1.0.2.tgz","types":"./dist/index.d.ts","volta":{"node":"22.21.1"},"module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","dev:all":"concurrently -k -n pkg,docs,sitemap -c green,cyan,magenta \"pnpm -w -r --filter @humanspeak/memory-cache run dev\" \"pnpm --filter docs run dev\" \"pnpm --filter docs run sitemap:watch\"","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","test:watch":"vitest"},"_npmUser":{"name":"humanspeakadmin","email":"admin@humanspeak.com"},"_resolved":"/tmp/eae091e6c1f847ddd477ff2d0471431e/humanspeak-memory-cache-1.0.2.tgz","_integrity":"sha512-UgyiEqv10ioIXcz10Le7ZRdnr5AAxnSJC8rtxulAozDfoiiIPsxa3e8v58OWqxUlev+5BbwfCtulQsrtJIRjgg==","repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.39.2","vitest":"^4.0.16","globals":"^17.0.0","publint":"^0.3.16","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","concurrently":"^9.2.1","@eslint/compat":"^2.0.0","vite-plugin-dts":"^4.5.4","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^4.0.16","eslint-config-prettier":"10.1.8","prettier-plugin-svelte":"^3.4.1","@typescript-eslint/parser":"^8.52.0","prettier-plugin-sort-json":"^4.1.1","prettier-plugin-tailwindcss":"^0.7.2","@typescript-eslint/eslint-plugin":"^8.52.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.0.2_1767644536095_0.924190807758398","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@humanspeak/memory-cache","version":"1.0.3","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/memory-cache@1.0.3","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"d66b3917ecb90ff9c08f74ee3e8275d9cc8ff659","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.0.3.tgz","fileCount":7,"integrity":"sha512-mF20OByTHO+M6kzP+SEZRUJevNJf8VNivOqktvCNtRLG4HkkRGTV5qzjw8TeqH3mb5RZ6i8+2H0Z2A7HcTEpgg==","signatures":[{"sig":"MEYCIQDNXkscm9cmyN8EMgBCiBgEzCHuP5hJ8/WzBRv1hvO7wgIhAP9FWgvixzTTbss93jyA8l0028d0cNT300Ve0L8fUK/u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58844},"main":"./dist/index.js","type":"module","_from":"file:humanspeak-memory-cache-1.0.3.tgz","types":"./dist/index.d.ts","volta":{"node":"24.13.0"},"module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","dev:all":"concurrently -k -n pkg,docs,sitemap -c green,cyan,magenta \"pnpm -w -r --filter @humanspeak/memory-cache run dev\" \"pnpm --filter docs run dev\" \"pnpm --filter docs run sitemap:watch\"","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1d97f93-b9a9-4cf3-ba6e-431cf8b0c192"}},"_resolved":"/tmp/d306af8734a1ab953d2241f8e98eb5f3/humanspeak-memory-cache-1.0.3.tgz","_integrity":"sha512-mF20OByTHO+M6kzP+SEZRUJevNJf8VNivOqktvCNtRLG4HkkRGTV5qzjw8TeqH3mb5RZ6i8+2H0Z2A7HcTEpgg==","repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.2.0","publint":"^0.3.17","prettier":"^3.8.1","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.1.0","concurrently":"^9.2.1","@eslint/compat":"^2.0.1","vite-plugin-dts":"^4.5.4","typescript-eslint":"^8.54.0","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"10.1.8","prettier-plugin-svelte":"^3.4.1","@typescript-eslint/parser":"^8.54.0","prettier-plugin-sort-json":"^4.2.0","prettier-plugin-tailwindcss":"^0.7.2","@typescript-eslint/eslint-plugin":"^8.54.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.0.3_1769721952365_0.2542256344048377","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@humanspeak/memory-cache","version":"1.0.4","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/memory-cache@1.0.4","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"5be28ad5797550cc648922fef3204014f9a886f9","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.0.4.tgz","fileCount":7,"integrity":"sha512-S/63Uqn0HzZuAKW3ieF3G8tDpsdQx5ssKHhtxG8Z/E592xSMayrUB0bzNojJ4SwC1kTEsbl14lr0voyR1HiWbA==","signatures":[{"sig":"MEUCIEciiLTOmLOpH4LohIRefAF+Ph1TJR/HonzgjJjFMP6JAiEAuTk4+pC8fojXviPKYva34JMKY5PWPfrCC/XZUtcwNGE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75775},"main":"./dist/index.js","type":"module","_from":"file:humanspeak-memory-cache-1.0.4.tgz","types":"./dist/index.d.ts","volta":{"node":"24.13.0"},"module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","dev:all":"concurrently -k -n pkg,docs,sitemap -c green,cyan,magenta \"pnpm -w -r --filter @humanspeak/memory-cache run dev\" \"pnpm --filter docs run dev\" \"pnpm --filter docs run sitemap:watch\"","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1d97f93-b9a9-4cf3-ba6e-431cf8b0c192"}},"_resolved":"/tmp/e842ca6309c234425ccc6997568aa79d/humanspeak-memory-cache-1.0.4.tgz","_integrity":"sha512-S/63Uqn0HzZuAKW3ieF3G8tDpsdQx5ssKHhtxG8Z/E592xSMayrUB0bzNojJ4SwC1kTEsbl14lr0voyR1HiWbA==","repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.2.0","publint":"^0.3.17","prettier":"^3.8.1","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.1.0","concurrently":"^9.2.1","@eslint/compat":"^2.0.1","vite-plugin-dts":"^4.5.4","typescript-eslint":"^8.54.0","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"10.1.8","prettier-plugin-svelte":"^3.4.1","@typescript-eslint/parser":"^8.54.0","prettier-plugin-sort-json":"^4.2.0","prettier-plugin-tailwindcss":"^0.7.2","@typescript-eslint/eslint-plugin":"^8.54.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.0.4_1769733305873_0.2920497161780986","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@humanspeak/memory-cache","version":"1.0.5","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/memory-cache@1.0.5","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"0a2f4402746d0ada3d8dec1c5543e27efb339432","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.0.5.tgz","fileCount":7,"integrity":"sha512-bNo+xAL2KT8Zv9wHjeLloyQrbEv8aea9gjL2eHhNki3/1xapDRYm/W5gGgBQNvpdBJFoYcA6VQJcbm0ZjKML+g==","signatures":[{"sig":"MEUCIBiqJabMEH1RSp4Si6aGoJaGUYKf04FZiYPGBW2CjjR/AiEA1iMKuIOkDlT/83egzdQmAn0XlqKF8Gv6mYBWt5ypazA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97145},"main":"./dist/index.js","type":"module","_from":"file:humanspeak-memory-cache-1.0.5.tgz","types":"./dist/index.d.ts","volta":{"node":"24.13.0"},"module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","dev:all":"concurrently -k -n pkg,docs,sitemap -c green,cyan,magenta \"pnpm -w -r --filter @humanspeak/memory-cache run dev\" \"pnpm --filter docs run dev\" \"pnpm --filter docs run sitemap:watch\"","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1d97f93-b9a9-4cf3-ba6e-431cf8b0c192"}},"_resolved":"/tmp/ee53cd5ae8990db30508c4c9effc38f5/humanspeak-memory-cache-1.0.5.tgz","_integrity":"sha512-bNo+xAL2KT8Zv9wHjeLloyQrbEv8aea9gjL2eHhNki3/1xapDRYm/W5gGgBQNvpdBJFoYcA6VQJcbm0ZjKML+g==","repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.39.2","vitest":"^4.0.18","globals":"^17.3.0","publint":"^0.3.17","prettier":"^3.8.1","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.2.3","concurrently":"^9.2.1","@eslint/compat":"^2.0.2","vite-plugin-dts":"^4.5.4","typescript-eslint":"^8.56.0","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"10.1.8","prettier-plugin-svelte":"^3.4.1","@typescript-eslint/parser":"^8.56.0","prettier-plugin-sort-json":"^4.2.0","prettier-plugin-tailwindcss":"^0.7.2","@typescript-eslint/eslint-plugin":"^8.56.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.0.5_1771373859684_0.00813497334551938","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@humanspeak/memory-cache","version":"1.0.6","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/memory-cache@1.0.6","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"c709338117fe9b29fd0a77b8221d9446125f6acd","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.0.6.tgz","fileCount":7,"integrity":"sha512-8nS/7OIysYsjd5d64cprdwupgqzpMmFDHw25EWuPLRxxJw5q91K7Z+bjIcAPjikMU9vmptY5GyhsZDbcr1ym4Q==","signatures":[{"sig":"MEQCIHZ3ZR7te8KqfrKeVThs/Wi11MS4v4PiTM0uguTo0EehAiAN0W7w8QUJQGiKdOVajFaJEzBngPhC1Xi6O/aMREjjEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97010},"main":"./dist/index.js","type":"module","_from":"file:humanspeak-memory-cache-1.0.6.tgz","types":"./dist/index.d.ts","volta":{"node":"24.13.0"},"module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","dev:all":"mprocs","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","cf-typegen":"cd docs && npx wrangler types","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1d97f93-b9a9-4cf3-ba6e-431cf8b0c192"}},"_resolved":"/tmp/3c3d7e4c25063a443329a570c90187bf/humanspeak-memory-cache-1.0.6.tgz","_integrity":"sha512-8nS/7OIysYsjd5d64cprdwupgqzpMmFDHw25EWuPLRxxJw5q91K7Z+bjIcAPjikMU9vmptY5GyhsZDbcr1ym4Q==","repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^10.0.2","mprocs":"^0.8.3","vitest":"^4.0.18","globals":"^17.4.0","publint":"^0.3.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.3.3","@eslint/compat":"^2.0.2","vite-plugin-dts":"^4.5.4","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"10.1.8","prettier-plugin-svelte":"^3.5.1","@typescript-eslint/parser":"^8.56.1","prettier-plugin-sort-json":"^4.2.0","prettier-plugin-tailwindcss":"^0.7.2","@typescript-eslint/eslint-plugin":"^8.56.1","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.0.6_1772939118812_0.6605264593943867","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@humanspeak/memory-cache","version":"1.1.0","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":"Humanspeak, Inc.","license":"MIT","_id":"@humanspeak/memory-cache@1.1.0","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"bf5166f2547b2a162e3f3435e17bc85505d0d138","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.1.0.tgz","fileCount":7,"integrity":"sha512-pYZkt8827KM05KlgDv+5t1RFtWPfy/MW0p9fd9R513g8Nq5yXfOukHZdKIySZe9ElcJp2is4x8Q59ksdlXR1Qg==","signatures":[{"sig":"MEUCIQCLN8dQIhFEeunIlGhFZLaJx1qlFaM/p5HG6EA00z353QIgHzoPIheQ5DvkCr1JrlIB8lwXj0LAbl4a5y9zgP/12Gc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102449},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","volta":{"node":"24.15.0"},"module":"./dist/index.js","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","dev:all":"mprocs","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","cf-typegen":"pnpm --filter docs cf-typegen","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7e563819-5776-4ca0-94f2-42eaa73771e5"}},"repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^10.4.1","mprocs":"^0.9.4","vitest":"^4.1.7","globals":"^17.6.0","publint":"^0.3.21","prettier":"^3.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.1","@eslint/compat":"^2.1.0","vite-plugin-dts":"^5.0.1","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","eslint-config-prettier":"10.1.8","prettier-plugin-svelte":"^4.0.1","@typescript-eslint/parser":"^8.60.0","prettier-plugin-sort-json":"^4.2.0","prettier-plugin-tailwindcss":"^0.8.0","@typescript-eslint/eslint-plugin":"^8.60.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.1.0_1780683470691_0.20775777313343502","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@humanspeak/memory-cache","version":"1.1.1","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":"Humanspeak, Inc.","license":"MIT","_id":"@humanspeak/memory-cache@1.1.1","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"970d2e39f26a5bbcbb6be7420b2e7f5809b241e3","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.1.1.tgz","fileCount":7,"integrity":"sha512-z6W4ZoQ/KIXZl4r79nCIIWG51eNMT2J8useLuBsCe0bH/G61xV/yWyd/PEYVQq9wlQIEuU81oiUM4vI0zp5jew==","signatures":[{"sig":"MEQCIGiu2OLYfBO4+MxbWAqBzaXNTuTVtACiKQkMczy8kKpeAiBkmAmc9p4wxxX7d+vHwHGqRsKxgEp3tFWUh130YPYPdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106632},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","volta":{"node":"24.15.0"},"module":"./dist/index.js","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","dev:all":"mprocs","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","cf-typegen":"pnpm --filter docs cf-typegen","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7e563819-5776-4ca0-94f2-42eaa73771e5"}},"repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^10.4.1","mprocs":"^0.9.4","vitest":"^4.1.7","globals":"^17.6.0","publint":"^0.3.21","prettier":"^3.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.1","@eslint/compat":"^2.1.0","vite-plugin-dts":"^5.0.1","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","eslint-config-prettier":"10.1.8","prettier-plugin-svelte":"^4.0.1","@typescript-eslint/parser":"^8.60.0","prettier-plugin-sort-json":"^4.2.0","prettier-plugin-tailwindcss":"^0.8.0","@typescript-eslint/eslint-plugin":"^8.60.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.1.1_1780842982725_0.8925140253407402","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@humanspeak/memory-cache","version":"1.1.2","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"author":"Humanspeak, Inc.","license":"MIT","_id":"@humanspeak/memory-cache@1.1.2","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"dist":{"shasum":"2bd14a51782b30232fb544dab54fc20efb0171a8","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.1.2.tgz","fileCount":7,"integrity":"sha512-6kmeqrCVThw4RYZsJ74l9cOdZQ84XHnGIzrv+Po49CZBNNVDEzi0CGsTx+KKmr/Hb6hY6yDGxeWTiz4VHkdsEg==","signatures":[{"sig":"MEYCIQDXpgslTpIY9atQaxJ1QLv1KhTyGAgrwLtTqkxm9nwLrwIhAKGjR/zo+KlygBTx60oFNapWxq/q+I8SGyeV8kZbOUS5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107862},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","volta":{"node":"24.15.0"},"module":"./dist/index.js","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && tsc --emitDeclarationOnly","check":"tsc --noEmit","format":"prettier --write .","dev:all":"mprocs","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:unit":"vitest","cf-typegen":"pnpm --filter docs cf-typegen","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7e563819-5776-4ca0-94f2-42eaa73771e5"}},"repository":{"url":"git+ssh://git@github.com/humanspeak/memory-cache.git","type":"git"},"description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^10.4.1","mprocs":"^0.9.4","vitest":"^4.1.7","globals":"^17.6.0","publint":"^0.3.21","prettier":"^3.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.1","@eslint/compat":"^2.1.0","vite-plugin-dts":"^5.0.1","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","eslint-config-prettier":"10.1.8","prettier-plugin-svelte":"^4.0.1","@typescript-eslint/parser":"^8.60.0","prettier-plugin-sort-json":"^4.2.0","prettier-plugin-tailwindcss":"^0.8.0","@typescript-eslint/eslint-plugin":"^8.60.0","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-cache_1.1.2_1782416773418_0.46496581750313304","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@humanspeak/memory-cache","version":"1.2.0","description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"homepage":"https://memory.svelte.page","bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/humanspeak/memory-cache.git"},"license":"MIT","author":"Humanspeak, Inc.","type":"module","engines":{"node":">=20.19.0"},"publishConfig":{"access":"public"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","devDependencies":{"@eslint/compat":"^2.1.0","@eslint/js":"^10.0.1","@types/node":"^25.9.1","@typescript-eslint/eslint-plugin":"^8.60.0","@typescript-eslint/parser":"^8.60.0","@vitest/coverage-v8":"^4.1.7","eslint":"^10.4.1","eslint-config-prettier":"10.1.8","globals":"^17.6.0","husky":"^9.1.7","mprocs":"^0.9.4","prettier":"^3.8.3","prettier-plugin-organize-imports":"^4.3.0","prettier-plugin-sort-json":"^4.2.0","prettier-plugin-svelte":"^4.0.1","prettier-plugin-tailwindcss":"^0.8.0","publint":"^0.3.21","tslib":"^2.8.1","typescript":"^6.0.3","typescript-eslint":"^8.60.0","vite":"^8.0.14","vite-plugin-dts":"^5.0.1","vitest":"^4.1.7"},"volta":{"node":"24.15.0"},"scripts":{"build":"vite build && tsc --emitDeclarationOnly","cf-typegen":"pnpm --filter docs cf-typegen","check":"tsc --noEmit","dev":"vite build --watch","dev:all":"mprocs","format":"prettier --write .","lint":"prettier --check . && eslint .","lint:fix":"npm run format && eslint . --fix","test":"vitest run --coverage","test:only":"vitest run","test:unit":"vitest","test:watch":"vitest"},"_nodeVersion":"24.19.0","_id":"@humanspeak/memory-cache@1.2.0","dist":{"integrity":"sha512-im7GIIpgjdD6Fx68xCeiXw3XiDv30/WMRAaodMm+ep0ptYfEUd0cdNeTAylHGIRTJIeByKFHdTmPjAktyDM/JQ==","shasum":"4170f34afd7529743b64742b3166075eefae411e","tarball":"https://registry.npmjs.org/@humanspeak/memory-cache/-/memory-cache-1.2.0.tgz","fileCount":7,"unpackedSize":118366,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fmemory-cache@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGOZ/XRV6+eVlvTH+gPtxpsBZHFWh3v1Xh8LTLELyrBsAiBvcmHPiAgDxB/FqiJmhHHkplLpVQ40UpBqjkRW7Di3Ow=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7e563819-5776-4ca0-94f2-42eaa73771e5"}},"directories":{},"maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memory-cache_1.2.0_1787851464776_0.5099627420138266"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-29T20:19:10.475Z","modified":"2026-08-27T17:24:25.282Z","1.0.0":"2025-12-29T20:19:10.713Z","1.0.1":"2025-12-29T20:59:52.890Z","1.0.2":"2026-01-05T20:22:16.261Z","1.0.3":"2026-01-29T21:25:52.589Z","1.0.4":"2026-01-30T00:35:06.042Z","1.0.5":"2026-02-18T00:17:39.846Z","1.0.6":"2026-03-08T03:05:18.950Z","1.1.0":"2026-06-05T18:17:50.842Z","1.1.1":"2026-06-07T14:36:22.924Z","1.1.2":"2026-06-25T19:46:13.569Z","1.2.0":"2026-08-27T17:24:24.915Z"},"bugs":{"url":"https://github.com/humanspeak/memory-cache/issues"},"author":"Humanspeak, Inc.","license":"MIT","homepage":"https://memory.svelte.page","keywords":["cache","memory-cache","lru-cache","ttl-cache","in-memory-cache","caching","memoization","memoize","decorator","typescript","node-cache","simple-cache","lightweight-cache","key-value-store","expiring-cache","method-cache","function-cache","data-cache","cache-manager","time-to-live","eviction","lru","performance","optimization","storage","wildcard","pattern-matching","prefix-delete","zero-dependency"],"repository":{"type":"git","url":"git+ssh://git@github.com/humanspeak/memory-cache.git"},"description":"A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript with TTL expiration, LRU eviction, wildcard pattern deletion, and a powerful @cached decorator for method-level memoization. Perfect for API response caching, session storage, an","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"readme":"<!-- trunk-ignore-all(markdownlint/MD033) -->\n<!-- trunk-ignore-all(markdownlint/MD036) -->\n<!-- trunk-ignore(markdownlint/MD041) -->\n<div align=\"center\">\n\n# @humanspeak/memory-cache\n\n**A lightweight, zero-dependency in-memory cache for TypeScript and JavaScript**\n\n[![NPM version](https://img.shields.io/npm/v/@humanspeak/memory-cache.svg)](https://www.npmjs.com/package/@humanspeak/memory-cache)\n[![Build Status](https://github.com/humanspeak/memory-cache/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/humanspeak/memory-cache/actions/workflows/npm-publish.yml)\n[![Coverage Status](https://coveralls.io/repos/github/humanspeak/memory-cache/badge.svg?branch=main)](https://coveralls.io/github/humanspeak/memory-cache?branch=main)\n[![License](https://img.shields.io/npm/l/@humanspeak/memory-cache.svg)](https://github.com/humanspeak/memory-cache/blob/main/LICENSE)\n[![Downloads](https://img.shields.io/npm/dm/@humanspeak/memory-cache.svg)](https://www.npmjs.com/package/@humanspeak/memory-cache)\n[![Install size](https://packagephobia.com/badge?p=@humanspeak/memory-cache)](https://packagephobia.com/result?p=@humanspeak/memory-cache)\n[![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg)](http://www.typescriptlang.org/)\n[![Types](https://img.shields.io/npm/types/@humanspeak/memory-cache.svg)](https://www.npmjs.com/package/@humanspeak/memory-cache)\n\n</div>\n\nA powerful, feature-rich in-memory caching solution with TTL expiration, true LRU (Least Recently Used) eviction, wildcard pattern deletion, and a `@cached` decorator for effortless method-level memoization. Perfect for API response caching, session storage, expensive computation caching, and performance optimization.\n\nVisit the [documentation](https://memory.svelte.page/) for detailed API reference and examples.\n\n## Features\n\n- **Zero Dependencies** - Lightweight and fast\n- **TTL Expiration** - Automatic cache entry expiration\n- **LRU Eviction** - Least recently used entries are evicted when cache is full\n- **Weighted Eviction** - Bound aggregate user-defined cost, including serialized bytes\n- **Wildcard Deletion** - Delete entries by prefix or wildcard patterns\n- **Full TypeScript Support** - Complete type definitions included\n- **Method Decorator** - `@cached` decorator for automatic memoization\n- **Null/Undefined Support** - Properly caches falsy values\n- **Cache Statistics** - Track hits, misses, evictions, and expirations\n- **Introspection** - Query cache size, keys, values, and entries\n- **Lifecycle Hooks** - Observe cache events for monitoring and debugging\n\n## Installation\n\n```bash\nnpm install @humanspeak/memory-cache\n```\n\n```bash\npnpm add @humanspeak/memory-cache\n```\n\n```bash\nyarn add @humanspeak/memory-cache\n```\n\n## Quick Start\n\n### Basic Usage\n\n```typescript\nimport { MemoryCache } from '@humanspeak/memory-cache'\n\n// Create a cache with default options (100 entries, 5 minute TTL)\nconst cache = new MemoryCache<string>()\n\n// Or customize the options\nconst customCache = new MemoryCache<string>({\n    maxSize: 1000, // Maximum entries before eviction\n    ttl: 10 * 60 * 1000 // 10 minutes TTL\n})\n\n// Store and retrieve values\ncache.set('user:123', 'John Doe')\nconst name = cache.get('user:123') // 'John Doe'\n\n// Check if key exists\nif (cache.has('user:123')) {\n    // Key exists and hasn't expired\n}\n\n// Delete entries\ncache.delete('user:123')\ncache.clear() // Remove all entries\n```\n\n### Wildcard Pattern Deletion\n\n```typescript\nconst cache = new MemoryCache<string>()\n\ncache.set('user:123:name', 'John')\ncache.set('user:123:email', 'john@example.com')\ncache.set('user:456:name', 'Jane')\ncache.set('post:789', 'Hello World')\n\n// Delete by prefix\ncache.deleteByPrefix('user:123:') // Removes user:123:name and user:123:email\n\n// Delete by wildcard pattern\ncache.deleteByMagicString('user:*:name') // Removes all user names\ncache.deleteByMagicString('*:123:*') // Removes all entries with :123:\n```\n\n### Method Decorator\n\n```typescript\nimport { cached } from '@humanspeak/memory-cache'\n\nclass UserService {\n    @cached<User>({ ttl: 60000, maxSize: 100 })\n    async getUser(id: string): Promise<User> {\n        // This expensive operation will be cached\n        return await database.findUser(id)\n    }\n\n    @cached<string[]>()\n    getUserPermissions(userId: string, role: string): string[] {\n        // Results are cached per unique argument combination\n        return computePermissions(userId, role)\n    }\n}\n\nconst service = new UserService()\n\n// First call - executes the method\nawait service.getUser('123')\n\n// Second call - returns cached result\nawait service.getUser('123')\n```\n\nAsync decorated methods use single-flight behavior: concurrent calls with the\nsame arguments share one in-flight method execution. Resolved values are cached,\nwhile rejected promises are not cached by default, so a later call can retry.\n\n```typescript\nconst [a, b] = await Promise.all([service.getUser('popular-user'), service.getUser('popular-user')])\n// database.findUser ran once; both callers received the same result\n```\n\n#### Custom Key Generator\n\nUse `keyGenerator` to control how cache keys are derived from arguments:\n\n```typescript\nclass UserService {\n    @cached<string>({ keyGenerator: (args) => args[0].id })\n    getDisplayName(user: { id: string; name: string }): string {\n        return computeDisplayName(user)\n    }\n}\n```\n\n#### Hashed Keys\n\nUse `hashKeys` for shorter, fixed-length keys (useful with complex arguments):\n\n```typescript\nclass AnalyticsService {\n    @cached<Report>({ hashKeys: true, ttl: 60000 })\n    generateReport(filters: ComplexFilterObject): Report {\n        return buildReport(filters)\n    }\n}\n```\n\n> When both `keyGenerator` and `hashKeys` are set, `keyGenerator` takes precedence.\n\n### Async Fetch with getOrSet\n\n```typescript\nimport { MemoryCache } from '@humanspeak/memory-cache'\n\nconst cache = new MemoryCache<User>({ ttl: 60000 })\n\n// Automatically fetch and cache on miss\nconst user = await cache.getOrSet('user:123', async () => {\n    return await fetchUserFromDB(123)\n})\n\n// Concurrent requests share the same fetch (thundering herd prevention)\nconst promises = Array.from({ length: 100 }, () =>\n    cache.getOrSet('popular-key', fetchExpensiveData)\n)\nawait Promise.all(promises) // fetchExpensiveData called only once\n```\n\n## API Reference\n\n### `MemoryCache<T>`\n\n#### Constructor Options\n\n| Option            | Type                                | Default  | Description                                      |\n| ----------------- | ----------------------------------- | -------- | ------------------------------------------------ |\n| `maxSize`         | `number`                            | `100`    | Maximum entries before eviction (0 = unlimited)  |\n| `maxWeight`       | `number`                            | `0`      | Maximum aggregate weight (0 = disabled)          |\n| `sizeCalculation` | `(value: T, key: string) => number` | —        | Returns each entry's finite, non-negative weight |\n| `ttl`             | `number`                            | `300000` | Time-to-live in milliseconds (0 = no expiration) |\n| `hooks`           | `CacheHooks`                        | `{}`     | Lifecycle hooks for observing cache events       |\n\n#### Methods\n\n| Method                         | Description                                             |\n| ------------------------------ | ------------------------------------------------------- |\n| `get(key)`                     | Retrieves a value from the cache                        |\n| `set(key, value)`              | Stores a value, pruning expired entries before eviction |\n| `getOrSet(key, fetcher)`       | Gets cached value or fetches and caches on miss         |\n| `has(key)`                     | Checks if a key exists (useful for cached undefined)    |\n| `delete(key)`                  | Removes a specific entry                                |\n| `deleteAsync(key)`             | Async version of delete                                 |\n| `clear()`                      | Removes all entries                                     |\n| `deleteByPrefix(prefix)`       | Removes entries starting with prefix                    |\n| `deleteByMagicString(pattern)` | Removes entries matching wildcard pattern               |\n| `size()`                       | Returns the number of entries in cache                  |\n| `keys()`                       | Returns array of all cache keys                         |\n| `values()`                     | Returns array of all cached values                      |\n| `entries()`                    | Returns array of [key, value] pairs                     |\n| `getStats()`                   | Returns cache statistics (hits, misses, etc.)           |\n| `resetStats()`                 | Resets statistics counters to zero                      |\n| `prune()`                      | Removes all expired entries, returns count              |\n\n### `@cached<T>(options?)`\n\nA method decorator for automatic result caching.\n\n```typescript\n@cached<ReturnType>({ ttl: 60000, maxSize: 100 })\nmethodName(args): ReturnType { ... }\n```\n\n## Configuration Examples\n\n```typescript\n// High-traffic API cache\ninterface ApiResponse {\n    data: unknown\n    cachedAt: number\n}\n\nconst apiCache = new MemoryCache<ApiResponse>({\n    maxSize: 0, // Disable the default 100-entry limit for weight-only operation\n    maxWeight: 10 * 1024 * 1024, // 10 MiB of serialized response data\n    sizeCalculation: (response) => new TextEncoder().encode(JSON.stringify(response)).byteLength,\n    ttl: 5 * 60 * 1000 // 5 minutes\n})\n\n// Session storage (longer TTL, smaller size)\nconst sessionCache = new MemoryCache<Session>({\n    maxSize: 1000,\n    ttl: 30 * 60 * 1000 // 30 minutes\n})\n\n// Computation cache (no TTL, size-limited)\nconst computeCache = new MemoryCache<Result>({\n    maxSize: 500,\n    ttl: 0 // No expiration\n})\n\n// Unlimited cache (use with caution)\nconst unlimitedCache = new MemoryCache<Data>({\n    maxSize: 0, // No size limit\n    ttl: 0 // No expiration\n})\n```\n\n`maxWeight` is a deterministic aggregate limit in units chosen by\n`sizeCalculation(value, key)`; it is not automatic JavaScript heap measurement.\nBecause `maxSize` still defaults to `100`, set `maxSize: 0` when weight should be\nthe only capacity limit. Both limits can also be active together, in which case\nLRU entries are evicted until both constraints hold.\n\nThe calculator runs once before each `set`. It must return a finite,\nnon-negative number; invalid results throw `RangeError` without changing the\ncache. A value heavier than `maxWeight` is returned normally by `getOrSet` or a\ndecorated method but is not cached. Replacing an existing key with an oversized\nvalue removes the old cached value so stale data cannot be returned.\n\n## Cache Statistics\n\nTrack cache performance with built-in statistics:\n\n```typescript\nconst cache = new MemoryCache<string>()\n\ncache.set('key', 'value')\ncache.get('key') // hit\ncache.get('missing') // miss\n\nconst stats = cache.getStats()\n// { hits: 1, misses: 1, evictions: 0, expirations: 0, size: 1, weight: 0 }\n\n// Reset statistics\ncache.resetStats()\n\n// Proactively remove expired entries\nconst prunedCount = cache.prune()\n```\n\nWhen `ttl` and `maxSize` are both configured, writes reclaim expired entries\nbefore evicting the least recently used valid entry:\n\n```typescript\nconst cache = new MemoryCache<string>({ maxSize: 2, ttl: 1000 })\n\ncache.set('stale', 'old')\n\n// ... 750ms pass ...\n\ncache.set('fresh', 'new')\n\n// ... another 300ms pass; stale expires, fresh is still valid ...\n\ncache.set('next', 'value') // prunes stale; fresh remains cached\n```\n\n## Cache Hooks\n\nMonitor cache lifecycle events with optional hooks:\n\n```typescript\nconst cache = new MemoryCache<string>({\n    maxSize: 100,\n    ttl: 60000,\n    hooks: {\n        onHit: ({ key, value }) => console.log(`Cache hit: ${key}`),\n        onMiss: ({ key, reason }) => console.log(`Cache miss: ${key} (${reason})`),\n        onSet: ({ key, isUpdate }) => console.log(`Set: ${key} ${isUpdate ? '(update)' : '(new)'}`),\n        onEvict: ({ key }) => console.log(`Evicted: ${key}`),\n        onExpire: ({ key, source }) => console.log(`Expired: ${key} via ${source}`),\n        onDelete: ({ key, source }) => console.log(`Deleted: ${key} via ${source}`)\n    }\n})\n```\n\n### Hook Events\n\n| Hook       | When Called                                       | Context                                     |\n| ---------- | ------------------------------------------------- | ------------------------------------------- |\n| `onHit`    | Successful cache retrieval                        | `{ key, value }`                            |\n| `onMiss`   | Cache miss (not found or expired)                 | `{ key, reason: 'not_found' \\| 'expired' }` |\n| `onSet`    | Value stored in cache                             | `{ key, value, isUpdate }`                  |\n| `onEvict`  | Entry evicted due to entry-count or weight limits | `{ key, value }`                            |\n| `onExpire` | Entry removed due to TTL expiration               | `{ key, value, source }`                    |\n| `onDelete` | Entry explicitly deleted                          | `{ key, value, source }`                    |\n\nHooks are synchronous and errors are silently caught to prevent cache corruption.\n\n## Documentation\n\nFor complete documentation, examples, and API reference, visit [memory.svelte.page](https://memory.svelte.page/).\n\n<!-- docs-kit:ecosystem start -->\n\n## Svelte 5 ecosystem\n\nPart of the [Humanspeak](https://humanspeak.com) family of runes-native Svelte 5 packages:\n\n<!-- prettier-ignore-start -->\n| Package | Description |\n| --- | --- |\n| [@humanspeak/svelte-markdown](https://markdown.svelte.page) | Runtime markdown renderer for Svelte |\n| [@humanspeak/svelte-virtual-list](https://virtuallist.svelte.page) | Virtual scrolling for Svelte |\n| [@humanspeak/svelte-motion](https://motion.svelte.page) | Framer Motion for Svelte 5 |\n| [@humanspeak/svelte-headless-table](https://table.svelte.page) | Headless data tables for Svelte |\n| [@humanspeak/svelte-diff](https://diff.svelte.page) | Diff comparison for Svelte |\n| [@humanspeak/svelte-purify](https://purify.svelte.page) | HTML sanitisation for Svelte |\n| [@humanspeak/svelte-virtual-chat](https://virtualchat.svelte.page) | Virtual chat viewport for Svelte 5 |\n| **[@humanspeak/memory-cache](https://memory.svelte.page)** — _this package_ | In-memory cache for TypeScript |\n| [@humanspeak/svelte-json-view-lite](https://jsonview.svelte.page) | JSON tree viewer for Svelte 5 |\n| [@humanspeak/svelte-scoped-props](https://scoped.svelte.page) | Scoped class props for Svelte |\n<!-- prettier-ignore-end -->\n\n## License\n\nMIT © [Humanspeak, Inc.](LICENSE)\n\n## Credits\n\nMade with ❤️ by [Humanspeak](https://humanspeak.com)\n\n<!-- docs-kit:ecosystem end -->\n","readmeFilename":""}