{"_id":"mem","_rev":"296216","name":"mem","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","dist-tags":{"latest":"10.0.0","next":"7.0.0-3"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"time":{"modified":"2023-12-30T04:05:02.000Z","created":"2015-12-21T18:44:14.279Z","10.0.0":"2023-11-14T15:58:40.312Z","9.0.2":"2022-01-15T07:56:42.818Z","9.0.1":"2021-07-17T15:03:47.082Z","9.0.0":"2021-07-13T09:45:39.893Z","8.1.1":"2021-04-20T15:49:07.407Z","8.1.0":"2021-03-18T13:47:38.310Z","8.0.0":"2020-10-10T16:25:52.870Z","7.0.0-3":"2020-10-06T06:25:52.072Z","7.0.0-2":"2020-10-01T09:07:02.292Z","7.0.0-1":"2020-10-01T02:48:25.698Z","7.0.0-0":"2020-10-01T02:21:25.656Z","6.1.1":"2020-08-29T21:55:55.811Z","6.1.0":"2020-04-12T14:23:18.378Z","6.0.1":"2019-11-29T13:29:37.074Z","6.0.0":"2019-11-11T09:23:28.762Z","5.1.1":"2019-06-29T20:05:51.216Z","5.1.0":"2019-06-15T13:14:37.532Z","5.0.0":"2019-05-17T17:25:34.041Z","4.3.0":"2019-03-31T19:09:03.906Z","4.2.0":"2019-03-12T17:41:47.237Z","4.1.0":"2019-01-30T08:45:27.864Z","4.0.0":"2018-08-27T17:33:38.386Z","3.0.1":"2018-06-20T06:38:02.452Z","3.0.0":"2017-10-11T15:56:14.080Z","2.0.0":"2017-09-25T06:32:08.213Z","1.1.0":"2016-10-19T18:05:26.119Z","1.0.0":"2016-10-19T17:34:31.486Z","0.1.1":"2016-02-02T15:53:17.433Z","0.1.0":"2015-12-21T18:44:14.279Z"},"users":{},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"versions":{"10.0.0":{"name":"mem","version":"10.0.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./dist/index.js","engines":{"node":">=12.20"},"scripts":{"test":"npm run build","build":"del-cli dist && tsc","prepack":"npm run build"},"types":"dist/index.d.ts","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^4.0.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^1.0.2","@types/serialize-javascript":"^4.0.0","ava":"^3.15.0","del-cli":"^3.0.1","delay":"^4.4.0","serialize-javascript":"^5.0.1","ts-node":"^10.1.0","tsd":"^0.13.1","typescript":"^4.3.5","xo":"^0.41.0"},"ava":{"timeout":"1m","extensions":{"ts":"module"},"nonSemVerExperiments":{"configurableModuleFormat":true},"nodeArguments":["--loader=ts-node/esm"]},"xo":{"rules":{"@typescript-eslint/member-ordering":"off","@typescript-eslint/no-var-requires":"off","@typescript-eslint/no-empty-function":"off"}},"gitHead":"542f8c5c045ad1a52799b82a36fcddc39ca2d3c1","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@10.0.0","_nodeVersion":"16.20.0","_npmVersion":"9.2.0","dist":{"shasum":"08348356ec2c62148d788f07f2e781dea68524cd","size":5710,"noattachment":false,"key":"/mem/-/mem-10.0.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-10.0.0.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_10.0.0_1699977520049_0.019182535684899804"},"_hasShrinkwrap":false,"deprecated":"Renamed to memoize: https://www.npmjs.com/package/memoize","_cnpmcore_publish_time":"2023-11-14T15:58:40.312Z","publish_time":1699977520312,"_source_registry_name":"default","_cnpm_publish_time":1699977520312},"9.0.2":{"name":"mem","version":"9.0.2","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./dist/index.js","engines":{"node":">=12.20"},"scripts":{"test":"xo && ava && npm run build && tsd","build":"del-cli dist && tsc","prepack":"npm run build"},"types":"dist/index.d.ts","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^4.0.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^1.0.2","@types/serialize-javascript":"^4.0.0","ava":"^3.15.0","del-cli":"^3.0.1","delay":"^4.4.0","serialize-javascript":"^5.0.1","ts-node":"^10.1.0","tsd":"^0.13.1","typescript":"^4.3.5","xo":"^0.41.0"},"ava":{"timeout":"1m","extensions":{"ts":"module"},"nonSemVerExperiments":{"configurableModuleFormat":true},"nodeArguments":["--loader=ts-node/esm"]},"xo":{"rules":{"@typescript-eslint/member-ordering":"off","@typescript-eslint/no-var-requires":"off","@typescript-eslint/no-empty-function":"off"}},"gitHead":"542f8c5c045ad1a52799b82a36fcddc39ca2d3c1","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@9.0.2","_nodeVersion":"14.17.5","_npmVersion":"8.1.0","dist":{"shasum":"bbc2d40be045afe30749681e8f5d554cee0c0354","size":5719,"noattachment":false,"key":"/mem/-/mem-9.0.2.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-9.0.2.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_9.0.2_1642233402700_0.028508860079586862"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-15T07:57:41.776Z","publish_time":1642233402818,"_cnpm_publish_time":1642233402818},"9.0.1":{"name":"mem","version":"9.0.1","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./dist/index.js","engines":{"node":">=12.20"},"scripts":{"test":"xo && ava && npm run build && tsd","build":"del-cli dist && tsc","prepack":"npm run build"},"types":"dist/index.d.ts","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^4.0.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^1.0.2","@types/serialize-javascript":"^4.0.0","ava":"^3.15.0","del-cli":"^3.0.1","delay":"^4.4.0","serialize-javascript":"^5.0.1","ts-node":"^10.1.0","tsd":"^0.13.1","typescript":"^4.3.5","xo":"^0.41.0"},"ava":{"timeout":"1m","extensions":{"ts":"module"},"nonSemVerExperiments":{"configurableModuleFormat":true},"nodeArguments":["--loader=ts-node/esm"]},"xo":{"rules":{"@typescript-eslint/member-ordering":"off","@typescript-eslint/no-var-requires":"off","@typescript-eslint/no-empty-function":"off"}},"gitHead":"f2ee598fbde2e52289889abc7f179b5a483bff2e","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@9.0.1","_nodeVersion":"14.16.1","_npmVersion":"7.10.0","dist":{"shasum":"11e2b0697f4216b5c1f9ed00186b8a506425a894","size":5589,"noattachment":false,"key":"/mem/-/mem-9.0.1.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-9.0.1.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_9.0.1_1626534226918_0.1646356228608541"},"_hasShrinkwrap":false,"publish_time":1626534227082,"_cnpm_publish_time":1626534227082,"_cnpmcore_publish_time":"2021-12-14T07:14:11.583Z"},"9.0.0":{"name":"mem","version":"9.0.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./dist/index.js","engines":{"node":">=12.20"},"scripts":{"test":"xo && ava && npm run build && tsd","build":"del-cli dist && tsc","prepack":"npm run build"},"types":"dist/index.d.ts","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^4.0.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^1.0.2","@types/serialize-javascript":"^4.0.0","ava":"^3.15.0","del-cli":"^3.0.1","delay":"^4.4.0","serialize-javascript":"^5.0.1","ts-node":"^10.1.0","tsd":"^0.13.1","typescript":"^4.3.5","xo":"^0.41.0"},"ava":{"timeout":"1m","extensions":{"ts":"module"},"nonSemVerExperiments":{"configurableModuleFormat":true},"nodeArguments":["--loader=ts-node/esm"]},"xo":{"rules":{"@typescript-eslint/member-ordering":"off","@typescript-eslint/no-var-requires":"off","@typescript-eslint/no-empty-function":"off"}},"gitHead":"3b1b8a7ca1cba95a5bb337b3ad61134945ee835e","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@9.0.0","_nodeVersion":"12.22.1","_npmVersion":"7.10.0","dist":{"shasum":"462dc60ab05b117b07a3787c3eb3b7fa314d106a","size":5602,"noattachment":false,"key":"/mem/-/mem-9.0.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-9.0.0.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_9.0.0_1626169539751_0.8293745345488794"},"_hasShrinkwrap":false,"publish_time":1626169539893,"_cnpm_publish_time":1626169539893,"_cnpmcore_publish_time":"2021-12-14T07:14:11.843Z"},"8.1.1":{"name":"mem","version":"8.1.1","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=10"},"scripts":{"test":"xo && npm run build && tsd && ava","build":"del-cli dist && tsc","prepack":"npm run build"},"main":"dist","types":"dist/index.d.ts","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.1.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^0.7.0","@types/serialize-javascript":"^4.0.0","ava":"^3.15.0","del-cli":"^3.0.1","delay":"^4.4.0","serialize-javascript":"^5.0.1","tsd":"^0.13.1","typescript":"^4.0.3","xo":"^0.38.2"},"ava":{"files":["test.ts"],"timeout":"1m","typescript":{"rewritePaths":{"./":"dist/"}}},"xo":{"rules":{"@typescript-eslint/member-ordering":"off","@typescript-eslint/no-var-requires":"off","@typescript-eslint/no-empty-function":"off"}},"gitHead":"a473986d82cd3dbc61898b376d4cfc490e43aa0b","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@8.1.1","_nodeVersion":"12.20.1","_npmVersion":"6.14.10","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"cf118b357c65ab7b7e0817bdf00c8062297c0122","size":5660,"noattachment":false,"key":"/mem/-/mem-8.1.1.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-8.1.1.tgz"},"directories":{},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_8.1.1_1618933747284_0.1715317913055432"},"_hasShrinkwrap":false,"publish_time":1618933747407,"_cnpm_publish_time":1618933747407,"_cnpmcore_publish_time":"2021-12-14T07:14:12.034Z"},"8.1.0":{"name":"mem","version":"8.1.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=10"},"scripts":{"test":"xo && npm run build && tsd && ava","build":"del-cli dist && tsc","prepack":"npm run build"},"main":"dist","types":"dist/index.d.ts","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.1.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^0.7.0","@types/serialize-javascript":"^4.0.0","ava":"^3.15.0","del-cli":"^3.0.1","delay":"^4.4.0","serialize-javascript":"^5.0.1","tsd":"^0.13.1","typescript":"^4.0.3","xo":"^0.38.2"},"ava":{"files":["test.ts"],"timeout":"1m","typescript":{"rewritePaths":{"./":"dist/"}}},"xo":{"rules":{"@typescript-eslint/member-ordering":"off","@typescript-eslint/no-var-requires":"off","@typescript-eslint/no-empty-function":"off"}},"gitHead":"7783e43d2e506cb6ebd1a56d1d25f1b9a9044a94","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@8.1.0","_nodeVersion":"12.20.1","_npmVersion":"6.14.10","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"445e47827fb757a4e5f35b0a6a62743cbfdc0a0d","size":5366,"noattachment":false,"key":"/mem/-/mem-8.1.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-8.1.0.tgz"},"directories":{},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_8.1.0_1616075258077_0.8449168720480835"},"_hasShrinkwrap":false,"publish_time":1616075258310,"_cnpm_publish_time":1616075258310},"8.0.0":{"name":"mem","version":"8.0.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=10"},"scripts":{"test":"xo && npm run build && tsd && ava","build":"del-cli dist && tsc","prepack":"npm run build"},"main":"dist","types":"dist/index.d.ts","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.1.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^0.7.0","@types/serialize-javascript":"^4.0.0","ava":"^3.13.0","del-cli":"^3.0.1","delay":"^4.4.0","serialize-javascript":"^5.0.1","tsd":"^0.13.1","typescript":"^4.0.3","xo":"^0.33.1"},"ava":{"files":["test.ts"],"timeout":"1m","typescript":{"rewritePaths":{"./":"dist/"}}},"xo":{"rules":{"@typescript-eslint/member-ordering":"off","@typescript-eslint/no-var-requires":"off","@typescript-eslint/no-empty-function":"off"}},"gitHead":"3bbfa2439df58e46ba917aa3e7eb0d9d0bccc0f2","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@8.0.0","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"b5e4b6d2d241c6296da05436173b4d0c7ae1f9ac","size":5081,"noattachment":false,"key":"/mem/-/mem-8.0.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-8.0.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_8.0.0_1602347152712_0.37521709756771005"},"_hasShrinkwrap":false,"publish_time":1602347152870,"_cnpm_publish_time":1602347152870},"7.0.0-3":{"name":"mem","version":"7.0.0-3","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=10"},"scripts":{"test":"xo && npm run build && tsd && ava","build":"del-cli dist && tsc","prepack":"npm run build"},"main":"dist","types":"dist/index.d.ts","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.0.0"},"devDependencies":{"@sindresorhus/tsconfig":"^0.7.0","ava":"^3.13.0","del-cli":"^3.0.1","delay":"^4.1.0","serialize-javascript":"^5.0.1","tsd":"^0.13.1","typescript":"^4.0.3","xo":"^0.33.1"},"readmeFilename":"readme.md","gitHead":"de486e4b344fd4f4315aecb4055a8c4e8e119d86","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@7.0.0-3","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"d3c44d02713c56eb196ed959cc530c68474ec8cd","size":4940,"noattachment":false,"key":"/mem/-/mem-7.0.0-3.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-7.0.0-3.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmUser":{"name":"fregante","email":"opensource@bfred.it"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_7.0.0-3_1601965551939_0.5177473435317104"},"_hasShrinkwrap":false,"publish_time":1601965552072,"_cnpm_publish_time":1601965552072},"7.0.0-2":{"name":"mem","version":"7.0.0-2","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=10"},"scripts":{"test":"xo && npm run build && ava","build":"del-cli dist && tsc","prepack":"npm run build"},"main":"dist","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.0.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^0.7.0","@types/serialize-javascript":"^4.0.0","ava":"^3.13.0","del-cli":"^3.0.1","delay":"^4.1.0","serialize-javascript":"^5.0.1","typescript":"^4.0.3","xo":"^0.33.1"},"ava":{"files":["test.ts"],"timeout":"1m","typescript":{"rewritePaths":{"./":"dist/"}}},"xo":{"rules":{"@typescript-eslint/no-var-requires":"off","@typescript-eslint/no-empty-function":"off"}},"readmeFilename":"readme.md","gitHead":"be5f6db8401486b597b280e40d18910690f6c737","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@7.0.0-2","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"f88933ed3b7843ba1a8a89ac99c2910223711bfb","size":5032,"noattachment":false,"key":"/mem/-/mem-7.0.0-2.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-7.0.0-2.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmUser":{"name":"fregante","email":"opensource@bfred.it"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_7.0.0-2_1601543222172_0.814094441690246"},"_hasShrinkwrap":false,"publish_time":1601543222292,"_cnpm_publish_time":1601543222292},"7.0.0-1":{"name":"mem","version":"7.0.0-1","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && npm run build && ava","build":"del-cli dist && tsc","prepack":"npm run build"},"main":"dist","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.0.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^0.7.0","ava":"^2.4.0","del-cli":"^3.0.1","delay":"^4.1.0","serialize-javascript":"^2.1.0","typescript":"^4.0.3","xo":"^0.25.3"},"gitHead":"28a9618f00ec98162d26e5616595831c71a3472c","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@7.0.0-1","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"0a98d4c7f9f06bcb8b325fe50a14174255ec6f8d","size":4931,"noattachment":false,"key":"/mem/-/mem-7.0.0-1.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-7.0.0-1.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmUser":{"name":"fregante","email":"opensource@bfred.it"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_7.0.0-1_1601520505592_0.17666955862077294"},"_hasShrinkwrap":false,"publish_time":1601520505698,"_cnpm_publish_time":1601520505698},"7.0.0-0":{"name":"mem","version":"7.0.0-0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && npm run build && ava","build":"del-cli dist && tsc","prepack":"npm run build"},"main":"dist","keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.0.0"},"devDependencies":{"@ava/typescript":"^1.1.1","@sindresorhus/tsconfig":"^0.7.0","ava":"^2.4.0","del-cli":"^3.0.1","delay":"^4.1.0","serialize-javascript":"^2.1.0","typescript":"^4.0.3","xo":"^0.25.3"},"readmeFilename":"readme.md","gitHead":"c7278273a12dc52f0d31fa32618e1c0c53e5f75a","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@7.0.0-0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"9c201deb5666116ce445083142152f2f7104d189","size":4918,"noattachment":false,"key":"/mem/-/mem-7.0.0-0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-7.0.0-0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmUser":{"name":"fregante","email":"opensource@bfred.it"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_7.0.0-0_1601518885488_0.6127079045959467"},"_hasShrinkwrap":false,"publish_time":1601518885656,"_cnpm_publish_time":1601518885656},"6.1.1":{"name":"mem","version":"6.1.1","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"funding":"https://github.com/sindresorhus/mem?sponsor=1","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.0.0"},"devDependencies":{"ava":"^2.4.0","delay":"^4.1.0","serialize-javascript":"^2.1.0","tsd":"^0.11.0","xo":"^0.25.3"},"gitHead":"807d7c0ef27c9d76fe682103ea39e6763abcf051","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@6.1.1","_nodeVersion":"10.22.0","_npmVersion":"6.14.7","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"ea110c2ebc079eca3022e6b08c85a795e77f6318","size":4836,"noattachment":false,"key":"/mem/-/mem-6.1.1.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-6.1.1.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_6.1.1_1598738155686_0.25783327221446584"},"_hasShrinkwrap":false,"publish_time":1598738155811,"_cnpm_publish_time":1598738155811},"6.1.0":{"name":"mem","version":"6.1.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.0.0"},"devDependencies":{"ava":"^2.4.0","delay":"^4.1.0","serialize-javascript":"^2.1.0","tsd":"^0.11.0","xo":"^0.25.3"},"gitHead":"4646f004f3b6e528ae889e7c82e75bf6d02b9263","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@6.1.0","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"846eca0bd4708a8f04b9c3f3cd769e194ae63c5c","size":4964,"noattachment":false,"key":"/mem/-/mem-6.1.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-6.1.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_6.1.0_1586701398069_0.07114174247388583"},"_hasShrinkwrap":false,"publish_time":1586701398378,"_cnpm_publish_time":1586701398378},"6.0.1":{"name":"mem","version":"6.0.1","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.0.0"},"devDependencies":{"ava":"^2.4.0","delay":"^4.1.0","serialize-javascript":"^2.1.0","tsd":"^0.11.0","xo":"^0.25.3"},"gitHead":"9d5661e63642c250818306f37af8497eb61e2c11","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@6.0.1","_nodeVersion":"13.2.0","_npmVersion":"6.13.1","dist":{"shasum":"3f8ad1b0f8c4e00daf07f104e95b9d78131d7908","size":3874,"noattachment":false,"key":"/mem/-/mem-6.0.1.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-6.0.1.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmUser":{"name":"bfred-it","email":"npm@bfred.it"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_6.0.1_1575034176954_0.8670781925593525"},"_hasShrinkwrap":false,"publish_time":1575034177074,"_cnpm_publish_time":1575034177074},"6.0.0":{"name":"mem","version":"6.0.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^3.0.0"},"devDependencies":{"ava":"^2.4.0","delay":"^4.1.0","serialize-javascript":"^2.1.0","tsd":"^0.10.0","xo":"^0.25.3"},"gitHead":"b154f53ad72ac76277c0cc2844febf1cd2df1795","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@6.0.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"f79bb110b90b688a2d1468566e66a911794abee5","size":3864,"noattachment":false,"key":"/mem/-/mem-6.0.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-6.0.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_6.0.0_1573464208617_0.15677627413666806"},"_hasShrinkwrap":false,"publish_time":1573464208762,"_cnpm_publish_time":1573464208762},"5.1.1":{"name":"mem","version":"5.1.1","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^2.1.0","p-is-promise":"^2.1.0"},"devDependencies":{"ava":"^1.4.1","delay":"^4.1.0","tsd":"^0.7.3","xo":"^0.24.0"},"gitHead":"0ca0b20e1c9a6280028414fac43d2901a5ae105e","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@5.1.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"7059b67bf9ac2c924c9f1cff7155a064394adfb3","size":3702,"noattachment":false,"key":"/mem/-/mem-5.1.1.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-5.1.1.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_5.1.1_1561838751067_0.6864618207106226"},"_hasShrinkwrap":false,"publish_time":1561838751216,"_cnpm_publish_time":1561838751216},"5.1.0":{"name":"mem","version":"5.1.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^2.1.0","p-is-promise":"^2.1.0"},"devDependencies":{"ava":"^1.4.1","delay":"^4.1.0","tsd":"^0.7.3","xo":"^0.24.0"},"gitHead":"ce7f3b7135e32d80877dedf0f0b7bd3e14d0ad91","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@5.1.0","_nodeVersion":"8.16.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"b94ee9b888d26928dd9d91cab107fa04b925730b","size":3708,"noattachment":false,"key":"/mem/-/mem-5.1.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-5.1.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_5.1.0_1560604477397_0.4599413287436944"},"_hasShrinkwrap":false,"publish_time":1560604477532,"_cnpm_publish_time":1560604477532},"5.0.0":{"name":"mem","version":"5.0.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.3","mimic-fn":"^2.1.0","p-is-promise":"^2.1.0"},"devDependencies":{"ava":"^1.4.1","delay":"^4.1.0","tsd":"^0.7.3","xo":"^0.24.0"},"gitHead":"05c983b2d96cd24747a310d80de7ae7ba92dc2db","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@5.0.0","_nodeVersion":"8.16.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"c50f16afce423279080b174f0864d014c46a54e6","size":3593,"noattachment":false,"key":"/mem/-/mem-5.0.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-5.0.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_5.0.0_1558113933912_0.8522334849958171"},"_hasShrinkwrap":false,"publish_time":1558113934041,"_cnpm_publish_time":1558113934041},"4.3.0":{"name":"mem","version":"4.3.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava && tsd"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.1","mimic-fn":"^2.0.0","p-is-promise":"^2.0.0"},"devDependencies":{"ava":"^1.4.1","delay":"^4.1.0","tsd":"^0.7.1","xo":"^0.24.0"},"gitHead":"0e9275ea32d5e5343eeab31ceb0271f9f42c85b5","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@4.3.0","_nodeVersion":"8.15.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"461af497bc4ae09608cdb2e60eefb69bff744178","size":3609,"noattachment":false,"key":"/mem/-/mem-4.3.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-4.3.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_4.3.0_1554059343791_0.002943299052651671"},"_hasShrinkwrap":false,"publish_time":1554059343906,"_cnpm_publish_time":1554059343906},"4.2.0":{"name":"mem","version":"4.2.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava && tsd-check"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.1","mimic-fn":"^2.0.0","p-is-promise":"^2.0.0"},"devDependencies":{"ava":"^1.3.1","delay":"^4.1.0","tsd-check":"^0.3.0","xo":"^0.24.0"},"gitHead":"6959d903627d24da2e31a9da686327daf86f2dda","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@4.2.0","_nodeVersion":"8.15.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"5ee057680ed9cb8dad8a78d820f9a8897a102025","size":3520,"noattachment":false,"key":"/mem/-/mem-4.2.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-4.2.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_4.2.0_1552412506855_0.4573656395957444"},"_hasShrinkwrap":false,"publish_time":1552412507237,"_cnpm_publish_time":1552412507237},"4.1.0":{"name":"mem","version":"4.1.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava"},"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.1","mimic-fn":"^1.0.0","p-is-promise":"^2.0.0"},"devDependencies":{"ava":"^1.0.1","delay":"^4.1.0","xo":"^0.23.0"},"gitHead":"a583160e36a088d565a82d11dfea3e78755cca18","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@4.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"aeb9be2d21f47e78af29e4ac5978e8afa2ca5b8a","size":3087,"noattachment":false,"key":"/mem/-/mem-4.1.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-4.1.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_4.1.0_1548837927747_0.5551694125271442"},"_hasShrinkwrap":false,"publish_time":1548837927864,"_cnpm_publish_time":1548837927864},"4.0.0":{"name":"mem","version":"4.0.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"map-age-cleaner":"^0.1.1","mimic-fn":"^1.0.0","p-is-promise":"^1.1.0"},"devDependencies":{"ava":"*","delay":"^3.0.0","xo":"*"},"gitHead":"159369f78b3dc80b72c999e11ba1b350376cc3e4","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@4.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"6437690d9471678f6cc83659c00cbafcd6b0cdaf","size":3031,"noattachment":false,"key":"/mem/-/mem-4.0.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-4.0.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_4.0.0_1535391218283_0.18788295308356084"},"_hasShrinkwrap":false,"publish_time":1535391218386,"_cnpm_publish_time":1535391218386},"3.0.1":{"name":"mem","version":"3.0.1","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"mimic-fn":"^1.0.0","p-is-promise":"^1.1.0"},"devDependencies":{"ava":"*","delay":"^2.0.0","xo":"*"},"gitHead":"16ff264ad0b1b7a2bfb8b8003dab2dc27c4d89d1","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@3.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.2","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"152410d0d7e835e4a4363e626238d9e5be3d6f5a","size":2965,"noattachment":false,"key":"/mem/-/mem-3.0.1.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-3.0.1.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem_3.0.1_1529476682375_0.6427172635818768"},"_hasShrinkwrap":false,"publish_time":1529476682452,"_cnpm_publish_time":1529476682452},"3.0.0":{"name":"mem","version":"3.0.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"mimic-fn":"^1.0.0","p-is-promise":"^1.1.0"},"devDependencies":{"ava":"*","delay":"^2.0.0","xo":"*"},"gitHead":"74439cc052c3bec1ec18b312f8913011dc262ed7","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@3.0.0","_shasum":"84e58ad4dfbdf5d105b26b6548a398b2b3aa8a21","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.8.3","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"84e58ad4dfbdf5d105b26b6548a398b2b3aa8a21","size":2964,"noattachment":false,"key":"/mem/-/mem-3.0.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-3.0.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem-3.0.0.tgz_1507737373888_0.41107727540656924"},"directories":{},"publish_time":1507737374080,"_hasShrinkwrap":false,"_cnpm_publish_time":1507737374080},"2.0.0":{"name":"mem","version":"2.0.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"mimic-fn":"^1.0.0","p-is-promise":"^1.1.0"},"devDependencies":{"ava":"*","delay":"^2.0.0","xo":"*"},"gitHead":"009ce6a634d1f0d0a6cb0c93d1f59a17b8d6b2ed","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@2.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"37b692533f101bec274c81a76c7bf4cd57fda89f","size":2971,"noattachment":false,"key":"/mem/-/mem-2.0.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-2.0.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mem-2.0.0.tgz_1506321128100_0.6689927573315799"},"directories":{},"publish_time":1506321128213,"_hasShrinkwrap":false,"_cnpm_publish_time":1506321128213},"1.1.0":{"name":"mem","version":"1.1.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"mimic-fn":"^1.0.0"},"devDependencies":{"ava":"*","delay":"^1.1.0","xo":"*"},"xo":{"esnext":true},"gitHead":"c12270441fab7f42fe53cf97edd53c60c4a8268f","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@1.1.0","_shasum":"5edd52b485ca1d900fe64895505399a0dfa45f76","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"5edd52b485ca1d900fe64895505399a0dfa45f76","size":2765,"noattachment":false,"key":"/mem/-/mem-1.1.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-1.1.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/mem-1.1.0.tgz_1476900325889_0.8028518599458039"},"directories":{},"publish_time":1476900326119,"_cnpm_publish_time":1476900326119,"_hasShrinkwrap":false},"1.0.0":{"name":"mem","version":"1.0.0","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"dependencies":{"mimic-fn":"^1.0.0"},"devDependencies":{"ava":"*","delay":"^1.1.0","xo":"*"},"xo":{"esnext":true},"gitHead":"2d45828833f4ab36d60d87a4b5b8032c822b2f22","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@1.0.0","_shasum":"cb8ca87e412dd14b68c8439069c6ee0f51ee99db","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"cb8ca87e412dd14b68c8439069c6ee0f51ee99db","size":2676,"noattachment":false,"key":"/mem/-/mem-1.0.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-1.0.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/mem-1.0.0.tgz_1476898471266_0.8245243555866182"},"directories":{},"publish_time":1476898471486,"_cnpm_publish_time":1476898471486,"_hasShrinkwrap":false},"0.1.1":{"name":"mem","version":"0.1.1","description":"Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/mem.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"devDependencies":{"ava":"*","delay":"^1.1.0","xo":"*"},"gitHead":"65d4ab7fb3b43b71b3c968eff65329c8ebb3eee8","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem#readme","_id":"mem@0.1.1","_shasum":"24df988c3102b03c074c1b296239c5b2e6647825","_from":".","_npmVersion":"3.7.0","_nodeVersion":"4.2.4","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"24df988c3102b03c074c1b296239c5b2e6647825","size":2507,"noattachment":false,"key":"/mem/-/mem-0.1.1.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-0.1.1.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/mem-0.1.1.tgz_1454428396859_0.8970216677989811"},"directories":{},"publish_time":1454428397433,"_cnpm_publish_time":1454428397433,"_hasShrinkwrap":false},"0.1.0":{"name":"mem","version":"0.1.0","description":"Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical inputs","license":"MIT","repository":{"type":"git","url":"https://github.com/sindresorhus/mem"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["memoize","function","mem","memoization","cache","caching","optimize","performance","ttl","expire","promise"],"devDependencies":{"ava":"*","delay":"^1.1.0","xo":"*"},"gitHead":"863a48adf8f83437383cdb3422a7c5d84f01654a","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"homepage":"https://github.com/sindresorhus/mem","_id":"mem@0.1.0","_shasum":"8aeb2b7a43e44d74c5cbbf5397e22255c747a5c2","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"8aeb2b7a43e44d74c5cbbf5397e22255c747a5c2","size":2509,"noattachment":false,"key":"/mem/-/mem-0.1.0.tgz","tarball":"http://name.csiicloud.com:7001/mem/download/mem-0.1.0.tgz"},"maintainers":[{"name":"fregante","email":""},{"name":"sindresorhus","email":""}],"directories":{},"publish_time":1450723454279,"_cnpm_publish_time":1450723454279,"_hasShrinkwrap":false}},"readme":"# mem\n\n> [Memoize](https://en.wikipedia.org/wiki/Memoization) functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input\n\nMemory is automatically released when an item expires or the cache is cleared.\n\n<!-- Please keep this section in sync with https://github.com/sindresorhus/p-memoize/blob/main/readme.md -->\n\nBy default, **only the memoized function's first argument is considered** via strict equality comparison. If you need to cache multiple arguments or cache `object`s *by value*, have a look at alternative [caching strategies](#caching-strategy) below.\n\nIf you want to memoize Promise-returning functions (like `async` functions), you might be better served by [p-memoize](https://github.com/sindresorhus/p-memoize).\n\n## Install\n\n```\n$ npm install mem\n```\n\n## Usage\n\n```js\nimport mem from 'mem';\n\nlet index = 0;\nconst counter = () => ++index;\nconst memoized = mem(counter);\n\nmemoized('foo');\n//=> 1\n\n// Cached as it's the same argument\nmemoized('foo');\n//=> 1\n\n// Not cached anymore as the argument changed\nmemoized('bar');\n//=> 2\n\nmemoized('bar');\n//=> 2\n\n// Only the first argument is considered by default\nmemoized('bar', 'foo');\n//=> 2\n```\n\n##### Works well with Promise-returning functions\n\nBut you might want to use [p-memoize](https://github.com/sindresorhus/p-memoize) for more Promise-specific behaviors.\n\n```js\nimport mem from 'mem';\n\nlet index = 0;\nconst counter = async () => ++index;\nconst memoized = mem(counter);\n\nconsole.log(await memoized());\n//=> 1\n\n// The return value didn't increase as it's cached\nconsole.log(await memoized());\n//=> 1\n```\n\n```js\nimport mem from 'mem';\nimport got from 'got';\nimport delay from 'delay';\n\nconst memGot = mem(got, {maxAge: 1000});\n\nawait memGot('https://sindresorhus.com');\n\n// This call is cached\nawait memGot('https://sindresorhus.com');\n\nawait delay(2000);\n\n// This call is not cached as the cache has expired\nawait memGot('https://sindresorhus.com');\n```\n\n### Caching strategy\n\nBy default, only the first argument is compared via exact equality (`===`) to determine whether a call is identical.\n\n```js\nconst power = mem((a, b) => Math.power(a, b));\n\npower(2, 2); // => 4, stored in cache with the key 2 (number)\npower(2, 3); // => 4, retrieved from cache at key 2 (number), it's wrong\n```\n\nYou will have to use the `cache` and `cacheKey` options appropriate to your function. In this specific case, the following could work:\n\n```js\nconst power = mem((a, b) => Math.power(a, b), {\n  cacheKey: arguments_ => arguments_.join(',')\n});\n\npower(2, 2); // => 4, stored in cache with the key '2,2' (both arguments as one string)\npower(2, 3); // => 8, stored in cache with the key '2,3'\n```\n\nMore advanced examples follow.\n\n#### Example: Options-like argument\n\nIf your function accepts an object, it won't be memoized out of the box:\n\n```js\nconst heavyMemoizedOperation = mem(heavyOperation);\n\nheavyMemoizedOperation({full: true}); // Stored in cache with the object as key\nheavyMemoizedOperation({full: true}); // Stored in cache with the object as key, again\n// The objects look the same but for JS they're two different objects\n```\n\nYou might want to serialize or hash them, for example using `JSON.stringify` or something like [serialize-javascript](https://github.com/yahoo/serialize-javascript), which can also serialize `RegExp`, `Date` and so on.\n\n```js\nconst heavyMemoizedOperation = mem(heavyOperation, {cacheKey: JSON.stringify});\n\nheavyMemoizedOperation({full: true}); // Stored in cache with the key '[{\"full\":true}]' (string)\nheavyMemoizedOperation({full: true}); // Retrieved from cache\n```\n\nThe same solution also works if it accepts multiple serializable objects:\n\n```js\nconst heavyMemoizedOperation = mem(heavyOperation, {cacheKey: JSON.stringify});\n\nheavyMemoizedOperation('hello', {full: true}); // Stored in cache with the key '[\"hello\",{\"full\":true}]' (string)\nheavyMemoizedOperation('hello', {full: true}); // Retrieved from cache\n```\n\n#### Example: Multiple non-serializable arguments\n\nIf your function accepts multiple arguments that aren't supported by `JSON.stringify` (e.g. DOM elements and functions), you can instead extend the initial exact equality (`===`) to work on multiple arguments using [`many-keys-map`](https://github.com/fregante/many-keys-map):\n\n```js\nimport ManyKeysMap from 'many-keys-map';\n\nconst addListener = (emitter, eventName, listener) => emitter.on(eventName, listener);\n\nconst addOneListener = mem(addListener, {\n\tcacheKey: arguments_ => arguments_, // Use *all* the arguments as key\n\tcache: new ManyKeysMap() // Correctly handles all the arguments for exact equality\n});\n\naddOneListener(header, 'click', console.log); // `addListener` is run, and it's cached with the `arguments` array as key\naddOneListener(header, 'click', console.log); // `addListener` is not run again\naddOneListener(mainContent, 'load', console.log); // `addListener` is run, and it's cached with the `arguments` array as key\n```\n\nBetter yet, if your function’s arguments are compatible with `WeakMap`, you should use [`deep-weak-map`](https://github.com/futpib/deep-weak-map) instead of `many-keys-map`. This will help avoid memory leaks.\n\n## API\n\n### mem(fn, options?)\n\n#### fn\n\nType: `Function`\n\nFunction to be memoized.\n\n#### options\n\nType: `object`\n\n##### maxAge\n\nType: `number`\\\nDefault: `Infinity`\n\nMilliseconds until the cache expires.\n\n##### cacheKey\n\nType: `Function`\\\nDefault: `arguments_ => arguments_[0]`\\\nExample: `arguments_ => JSON.stringify(arguments_)`\n\nDetermines the cache key for storing the result based on the function arguments. By default, **only the first argument is considered**.\n\nA `cacheKey` function can return any type supported by `Map` (or whatever structure you use in the `cache` option).\n\nRefer to the [caching strategies](#caching-strategy) section for more information.\n\n##### cache\n\nType: `object`\\\nDefault: `new Map()`\n\nUse a different cache storage. Must implement the following methods: `.has(key)`, `.get(key)`, `.set(key, value)`, `.delete(key)`, and optionally `.clear()`. You could for example use a `WeakMap` instead or [`quick-lru`](https://github.com/sindresorhus/quick-lru) for a LRU cache.\n\nRefer to the [caching strategies](#caching-strategy) section for more information.\n\n### memDecorator(options)\n\nReturns a [decorator](https://github.com/tc39/proposal-decorators) to memoize class methods or static class methods.\n\nNotes:\n\n- Only class methods and getters/setters can be memoized, not regular functions (they aren't part of the proposal);\n- Only [TypeScript’s decorators](https://www.typescriptlang.org/docs/handbook/decorators.html#parameter-decorators) are supported, not [Babel’s](https://babeljs.io/docs/en/babel-plugin-proposal-decorators), which use a different version of the proposal;\n- Being an experimental feature, they need to be enabled with `--experimentalDecorators`; follow TypeScript’s docs.\n\n#### options\n\nType: `object`\n\nSame as options for `mem()`.\n\n```ts\nimport {memDecorator} from 'mem';\n\nclass Example {\n\tindex = 0\n\n\t@memDecorator()\n\tcounter() {\n\t\treturn ++this.index;\n\t}\n}\n\nclass ExampleWithOptions {\n\tindex = 0\n\n\t@memDecorator({maxAge: 1000})\n\tcounter() {\n\t\treturn ++this.index;\n\t}\n}\n```\n\n### memClear(fn)\n\nClear all cached data of a memoized function.\n\n#### fn\n\nType: `Function`\n\nMemoized function.\n\n## Tips\n\n### Cache statistics\n\nIf you want to know how many times your cache had a hit or a miss, you can make use of [stats-map](https://github.com/SamVerschueren/stats-map) as a replacement for the default cache.\n\n#### Example\n\n```js\nimport mem from 'mem';\nimport StatsMap from 'stats-map';\nimport got from 'got';\n\nconst cache = new StatsMap();\nconst memGot = mem(got, {cache});\n\nawait memGot('https://sindresorhus.com');\nawait memGot('https://sindresorhus.com');\nawait memGot('https://sindresorhus.com');\n\nconsole.log(cache.stats);\n//=> {hits: 2, misses: 1}\n```\n\n## Related\n\n- [p-memoize](https://github.com/sindresorhus/p-memoize) - Memoize promise-returning & async functions\n\n---\n\n<div align=\"center\">\n\t<b>\n\t\t<a href=\"https://tidelift.com/subscription/pkg/npm-mem?utm_source=npm-mem&utm_medium=referral&utm_campaign=readme\">Get professional support for this package with a Tidelift subscription</a>\n\t</b>\n\t<br>\n\t<sub>\n\t\tTidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.\n\t</sub>\n</div>\n","_attachments":{},"homepage":"https://github.com/sindresorhus/mem#readme","bugs":{"url":"https://github.com/sindresorhus/mem/issues"},"license":"MIT"}