{"_id":"mortice","_rev":"4578245","name":"mortice","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","dist-tags":{"latest":"3.3.1"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"time":{"modified":"2026-04-10T15:50:21.000Z","created":"2018-05-22T18:34:39.668Z","3.3.1":"2025-06-05T10:02:41.309Z","3.3.0":"2025-06-05T09:01:14.671Z","3.2.1":"2025-06-02T17:19:15.187Z","3.2.0":"2025-06-02T15:57:39.927Z","3.1.0":"2025-05-28T08:44:20.018Z","3.0.6":"2024-10-24T13:03:05.205Z","3.0.5":"2024-10-24T12:58:14.399Z","3.0.4":"2023-12-18T16:03:21.363Z","3.0.3":"2023-12-08T12:48:43.800Z","3.0.2":"2023-12-08T11:40:12.414Z","3.0.1":"2022-08-17T08:43:53.731Z","3.0.0":"2022-02-09T10:18:01.719Z","2.0.1":"2021-02-06T19:17:04.056Z","2.0.0":"2019-09-06T13:37:13.811Z","1.2.3":"2019-08-22T11:10:06.990Z","1.2.2":"2019-06-04T12:12:08.166Z","1.2.1":"2018-07-06T14:01:51.607Z","1.2.0":"2018-07-05T13:31:21.195Z","1.1.0":"2018-05-30T14:20:21.408Z","1.0.1":"2018-05-30T13:40:37.302Z","1.0.0":"2018-05-24T11:08:09.940Z","0.0.2":"2018-05-23T17:37:02.512Z","0.0.1":"2018-05-22T18:34:39.668Z"},"users":{},"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"versions":{"3.3.1":{"name":"mortice","version":"3.3.1","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["async","await","cluster","lock","mutex","read-write"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release","docs":"aegir docs","dep-check":"aegir dep-check -i esbuild","doc-check":"aegir doc-check"},"dependencies":{"abort-error":"^1.0.0","it-queue":"^1.1.0","main-event":"^1.0.0"},"devDependencies":{"aegir":"^47.0.15","delay":"^6.0.0","esbuild":"^0.25.4","execa":"^9.5.3","observable-webworkers":"^2.0.1","p-event":"^6.0.1","wherearewe":"^2.0.1"},"browser":{"node:cluster":false,"node:worker_threads":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js","./test/fixtures/worker-post-message.js":"./test/fixtures/worker-post-message.browser.js"},"react-native":{"./dist/src/node.js":"./dist/src/react-native.js","./src/node.js":"./src/react-native.js"},"_id":"mortice@3.3.1","gitHead":"51a28dc8e354afd755147904746d6b469c5a7492","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"shasum":"ff52db518da2f5f389abf987c01fc190638c6a2f","size":80761,"noattachment":false,"key":"/mortice/-/mortice-3.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.3.1.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mortice_3.3.1_1749117761141_0.16513561569430135"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-05T10:02:41.309Z","publish_time":1749117761309,"_source_registry_name":"default","_cnpm_publish_time":1749117761309},"3.3.0":{"name":"mortice","version":"3.3.0","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["async","await","cluster","lock","mutex","read-write"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release","docs":"aegir docs","dep-check":"aegir dep-check -i esbuild","doc-check":"aegir doc-check"},"dependencies":{"abort-error":"^1.0.0","it-queue":"^1.1.0","main-event":"^1.0.0"},"devDependencies":{"aegir":"^47.0.15","delay":"^6.0.0","esbuild":"^0.25.4","execa":"^9.5.3","observable-webworkers":"^2.0.1","p-event":"^6.0.1","wherearewe":"^2.0.1"},"browser":{"node:cluster":false,"node:worker_threads":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js","./test/fixtures/worker-post-message.js":"./test/fixtures/worker-post-message.browser.js"},"_id":"mortice@3.3.0","gitHead":"931efa94b1b0549fd86629ab5b908ad0b2c907e6","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"shasum":"66a3e8b8dad7a470de80939c57815c2eecc4000b","size":79694,"noattachment":false,"key":"/mortice/-/mortice-3.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.3.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mortice_3.3.0_1749114074485_0.9956403099639555"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-05T09:01:14.671Z","publish_time":1749114074671,"_source_registry_name":"default","_cnpm_publish_time":1749114074671},"3.2.1":{"name":"mortice","version":"3.2.1","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["async","await","cluster","lock","mutex","read-write"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release","docs":"aegir docs","dep-check":"aegir dep-check -i esbuild","doc-check":"aegir doc-check"},"dependencies":{"abort-error":"^1.0.0","it-queue":"^1.1.0","main-event":"^1.0.0"},"devDependencies":{"aegir":"^47.0.15","delay":"^6.0.0","esbuild":"^0.25.4","execa":"^9.5.3","observable-webworkers":"^2.0.1","wherearewe":"^2.0.1"},"browser":{"node:cluster":false,"node:worker_threads":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js","./test/fixtures/worker-post-message.js":"./test/fixtures/worker-post-message.browser.js"},"_id":"mortice@3.2.1","gitHead":"6a8ef14bcb3c099a6f1e452e42a0250f276cae99","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"shasum":"e001f687885d0a28a6006e524b62212a7c4c3b64","size":71445,"noattachment":false,"key":"/mortice/-/mortice-3.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.2.1.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mortice_3.2.1_1748884754995_0.19829579586134316"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-02T17:19:15.187Z","publish_time":1748884755187,"_source_registry_name":"default","_cnpm_publish_time":1748884755187},"3.2.0":{"name":"mortice","version":"3.2.0","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["async","await","cluster","lock","mutex","read-write"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release","docs":"aegir docs","dep-check":"aegir dep-check -i esbuild","doc-check":"aegir doc-check"},"dependencies":{"abort-error":"^1.0.0","it-queue":"^1.1.0","main-event":"^1.0.0","observable-webworkers":"^2.0.1"},"devDependencies":{"aegir":"^47.0.15","delay":"^6.0.0","esbuild":"^0.25.4","execa":"^9.5.3","wherearewe":"^2.0.1"},"browser":{"cluster":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js"},"_id":"mortice@3.2.0","gitHead":"fdbf373df7f314af1aa037ebd1c0025bd4af2eff","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"shasum":"a9b3dce8dbd80ed7d26e6cf00e731b166802999d","size":71211,"noattachment":false,"key":"/mortice/-/mortice-3.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.2.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mortice_3.2.0_1748879859728_0.1339663196178127"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-02T15:57:39.927Z","publish_time":1748879859927,"_source_registry_name":"default","_cnpm_publish_time":1748879859927},"3.1.0":{"name":"mortice","version":"3.1.0","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["async","await","cluster","lock","mutex","read-write"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release","docs":"aegir docs","dep-check":"aegir dep-check -i esbuild","doc-check":"aegir doc-check"},"dependencies":{"abort-error":"^1.0.0","observable-webworkers":"^2.0.1","p-queue":"^8.0.1"},"devDependencies":{"aegir":"^47.0.15","delay":"^6.0.0","esbuild":"^0.25.4","execa":"^9.5.3","wherearewe":"^2.0.1"},"browser":{"cluster":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js"},"_id":"mortice@3.1.0","gitHead":"8a99d85a97ebc4e2c80fa6bcc6a101bb2589c1ed","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"shasum":"f955d2d8b643cc9aebb7c94124fd92290d89baab","size":50510,"noattachment":false,"key":"/mortice/-/mortice-3.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.1.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mortice_3.1.0_1748421859837_0.0745757754618539"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-05-28T08:44:20.018Z","publish_time":1748421860018,"_source_registry_name":"default","_cnpm_publish_time":1748421860018},"3.0.6":{"name":"mortice","version":"3.0.6","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["async","await","cluster","lock","mutex","read-write"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release","docs":"aegir docs","dep-check":"aegir dep-check -i esbuild","doc-check":"aegir doc-check"},"dependencies":{"observable-webworkers":"^2.0.1","p-queue":"^8.0.1","p-timeout":"^6.0.0"},"devDependencies":{"aegir":"^44.1.4","delay":"^6.0.0","esbuild":"^0.24.0","execa":"^8.0.1","wherearewe":"^2.0.1"},"browser":{"cluster":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js"},"_id":"mortice@3.0.6","gitHead":"245e114565bc8553713773a45e98c58e9c16e433","_nodeVersion":"20.18.0","_npmVersion":"10.9.0","dist":{"shasum":"4df77b948ee282339111ba500eaa045ba765c8d5","size":28686,"noattachment":false,"key":"/mortice/-/mortice-3.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.0.6.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_3.0.6_1729774985014_0.722719031581494"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-10-24T13:03:05.205Z","publish_time":1729774985205,"_source_registry_name":"default","_cnpm_publish_time":1729774985205},"3.0.5":{"name":"mortice","version":"3.0.5","keywords":["async","await","cluster","lock","mutex","read-write"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","_id":"mortice@3.0.5","maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"homepage":"https://github.com/achingbrain/mortice#readme","bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"dist":{"shasum":"97fda49df5126b41976037966e093da1f841b2a4","size":28781,"noattachment":false,"key":"/mortice/-/mortice-3.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.0.5.tgz"},"type":"module","types":"./dist/src/index.d.ts","browser":{"cluster":false,"./src/node.js":"./src/browser.js","./dist/src/node.js":"./dist/src/browser.js"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"ba29fd448d22e7aaa3644f75b28c005f0cff978f","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"release":"major","breaking":true},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"docs":"aegir docs","lint":"aegir lint","test":"aegir test -t node -t browser","build":"aegir build && node esbuild.js","clean":"aegir clean","release":"aegir release","dep-check":"aegir dep-check -i esbuild","doc-check":"aegir doc-check","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"repository":{"url":"git+https://github.com/achingbrain/mortice.git","type":"git"},"_npmVersion":"10.9.0","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","directories":{},"_nodeVersion":"20.18.0","dependencies":{"p-queue":"^8.0.1","p-timeout":"^6.0.0","observable-webworkers":"^2.0.1"},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"aegir":"^44.1.4","delay":"^6.0.0","execa":"^8.0.1","esbuild":"^0.19.8","wherearewe":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/mortice_3.0.5_1729774694246_0.8433548753572122","host":"s3://npm-registry-packages"},"_cnpmcore_publish_time":"2024-10-24T12:58:14.399Z","publish_time":1729774694399,"_source_registry_name":"default","_cnpm_publish_time":1729774694399},"3.0.4":{"name":"mortice","version":"3.0.4","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["async","await","cluster","lock","mutex","read-write"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release","docs":"aegir docs"},"dependencies":{"observable-webworkers":"^2.0.1","p-queue":"^8.0.1","p-timeout":"^6.0.0"},"devDependencies":{"aegir":"^41.1.14","delay":"^6.0.0","esbuild":"^0.19.8","execa":"^8.0.1","wherearewe":"^2.0.1"},"browser":{"cluster":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js"},"_id":"mortice@3.0.4","gitHead":"b06fc3fd2759ee7e984fe7129d1c457789b40ba8","_nodeVersion":"20.10.0","_npmVersion":"9.9.2","dist":{"shasum":"34aadef768161e9dc49a7f73637b7858bcb7c6fa","size":28559,"noattachment":false,"key":"/mortice/-/mortice-3.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.0.4.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_3.0.4_1702915401214_0.03694734259040566"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-12-18T16:03:21.363Z","publish_time":1702915401363,"_source_registry_name":"default","_cnpm_publish_time":1702915401363},"3.0.3":{"name":"mortice","version":"3.0.3","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["async","await","cluster","lock","mutex","read-write"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release","docs":"aegir docs"},"dependencies":{"observable-webworkers":"^2.0.1","p-queue":"^7.2.0","p-timeout":"^6.0.0"},"devDependencies":{"aegir":"^41.1.14","delay":"^6.0.0","esbuild":"^0.19.8","execa":"^8.0.1","wherearewe":"^2.0.1"},"browser":{"cluster":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js"},"_id":"mortice@3.0.3","gitHead":"7aab06dde3b8b16eb167f74a0f53f09b89374155","_nodeVersion":"20.10.0","_npmVersion":"9.9.2","dist":{"shasum":"ca5d8d9776fd89232c122bbd74b3375d6fee7c01","size":32091,"noattachment":false,"key":"/mortice/-/mortice-3.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.0.3.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_3.0.3_1702039723617_0.2269496722938018"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-12-08T12:48:43.800Z","publish_time":1702039723800,"_source_registry_name":"default","_cnpm_publish_time":1702039723800},"3.0.2":{"name":"mortice","version":"3.0.2","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["async","await","cluster","lock","mutex","read-write"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release","docs":"aegir docs"},"dependencies":{"nanoid":"^5.0.4","observable-webworkers":"^2.0.1","p-queue":"^7.2.0","p-timeout":"^6.0.0"},"devDependencies":{"aegir":"^41.1.14","delay":"^6.0.0","esbuild":"^0.19.8","execa":"^8.0.1","wherearewe":"^2.0.1"},"browser":{"cluster":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js"},"_id":"mortice@3.0.2","gitHead":"f57306d70ef782846915e23a37866174cb1ed28d","_nodeVersion":"20.10.0","_npmVersion":"9.9.2","dist":{"shasum":"85fcee15bbe70bc1b4043c01a4b306ecaebcf74c","size":32049,"noattachment":false,"key":"/mortice/-/mortice-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.0.2.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_3.0.2_1702035612202_0.7794567400273722"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-12-08T11:40:12.414Z","publish_time":1702035612414,"_source_registry_name":"default","_cnpm_publish_time":1702035612414},"3.0.1":{"name":"mortice","version":"3.0.1","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"keywords":["async","await","cluster","lock","mutex","read-write"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","test":"aegir test -t node -t browser","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:firefox":"aegir test -t browser -- --browser firefox","test:electron-main":"aegir test -f dist/test/node.js -t electron-main","build":"aegir build && node esbuild.js","release":"aegir release"},"dependencies":{"nanoid":"^4.0.0","observable-webworkers":"^2.0.1","p-queue":"^7.2.0","p-timeout":"^6.0.0"},"devDependencies":{"aegir":"^37.5.1","delay":"^5.0.0","esbuild":"^0.15.5","execa":"^6.0.0","wherearewe":"^2.0.1"},"browser":{"cluster":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js"},"gitHead":"0eab826e744c8bc23ac65d17ac3a44e5f4694a3d","_id":"mortice@3.0.1","_nodeVersion":"16.16.0","_npmVersion":"8.17.0","dist":{"shasum":"27c1943b1841502c7b27a9c8fea789f87c124515","size":9603,"noattachment":false,"key":"/mortice/-/mortice-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.0.1.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_3.0.1_1660725833595_0.14212391062847063"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-08-17T09:19:32.015Z","publish_time":1660725833731,"_cnpm_publish_time":1660725833731},"3.0.0":{"name":"mortice","version":"3.0.0","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/mortice#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"keywords":["async","await","cluster","lock","mutex","read-write"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"lint":"aegir lint","pretest":"npm run build","test":"aegir test","test:node":"npm run test -- -f dist/test/node.js -t node --cov","test:chrome":"npm run test -- -f dist/test/browser.js -t browser --cov","test:firefox":"npm run test -- -f dist/test/browser.js -t browser -- --browser firefox","test:electron-main":"npm run test -- -f dist/test/node.js -t electron-main","build":"tsc && node esbuild.js","release":"semantic-release"},"dependencies":{"nanoid":"^3.1.20","observable-webworkers":"^2.0.1","p-queue":"^7.2.0","p-timeout":"^5.0.2"},"devDependencies":{"aegir":"^36.1.3","delay":"^5.0.0","esbuild":"^0.14.21","execa":"^6.0.0"},"browser":{"cluster":false,"./dist/src/node.js":"./dist/src/browser.js","./src/node.js":"./src/browser.js"},"gitHead":"7f24535736fbac7e3312e26b9b760e4019ed2351","_id":"mortice@3.0.0","_nodeVersion":"16.13.2","_npmVersion":"7.24.2","dist":{"shasum":"41a31dd00c799c1d456223d1ca211557316383d4","size":9216,"noattachment":false,"key":"/mortice/-/mortice-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-3.0.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_3.0.0_1644401881583_0.733517933472644"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-09T10:18:07.662Z","publish_time":1644401881719,"_cnpm_publish_time":1644401881719},"2.0.1":{"name":"mortice","version":"2.0.1","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^3.15.0","browserify":"^17.0.0","delay":"^5.0.0","execa":"^5.0.0","run-headless":"^2.0.1","standard":"^16.0.3","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"]},"dependencies":{"nanoid":"^3.1.20","observable-webworkers":"^1.0.0","p-queue":"^6.0.0","promise-timeout":"^1.3.0"},"browser":{"cluster":false},"gitHead":"4ccdc5e0b5f5dd399e6543a197a6a37b5c925577","_id":"mortice@2.0.1","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"shasum":"047b83c8c57d49e90e586f1f9e7d63e1f80d4a2b","size":5342,"noattachment":false,"key":"/mortice/-/mortice-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-2.0.1.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_2.0.1_1612639023903_0.8085412223380988"},"_hasShrinkwrap":false,"publish_time":1612639024056,"_cnpm_publish_time":1612639024056,"_cnpmcore_publish_time":"2021-12-16T19:10:09.399Z"},"2.0.0":{"name":"mortice","version":"2.0.0","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^2.0.0","browserify":"^16.2.2","delay":"^4.3.0","execa":"^2.0.0","run-headless":"^2.0.1","standard":"^14.0.0","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"]},"dependencies":{"globalthis":"^1.0.0","observable-webworkers":"^1.0.0","p-queue":"^6.0.0","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"browser":{"cluster":false},"gitHead":"30977d2b402cc8ac8d558c01c333102690db3068","_id":"mortice@2.0.0","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"shasum":"7be171409c2115561ba3fc035e4527f9082eefde","size":5783,"noattachment":false,"key":"/mortice/-/mortice-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-2.0.0.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_2.0.0_1567777033674_0.023877420631000845"},"_hasShrinkwrap":false,"publish_time":1567777033811,"_cnpm_publish_time":1567777033811,"_cnpmcore_publish_time":"2021-12-16T19:10:09.615Z"},"1.2.3":{"name":"mortice","version":"1.2.3","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^2.0.0","browserify":"^16.2.2","execa":"^2.0.0","run-headless":"^2.0.1","standard":"^14.0.0","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"],"concurrency":1},"dependencies":{"observable-webworkers":"^1.0.0","p-queue":"^6.0.0","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"browser":{"cluster":false},"gitHead":"fe9142ec4c971d2287de1531ae962782a83ed10f","_id":"mortice@1.2.3","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"shasum":"8e92963d67708dc229a98d5b65ebaa1fc4afb7fd","size":5500,"noattachment":false,"key":"/mortice/-/mortice-1.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-1.2.3.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_1.2.3_1566472206833_0.6008619814583731"},"_hasShrinkwrap":false,"publish_time":1566472206990,"_cnpm_publish_time":1566472206990,"_cnpmcore_publish_time":"2021-12-16T19:10:09.824Z"},"1.2.2":{"name":"mortice","version":"1.2.2","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^2.0.0","browserify":"^16.2.2","execa":"^1.0.0","run-headless":"^2.0.1","standard":"^12.0.1","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"],"concurrency":1},"dependencies":{"observable-webworkers":"^1.0.0","p-queue":"^5.0.0","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"browser":{"cluster":false},"gitHead":"6fd85d2b4d197f6125f90176ade4634d22369e39","_id":"mortice@1.2.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"a388dcb24bb984da86c4edb04ed29d70d352882b","size":5085,"noattachment":false,"key":"/mortice/-/mortice-1.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-1.2.2.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_1.2.2_1559650328047_0.08424574070403001"},"_hasShrinkwrap":false,"publish_time":1559650328166,"_cnpm_publish_time":1559650328166,"_cnpmcore_publish_time":"2021-12-16T19:10:10.032Z"},"1.2.1":{"name":"mortice","version":"1.2.1","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^0.25.0","browserify":"^16.2.2","execa":"^0.10.0","run-headless":"^2.0.1","standard":"^11.0.1","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"],"concurrency":1},"dependencies":{"observable-webworkers":"^1.0.0","p-queue":"^2.4.2","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"browser":{"cluster":false},"gitHead":"6344624a8056c9b0c1efa95ea056e5c1001b1a1f","_id":"mortice@1.2.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"0167f1b02e7a7226867866b583b411e776c675e7","size":4811,"noattachment":false,"key":"/mortice/-/mortice-1.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-1.2.1.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_1.2.1_1530885711525_0.04786229612296289"},"_hasShrinkwrap":false,"publish_time":1530885711607,"_cnpm_publish_time":1530885711607,"_cnpmcore_publish_time":"2021-12-16T19:10:10.374Z"},"1.2.0":{"name":"mortice","version":"1.2.0","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^0.25.0","browserify":"^16.2.2","execa":"^0.10.0","run-headless":"^2.0.1","standard":"^11.0.1","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"],"concurrency":1},"dependencies":{"observable-webworkers":"^1.0.0","p-queue":"^2.4.2","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"gitHead":"99800faea93527ac16495c660e8a5de7bb223e90","_id":"mortice@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"1ba893ea65252212af7fc99b905351340c03089e","size":4792,"noattachment":false,"key":"/mortice/-/mortice-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-1.2.0.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_1.2.0_1530797481130_0.010086580466561745"},"_hasShrinkwrap":false,"publish_time":1530797481195,"_cnpm_publish_time":1530797481195,"_cnpmcore_publish_time":"2021-12-16T19:10:10.605Z"},"1.1.0":{"name":"mortice","version":"1.1.0","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^0.25.0","browserify":"^16.2.2","execa":"^0.10.0","run-headless":"^2.0.1","standard":"^11.0.1","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"],"concurrency":1},"dependencies":{"observable-webworkers":"^1.0.0","p-queue":"^2.4.2","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"gitHead":"8b26c949ce5c9eb44e12223b4eded1ef0378d2d5","_id":"mortice@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"f783089e01e30eb642a59e44cbc0286e62ecc9a9","size":4489,"noattachment":false,"key":"/mortice/-/mortice-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-1.1.0.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_1.1.0_1527690021344_0.7089463088367778"},"_hasShrinkwrap":false,"publish_time":1527690021408,"_cnpm_publish_time":1527690021408,"_cnpmcore_publish_time":"2021-12-16T19:10:10.823Z"},"1.0.1":{"name":"mortice","version":"1.0.1","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^0.25.0","browserify":"^16.2.2","execa":"^0.10.0","run-headless":"^2.0.1","standard":"^11.0.1","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"],"concurrency":1},"dependencies":{"observable-webworkers":"^1.0.0","p-queue":"^2.4.2","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"gitHead":"9ed1c776e9b6d6be8fd958631798d4e34d6ca0b4","_id":"mortice@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"035a8fccf0fe45f1b9f20e8eacd7cd4ce82d8e71","size":4170,"noattachment":false,"key":"/mortice/-/mortice-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-1.0.1.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_1.0.1_1527687636075_0.9084618873240549"},"_hasShrinkwrap":false,"publish_time":1527687637302,"_cnpm_publish_time":1527687637302,"_cnpmcore_publish_time":"2021-12-16T19:10:11.060Z"},"1.0.0":{"name":"mortice","version":"1.0.0","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^0.25.0","browserify":"^16.2.2","execa":"^0.10.0","run-headless":"^2.0.1","standard":"^11.0.1","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"],"concurrency":1},"dependencies":{"observable-webworkers":"^1.0.0","p-queue":"^2.4.2","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"gitHead":"b5ee5edb59f8cabd6812c359cee4879df2d7dd84","_id":"mortice@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"4a3e5cecb2c2d20a11b9668adff2209a6c5dbebd","size":3976,"noattachment":false,"key":"/mortice/-/mortice-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-1.0.0.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_1.0.0_1527160089836_0.9488390070239583"},"_hasShrinkwrap":false,"publish_time":1527160089940,"_cnpm_publish_time":1527160089940,"_cnpmcore_publish_time":"2021-12-16T19:10:11.256Z"},"0.0.2":{"name":"mortice","version":"0.0.2","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^0.25.0","browserify":"^16.2.2","execa":"^0.10.0","run-headless":"^2.0.1","standard":"^11.0.1","webworkify":"^1.5.0"},"ava":{"files":["test/*.test.js"],"concurrency":1},"dependencies":{"observable-webworkers":"0.0.1","p-queue":"^2.4.2","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"gitHead":"bc1c1f03ab2cc8f9bd49cda6c66cedb29fd3f69e","_id":"mortice@0.0.2","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"aef357fdf0c329df324792a155e5be2b107ccc3d","size":3976,"noattachment":false,"key":"/mortice/-/mortice-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-0.0.2.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_0.0.2_1527097022339_0.7611629298966389"},"_hasShrinkwrap":false,"publish_time":1527097022512,"_cnpm_publish_time":1527097022512,"_cnpmcore_publish_time":"2021-12-16T19:10:11.465Z"},"0.0.1":{"name":"mortice","version":"0.0.1","description":"Isomorphic read/write lock that works in single processes, node clusters and web workers","main":"lib/index.js","scripts":{"test":"ava","lint":"standard"},"keywords":["read-write","cluster","mutex","lock","await","async"],"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/achingbrain/mortice.git"},"bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"homepage":"https://github.com/achingbrain/mortice","devDependencies":{"ava":"^0.25.0","execa":"^0.10.0","standard":"^11.0.1"},"ava":{"files":["test/*.test.js"],"concurrency":1},"dependencies":{"p-queue":"^2.4.2","promise-timeout":"^1.3.0","shortid":"^2.2.8"},"gitHead":"ecf31cf580dd79575b1f82efad21035eae42492c","_id":"mortice@0.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"57e1210a90b00299108f0044fcb94f510acbacfa","size":2807,"noattachment":false,"key":"/mortice/-/mortice-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mortice/download/mortice-0.0.1.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mortice_0.0.1_1527014079590_0.16261437612648288"},"_hasShrinkwrap":false,"publish_time":1527014079668,"_cnpm_publish_time":1527014079668,"_cnpmcore_publish_time":"2021-12-16T19:10:11.686Z"}},"readme":"# mortice\n\n[![codecov](https://img.shields.io/codecov/c/github/achingbrain/mortice.svg?style=flat-square)](https://codecov.io/gh/achingbrain/mortice)\n[![CI](https://img.shields.io/github/actions/workflow/status/achingbrain/mortice/js-test-and-release.yml?branch=main\\&style=flat-square)](https://github.com/achingbrain/mortice/actions/workflows/js-test-and-release.yml?query=branch%3Amain)\n\n> Isomorphic read/write lock that works in single processes, node clusters and web workers\n\n# About\n\n<!--\n\n!IMPORTANT!\n\nEverything in this README between \"# About\" and \"# Install\" is automatically\ngenerated and will be overwritten the next time the doc generator is run.\n\nTo make changes to this section, please update the @packageDocumentation section\nof src/index.js or src/index.ts\n\nTo experiment with formatting, please run \"npm run docs\" from the root of this\nrepo and examine the changes made.\n\n-->\n\n- Reads occur concurrently\n- Writes occur one at a time\n- No reads occur while a write operation is in progress\n- Locks can be created with different names\n- Reads/writes can time out\n\n## Example\n\n```ts\nimport mortice from 'mortice'\nimport delay from 'delay'\n\n// the lock name & options objects are both optional\nconst mutex = mortice()\n\nPromise.all([\n  (async () => {\n    const release = await mutex.readLock()\n\n    try {\n      console.info('read 1')\n    } finally {\n      release()\n    }\n  })(),\n  (async () => {\n    const release = await mutex.readLock()\n\n    try {\n      console.info('read 2')\n    } finally {\n      release()\n    }\n  })(),\n  (async () => {\n    const release = await mutex.writeLock()\n\n    try {\n      await delay(1000)\n\n      console.info('write 1')\n    } finally {\n      release()\n    }\n  })(),\n  (async () => {\n    const release = await mutex.readLock()\n\n    try {\n      console.info('read 3')\n    } finally {\n      release()\n    }\n  })()\n])\n```\n\n```\nread 1\nread 2\n<small pause>\nwrite 1\nread 3\n```\n\n## Clean up\n\nMutexes are stored globally reference by name, this is so you can obtain the\nsame lock from different contexts, including workers.\n\nWhen a mutex is no longer required, the `.finalize` function should be called\nto remove any internal references to it.\n\n```ts\nimport mortice from 'mortice'\n\nconst mutex = mortice()\n\n// ...some time later\n\nmutex.finalize()\n```\n\n## Auto clean up\n\nIf your app generates a lot of short-lived mutexes and you want to clean them\nup after the last lock has been released, pass the `autoFinalize` option to\nmortice in the owning context:\n\n```ts\nimport mortice from 'mortice'\n\nconst mutex = mortice({\n  autoFinalize: true\n})\n\nconst release = await mutex.readLock()\n// ...some time later\n\nrelease()\n\n// mutex will be freed soon after\n```\n\n## React native support\n\nThis module should run on react native but it only supports single-process\nconcurrency as it's not clear to the author (disclaimer - not a react native\ndev) what the officially supported process concurrency model is.\n\nPlease open an issue if this is a feature you would like to see added.\n\n# Install\n\n```console\n$ npm i mortice\n```\n\n## Browser `<script>` tag\n\nLoading this module through a script tag will make its exports available as `Mortice` in the global namespace.\n\n```html\n<script src=\"https://unpkg.com/mortice/dist/index.min.js\"></script>\n```\n\n# API Docs\n\n- <https://achingbrain.github.io/mortice>\n\n# License\n\nLicensed under either of\n\n- Apache 2.0, ([LICENSE-APACHE](https://github.com/achingbrain/mortice/LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)\n- MIT ([LICENSE-MIT](https://github.com/achingbrain/mortice/LICENSE-MIT) / <http://opensource.org/licenses/MIT>)\n\n# Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n","_attachments":{},"homepage":"https://github.com/achingbrain/mortice#readme","bugs":{"url":"https://github.com/achingbrain/mortice/issues"},"license":"Apache-2.0 OR MIT"}