{"_id":"@deliveryhero/dynamodb-lock","_rev":"7-e8fd3ee00886dd889f3ec08199082ff8","name":"@deliveryhero/dynamodb-lock","dist-tags":{"latest":"2.0.0"},"versions":{"1.2.0":{"name":"@deliveryhero/dynamodb-lock","version":"1.2.0","author":{"name":"Delivery Hero"},"license":"MIT","_id":"@deliveryhero/dynamodb-lock@1.2.0","maintainers":[{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},{"name":"simonmales","email":"sime@sime.net.au"},{"name":"aleksei.aleksandrov","email":"alexandrovalexey86@gmail.com"}],"dist":{"shasum":"0c5dbfffddbf7aa9b8ff2d6e8a3106aeabdeee44","tarball":"https://registry.npmjs.org/@deliveryhero/dynamodb-lock/-/dynamodb-lock-1.2.0.tgz","fileCount":55,"integrity":"sha512-tpsqB2ApsvM4uaqlVafYglzoF/SRyDgvBLuy5VVyfZRFptBBaYDuvZRaiAlAsHr7HobRxkkk7IbMlSvtaewDxg==","signatures":[{"sig":"MEQCIC4tflm1hcOWgisgsTZpzZOG0+KNdlK6h00Nxbg3stQvAiAfOKTVitkyvnw/BiYy0I5yiro1xhGGyoueCKR7kI4Ojg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":98854,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAqM/CRA9TVsSAnZWagAAI1cP/3xulQoi2UTUbMMUBca7\nofKxrY4Tr+7jiGvApX1zDDIktXLiBHDdyt5WU+0evrkqnqfRhDTvQYL9Cy3h\nfvYRxulRd2a8nr3YDkhJ4G5UmgrE8vXs+L5aLlQIONpDG2fdxRo9k0ovtq1Q\nervZUFk6bZzoPUWO8mA8Nr0+9HvQwD/gDMh580MClmzxjlgJBM0cef0/hSZV\nvzsg/YB0vk6OWgHFfhk1dDZhmLKMYd9i8+Nk6NU4Khs1pfchh+77Wkz/6Eln\n/LkoZjkBzvB2uKXAYDCeYIv1dFxrxaQhV1Dz1eQOPYTYEnrUxfmITwtvQ83d\naPziUGKsRQrOKqbuy1Z0cSBfffkd45hOlvFUJPvA7TKWfFkBS/ovMZEqgvWG\nW9J1zB88AavhNmnMa5lQHohdFphNFkX2YK9bzYdRsPmYXTTCInBZvwWsbTWC\nP2LgXtNjvjCtqrRHq6TV7fChX5yAeqT+ZUjQ72y3+yhpayLIpysnqlfJrx+3\nms1yPu2A3/9hlcj9E8AXXEV8Vh4Z12WHOxf5YFzjr0uU7akFwrMeP+u+XtOB\n37qKlNNyWWXNesOAQOQnNYnGSuLzY8DiCOvLWttAXx1ikoZ8aYtOFuZsJP5c\nOBv4pcL+qqmy3y648jjZlz9cLmcg/vF05wn7oeKPsY+MmkWb8hB9KPB21QmA\niEkn\r\n=0KyM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./lib/index.js","private":false,"scripts":{"lint":"yarn eslint --fix \"{src,test}/**/*.ts\"","test":"yarn test:unit && yarn test:e2e","format":"yarn prettier --config .prettierrc \"{src,test, index}/**/*.ts\" --write","compile":"rm -Rf lib/* && tsc --project tsconfig.build.json","prepare":"yarn self-peers && yarn format && yarn lint && yarn compile","test:e2e":"yarn jest --config jest-e2e.config.js","test:unit":"yarn jest --config jest-unit.config.js --coverage","self-peers":"install-self-peers -- --ignore-scripts"},"_npmUser":{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},"repository":{"url":"git+https://github.com/deliveryhero/dynamodb-lock-nodejs.git","type":"git"},"description":"Distributed locking library backed by DynamoDB.","directories":{},"licenseText":"Copyright (c) 2021 Delivery Hero\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"uuid":"^8.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.4.5","eslint":"^8.5.0","ts-jest":"^27.1.2","prettier":"^2.5.1","typescript":"^4.5.4","@types/jest":"^27.0.3","@types/uuid":"^8.3.3","eslint-config-prettier":"^8.3.0","@typescript-eslint/parser":"^5.8.0","@team-griffin/install-self-peers":"^1.1.1","@typescript-eslint/eslint-plugin":"^5.8.0"},"peerDependencies":{"aws-sdk":"^2.1047.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamodb-lock_1.2.0_1644340031090_0.046511778271821846","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@deliveryhero/dynamodb-lock","version":"1.2.1","author":{"name":"Delivery Hero"},"license":"MIT","_id":"@deliveryhero/dynamodb-lock@1.2.1","maintainers":[{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},{"name":"simonmales","email":"sime@sime.net.au"},{"name":"aleksei.aleksandrov","email":"alexandrovalexey86@gmail.com"}],"homepage":"https://github.com/deliveryhero/dynamodb-lock-nodejs#readme","bugs":{"url":"https://github.com/deliveryhero/dynamodb-lock-nodejs/issues"},"dist":{"shasum":"9dc1cc40ad1fa51e49e505257c98ba06a0bf14ec","tarball":"https://registry.npmjs.org/@deliveryhero/dynamodb-lock/-/dynamodb-lock-1.2.1.tgz","fileCount":48,"integrity":"sha512-PXkzSEjrUG6kEjR/hzi47IAJfGWHuLbcBeK4LL272YpPqZdOZEQQO7BZVy7ZYjxpmfDBrgoEW6QwfzBOB6Wq+g==","signatures":[{"sig":"MEUCIHoq1JLP9FmIJfx8EtdNM9CXrimB3qOS0H+biH/phPXzAiEA/IWIvKbDhL7AknWdh7QxFVWTTubnhPXUk2OwGlfYfY4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":99249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA/UOCRA9TVsSAnZWagAASVkP/A2wLWLaciNVjgTTsgXw\nE9FV9DMwD5V1/LTg4aDracLXWyRtFta7H1Qf+75nihbQQ6w2E0yy07SCXFNM\np+tje53cBxZh5kqmUo/InLzjDkoGBgWmggMFePWaScwWi7/QKjqSISvgxS+K\nsw8EvZC6pcoesDmQtbpuMbZ2DJQkuU2sKWxMJoVaJxyZp96srgriXOZjsyAw\niLRrDeUFnnfEo0xgLCskmuNTJI4sRmBvwXEU96XqBiguhdt/Q7ThoNoeoD+L\nOan+oVToAYYS9f0FqNN3FpkmVYL7mk70KGmFp43+yu+A28MhTq1H8w0r50Uo\nS3/DL08uY8e1bjv1RBFQ+cHLRSHm15julXO1K+qIZfVcDQr//7t37xAG1xhX\nGqnKJD/OFcMT6pZRGh3BymHRXcg7GRs6zayc2hKnAm3lnbyTvcrXgu9XwVVn\nmXLeYTVNEnnQD4QHKAaGfp11fgvJHsbHtLkLD3Oy1U2Brm/vg201+gjNzyCD\nZtwuGYMqIxOPQ5xVPcCgNRwZkIH3U7QWDlRryrgpBPTIdV6Imsg0PoyZ4WAC\n3PgPTP2yIOo7yRaPUXM5rPUYM+IeAJ/7YNAEee1dgT43BCVaQHkuZ+DcR4vg\nDLWN6bpUAf7Zm5jug5XE81zZLWb1lqK8NICSwjo8ugEy+j5w8REjGJ1vgdh9\n5gO3\r\n=WlyR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./lib/index.js","types":"./lib/index.d.ts","gitHead":"ac0df42814c4778cac614b44e8c0aea663ba9bc0","private":false,"scripts":{"lint":"yarn eslint --fix \"{src,test}/**/*.ts\"","test":"yarn test:unit && yarn test:e2e","format":"yarn prettier --config .prettierrc \"{src,test, index}/**/*.ts\" --write","compile":"rm -Rf lib/* && tsc --project tsconfig.build.json","prepare":"yarn self-peers && yarn format && yarn lint && yarn compile","test:e2e":"yarn jest --config jest-e2e.config.js","test:unit":"yarn jest --config jest-unit.config.js --coverage","self-peers":"install-self-peers -- --ignore-scripts"},"_npmUser":{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},"repository":{"url":"git+https://github.com/deliveryhero/dynamodb-lock-nodejs.git","type":"git"},"_npmVersion":"8.1.0","description":"Distributed locking library backed by DynamoDB.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.4.5","eslint":"^8.5.0","ts-jest":"^27.1.2","prettier":"^2.5.1","typescript":"^4.5.4","@types/jest":"^27.0.3","@types/uuid":"^8.3.3","eslint-config-prettier":"^8.3.0","@typescript-eslint/parser":"^5.8.0","@team-griffin/install-self-peers":"^1.1.1","@typescript-eslint/eslint-plugin":"^5.8.0"},"peerDependencies":{"aws-sdk":"^2.1047.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamodb-lock_1.2.1_1644426510098_0.5537471179135656","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"@deliveryhero/dynamodb-lock","version":"1.2.2","author":{"name":"Delivery Hero"},"license":"MIT","_id":"@deliveryhero/dynamodb-lock@1.2.2","maintainers":[{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},{"name":"simonmales","email":"sime@sime.net.au"},{"name":"aleksei.aleksandrov","email":"alexandrovalexey86@gmail.com"}],"homepage":"https://github.com/deliveryhero/dynamodb-lock-nodejs#readme","bugs":{"url":"https://github.com/deliveryhero/dynamodb-lock-nodejs/issues"},"dist":{"shasum":"7b0defe290183460b2f2bd39eb64b32b1a735bcd","tarball":"https://registry.npmjs.org/@deliveryhero/dynamodb-lock/-/dynamodb-lock-1.2.2.tgz","fileCount":48,"integrity":"sha512-VNeHHjjBj/2D7Y5hD6kjEvRkOPdDiUTPi5GGeadsOQcrcg9KJb+FN2o/9GQ+laVauzQTvWLmG/TaZmLd9RIQlw==","signatures":[{"sig":"MEYCIQCf+Y4jEo0JIQ1IWNrYxMfFXjYpuka9uxsMyzngJPPcQgIhAI1r2FyHYOZbfsT+ByuneyVPPHjFvZhkwE/oGuW/LUwy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":99252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTC0tACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBSRAAi9szJZQ3eY/3Rfhb/ojOaNPZQAd7+WHUFFXmU37tIZvD41f8\r\naZGZIwV2QIg9+++mveD01XzHzxBCVaAGEjv9dC/eFEMzDMCsZT8wYko8bGvY\r\nRJOhoZmQP7FzLdczGBurjdLNCW6BZzqjvdkhNMoiHYXRMzY2YR8DKEWHqAYz\r\npcXGoukvFtZ/mDg2IDH4qA68FLX8qJ6damNr0W3/mIV1H1XVsRVOPqdYAl/J\r\n+qapkA5NEPVmbQb7BEnE4ELFD8TSN7cB3qA4gIRXTRND8wGhyBdSBj2upZg6\r\nrVkhKscBY9EklVocgG36C6kOKI0D4K2hoRu716r2ePd+w86UDIr17PYFLXYd\r\nrsQ3n/DWlBp7IGuan9EREAhGfO3SxVBma/jbOxFLYezlZl0BbT2AwO1xD6Fw\r\naqVsjdTyJFzwaWKQf5VR9cotCsR+hkPWSXuKg1oGNj3zHJLLUWP3CxvoKxNy\r\nBcCy9v4eEZ94c51l3J0mkkF6vRKkfa1ERHXPmJKsF1muPp+ylfKYB0OLDHtz\r\n1TnWsybZ6Z9nBi9sRT3I+wn8OHxwUtqsIBfsw6jhfjbotj5ii8OuuXpZmzaT\r\nDMva1SvVnwK+YDXDzNV5UXLcRnPhbtF828PyeQILr+2nWEGgeTRkoW/AF+t/\r\nIfiKI4wuqICMmwGE3W9W/2rjObhPWZwpUFA=\r\n=910X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./lib/index.js","types":"./lib/index.d.ts","gitHead":"7b1432055c30e90cc2ecfb1ee22a2eda1ebda2c8","private":false,"scripts":{"lint":"yarn eslint --fix \"{src,test}/**/*.ts\"","test":"yarn test:unit && yarn test:e2e","format":"yarn prettier --config .prettierrc \"{src,test, index}/**/*.ts\" --write","compile":"rm -Rf lib/* && tsc --project tsconfig.build.json","prepare":"yarn self-peers && yarn format && yarn lint && yarn compile","test:e2e":"yarn jest --config jest-e2e.config.js","test:unit":"yarn jest --config jest-unit.config.js --coverage","self-peers":"install-self-peers -- --ignore-scripts"},"_npmUser":{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},"repository":{"url":"git+https://github.com/deliveryhero/dynamodb-lock-nodejs.git","type":"git"},"_npmVersion":"8.1.0","description":"Distributed locking library backed by DynamoDB.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","ts-jest":"^27.1.4","prettier":"^2.6.2","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/uuid":"^8.3.4","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.17.0","@team-griffin/install-self-peers":"^1.1.1","@typescript-eslint/eslint-plugin":"^5.17.0"},"peerDependencies":{"aws-sdk":"^2.1106.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamodb-lock_1.2.2_1649159469436_0.8386952630142399","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"@deliveryhero/dynamodb-lock","version":"1.2.3","author":{"name":"Delivery Hero"},"license":"MIT","_id":"@deliveryhero/dynamodb-lock@1.2.3","maintainers":[{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},{"name":"simonmales","email":"sime@sime.net.au"},{"name":"aleksei.aleksandrov","email":"alexandrovalexey86@gmail.com"}],"dist":{"shasum":"c454a9da3afe56059c7eb015fa8be91818f88f10","tarball":"https://registry.npmjs.org/@deliveryhero/dynamodb-lock/-/dynamodb-lock-1.2.3.tgz","fileCount":31,"integrity":"sha512-X6BGQppVO0RHS4Hjji2S6zFvyaEj+U2bNuGkOjZFkiNUwVRmgQpAl415ShbPZXDxyURNS2pHL9sEDLEqI8WAYg==","signatures":[{"sig":"MEUCIGNNteMqxukr7fuj8TZSeN0o/0EWNHM9L4GmGLR57dKsAiEA68Ah0eBy0oxv2BXoiTjPDjbnCEFT8HlLy+ugvQ+wEdk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLY0qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFdw//fIXuR6H5ydo8n6ROZKPZP1Z9Cfr99WVdjRZwhQ4hCOxossvd\r\nsiE36Q6jaoxi1Toq+E//g5UKoM5Pr6yfi1zQo7CDr+8MKwbXewLCauJsP3pp\r\nCqLpk92VulzbV/fPCE6jbPgECobCriytFC45S0By227d+EVsGcZhA98ceWBY\r\nFyRZB8FeTR82jOunMDRGxZ2kzhJboaikZXegTIKH7ByeUQcrFWAzlR8A7FHK\r\nTp8eTkyujUIkWdUYU/vuP9f8nT0YRqDpBwlzC8/hzEN0/iPGwqDkqY1a4Yk4\r\nAd5GaBbJQuhcLzE3y5IKiQy4bSP+boCGgqCZamUNgHrsX0JC81Dloex1v9hm\r\nowQc1oMe8+oNcxhXHWpvgwjdXf+53v3BDPwaKZzCYvhBF1WlRAd1HWpJSYU/\r\ntO3BKYVmRILiOAydn/Mp4f0NX9Y1RxUb1Nck65ryWW9xw12YCpyIFVA453pc\r\ncU+V8v1GtmwQkdsJBVLq8FXr6/QSPbHEeM7a3iVvJdFcgwRxrLlZ4wZ/N3K4\r\nfVTB3o6AUfj42TZehZUXumYZVcmESHX9vllv4VXkF0+C7UTT34xQijYZUY99\r\nJpu212hEJi/VflxqVBgaRFoFzQlCvmJSd3xcqDvHVRFrh7TcwF1NzyD4IfkN\r\ncJhHxtcQ80WSMgEtfldxjFuD3nZ5LXNU5QY=\r\n=8Ov6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./lib/index.js","private":false,"scripts":{"lint":"yarn eslint --fix \"{src,test}/**/*.ts\"","test":"yarn test:unit && yarn test:e2e","format":"yarn prettier --config .prettierrc \"{src,test, index}/**/*.ts\" --write","compile":"rm -Rf lib/* && tsc --project tsconfig.build.json","prepare":"yarn self-peers && yarn format && yarn lint && yarn compile","test:e2e":"yarn jest --config jest-e2e.config.js","test:unit":"yarn jest --config jest-unit.config.js --coverage","self-peers":"install-self-peers -- --ignore-scripts"},"_npmUser":{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},"repository":{"url":"git+https://github.com/deliveryhero/dynamodb-lock-nodejs.git","type":"git"},"description":"Distributed locking library backed by DynamoDB.","directories":{},"licenseText":"Copyright (c) 2021 Delivery Hero\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"uuid":"^8.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","ts-jest":"^27.1.4","prettier":"^2.6.2","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/uuid":"^8.3.4","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.17.0","@team-griffin/install-self-peers":"^1.1.1","@typescript-eslint/eslint-plugin":"^5.17.0"},"peerDependencies":{"aws-sdk":"^2.1106.0"},"peerDependenciesMeta":{"aws-sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dynamodb-lock_1.2.3_1680706858059_0.3518500593010192","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"@deliveryhero/dynamodb-lock","version":"1.2.4","author":{"name":"Delivery Hero"},"license":"MIT","_id":"@deliveryhero/dynamodb-lock@1.2.4","maintainers":[{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},{"name":"simonmales","email":"sime@sime.net.au"},{"name":"aleksei.aleksandrov","email":"alexandrovalexey86@gmail.com"}],"homepage":"https://github.com/deliveryhero/dynamodb-lock-nodejs#readme","bugs":{"url":"https://github.com/deliveryhero/dynamodb-lock-nodejs/issues"},"dist":{"shasum":"fc7a207fdad0604c2a4e929a285ee7770e86c1d9","tarball":"https://registry.npmjs.org/@deliveryhero/dynamodb-lock/-/dynamodb-lock-1.2.4.tgz","fileCount":27,"integrity":"sha512-X8pRjS1IsH3NhX4Sa1lrjQAJ9k115a59ZIsL4dtZHYDBWb5cCirS4Yh6ZWdhl8cvCzuYgdRZ6/Z+liKfZnXYkw==","signatures":[{"sig":"MEYCIQCkBdHqU+wkYdJ7i3CKRWYjHcUPCLIqldV5V4DTDGNsngIhAIhBAmWMbddn3/oSKuwLJyD50rnEHncnkQZLHncUMEK1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLY6DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqtrg/9GUAbvslnYg1f6tq+29viPHhZPD58Nwszm+mMdkD/PYGrLm3S\r\nFOq7QIRfAuevwUQBgFvLXHT2fzqOwlIoe2X9wLk4wQgHVJkcMCz3G26imeFu\r\npDPLFHq3b1bZLqSRES5NwTjj1voAIHC5zy2Nhf6klNAuaX+3dfIpbtQrNxsw\r\ncy4F5ByzFC5A/U2cOxawhGwprini6jcB9zm3iwX2RFvf2H0jvVCuJmURgep9\r\npU9XlyAAUPAoSnNfnCmOgRcEIswbkoRFIDGpWytrDXVCVIj0lGff+JB44y2W\r\nWC6cMQ/PV5XgIulj2UnOnAKEOWA//vjqbjjV3YYhTQ+ySeNGS5QsAOo8bwNr\r\n0yHPXGgKbwD17P4KS/M3KgsqFwZExYikSf+yGWBmwW9Tnw72I1NqcpGlvDHv\r\nlHhKf4MsELQRl0PbdBR/hgn1FqGLtIQNLJqwWqtzaW5Kf8e2OI3g/j7IJStc\r\n1MEDjQmwrEWwhOjDyiJbbnHeIMwnBFSoATARH4lXMRWh/y9AoRWwaEVD8uQR\r\nOQPZ0tMZ0GPQ/xP7TtJ4Nt0xsJH3QSxYe/kkjxvVXxmhASY9X42cLHvquNLE\r\nh32YC+x67WrPPbh31U30GVIIC2S7VaW1wg27uoq8BARDU4f9c/MGFeHgDCY/\r\nO02syG6xxRrV14+OlsjUGRJOpSDSHNcr6JA=\r\n=+DnU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./lib/index.js","types":"./lib/index.d.ts","gitHead":"58f932732480d8062d83bdd690220560d8249e02","private":false,"scripts":{"lint":"yarn eslint --fix \"{src,test}/**/*.ts\"","test":"yarn test:unit && yarn test:e2e","format":"yarn prettier --config .prettierrc \"{src,test, index}/**/*.ts\" --write","compile":"rm -Rf lib/* && tsc --project tsconfig.build.json","prepare":"yarn self-peers && yarn format && yarn lint && yarn compile","test:e2e":"yarn jest --config jest-e2e.config.js","test:unit":"yarn jest --config jest-unit.config.js --coverage","self-peers":"install-self-peers -- --ignore-scripts"},"_npmUser":{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},"repository":{"url":"git+https://github.com/deliveryhero/dynamodb-lock-nodejs.git","type":"git"},"_npmVersion":"8.1.0","description":"Distributed locking library backed by DynamoDB.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"uuid":"^8.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","ts-jest":"^27.1.4","prettier":"^2.6.2","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/uuid":"^8.3.4","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.17.0","@team-griffin/install-self-peers":"^1.1.1","@typescript-eslint/eslint-plugin":"^5.17.0"},"peerDependencies":{"aws-sdk":"^2.1106.0"},"peerDependenciesMeta":{"aws-sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dynamodb-lock_1.2.4_1680707203796_0.9511785874471359","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@deliveryhero/dynamodb-lock","private":false,"version":"2.0.0","license":"MIT","description":"Distributed locking library backed by DynamoDB.","main":"./lib/index.js","scripts":{"self-peers":"install-self-peers -- --ignore-scripts","prepare":"yarn self-peers && yarn format && yarn lint && yarn compile","format":"yarn prettier --config .prettierrc \"{src,test, index}/**/*.ts\" --write","compile":"rm -Rf lib/* && tsc --project tsconfig.build.json","lint":"yarn eslint --fix \"{src,test}/**/*.ts\"","test":"yarn test:unit && yarn test:e2e","test:e2e":"yarn jest --config jest-e2e.config.js","test:unit":"yarn jest --config jest-unit.config.js --coverage"},"repository":{"type":"git","url":"git+https://github.com/deliveryhero/dynamodb-lock-nodejs.git"},"author":{"name":"Delivery Hero"},"devDependencies":{"@team-griffin/install-self-peers":"^1.1.1","@types/jest":"^27.5.2","@types/uuid":"^8.3.4","@typescript-eslint/eslint-plugin":"^5.17.0","@typescript-eslint/parser":"^5.17.0","eslint":"^8.12.0","eslint-config-prettier":"^8.5.0","jest":"^27.5.1","prettier":"^2.6.2","ts-jest":"^27.1.5","typescript":"^4.6.3"},"peerDependencies":{"@aws-sdk/client-dynamodb":"^3.796.0","@aws-sdk/lib-dynamodb":"^3.796.0"},"peerDependenciesMeta":{"@aws-sdk/client-dynamodb":{"optional":true},"@aws-sdk/lib-dynamodb":{"optional":true}},"dependencies":{"uuid":"^8.3.2"},"_id":"@deliveryhero/dynamodb-lock@2.0.0","gitHead":"13c1618122651c0acd920d6918d8f54cccf86310","types":"./lib/index.d.ts","bugs":{"url":"https://github.com/deliveryhero/dynamodb-lock-nodejs/issues"},"homepage":"https://github.com/deliveryhero/dynamodb-lock-nodejs#readme","_nodeVersion":"20.18.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-CUMYQuzGTS+ovjFmv7d8+5AzWL2cWlEjwrvAMy4oWHy7xAYTkw1Wylml+ggZNMRJoIHvqw4V1S/XK8qWTs+gww==","shasum":"c90ab2ce20ab85bd84dfa245dfda6e0b080bc471","tarball":"https://registry.npmjs.org/@deliveryhero/dynamodb-lock/-/dynamodb-lock-2.0.0.tgz","fileCount":27,"unpackedSize":63939,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDVaVG1sk93vC4dlpQ5bpwLUyzpa3fiQ4Qv637G8BInJAIhAP9R/FSA5N/5spEu+XKES3Z2xQzfdc0sqFCgBaBEhHfN"}]},"_npmUser":{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"},"directories":{},"maintainers":[{"name":"simonmales","email":"sime@sime.net.au"},{"name":"aleksei.aleksandrov","email":"alexandrovalexey86@gmail.com"},{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dynamodb-lock_2.0.0_1745585721790_0.7530660834602687"},"_hasShrinkwrap":false}},"time":{"created":"2022-02-08T17:07:11.039Z","modified":"2025-04-25T12:55:22.197Z","1.2.0":"2022-02-08T17:07:11.223Z","1.2.1":"2022-02-09T17:08:30.306Z","1.2.2":"2022-04-05T11:51:09.640Z","1.2.3":"2023-04-05T15:00:58.275Z","1.2.4":"2023-04-05T15:06:43.957Z","2.0.0":"2025-04-25T12:55:21.977Z"},"bugs":{"url":"https://github.com/deliveryhero/dynamodb-lock-nodejs/issues"},"author":{"name":"Delivery Hero"},"license":"MIT","homepage":"https://github.com/deliveryhero/dynamodb-lock-nodejs#readme","repository":{"type":"git","url":"git+https://github.com/deliveryhero/dynamodb-lock-nodejs.git"},"description":"Distributed locking library backed by DynamoDB.","maintainers":[{"name":"simonmales","email":"sime@sime.net.au"},{"name":"aleksei.aleksandrov","email":"alexandrovalexey86@gmail.com"},{"name":"ubaltaci-dh","email":"ugur.baltaci@deliveryhero.com"}],"readme":"## DynamoDB Lock Client for Nodejs\n\n### Introduction\n\nDistributed lock client written in Node.js & Typescript for DynamoDB. Implementation is following (not strictly) [DynamoDB Lock Client for Java](https://github.com/awslabs/amazon-dynamodb-lock-client). Session monitoring is not included. \n\nThere is a `trustLocalTime` option to improve the performance. If `lastUpdatedTimeInMs` is in the past including `leaseDurationInMs` for a lock, the lock can be acquired immediately instead of waiting another `leaseDurationInMs` but the tradeoff is [`clock skew`](https://en.wikipedia.org/wiki/Clock_skew).\n\nIt is currently used by two teams in [Delivery Hero](https://www.deliveryhero.com/) for database migrations and high-frequency distributed scheduler. In peak load, ~130 pods are racing through each other to retrieve an exclusive lock every second.   \n\n### Install\n\n```bash\nyarn add @deliveryhero/dynamodb-lock\nnpm install @deliveryhero/dynamodb-lock\n```\n### Usage\n\n```typescript\nimport {DynamoDBLockClientFactory} from \"@deliveryhero/dynamodb-lock\";\n\n// Get lock client from factory\nconst lockClient = DynamoDBLockClientFactory(documentClient);\n// Create a lock\nconst lock = await lockClient.lock(lockGroup, lockId, {\n    leaseDurationInMs: 500,\n    prolongLeaseEnabled: false\n});\n// Release a lock\nawait lockClient.releaseLock(lock);\n// Release all locks created by this process (Graceful shutdown)\nawait lockClient.releaseAllLocks();\n```\n\n### Options\n\n#### Lock Options\n* `leaseDurationInMs`, default is 20 seconds\n* `prolongLeaseEnabled`, default is true. If disabled, you can hold the lock at most `leaseDurationInMs` then any other request can acquire the lock for given key.\n* `prolongEveryMs`, default is 5 seconds. Existing lock is to be renewed with this interval.\n* `trustLocalTime`, default is false. If requested lock is already acquired and valid, either wait for leaseDuration to acquire the lock or check stored time value and determined if the leaseDuration is already passed since the last update.\n* `waitDurationInMs`, required when trustLocalTime is set to true, wait duration for checking the existing lock again otherwise waitDuration is equal to existing lock's lease duration.  \n* `maxRetryCount`, optional. If a requested lock is already acquired and valid, client will try to acquire the lock as long as this times. \n* `additionalAttributes`, any other fields/attributes you want to be stored alongside with the related lock entry in the lock table.\n\n#### Lock table options\n* `tableName`: default is `lockTable`\n* `partitionKey`: default is `lockId`\n* `sortKey`: default is `lockGroup`\n* `ttlKey`: optional (recommended, if a lock is not released properly, it ends up staying in DynamoDB lock table, until acquired again.)\n* `ttlInMs`: optional, default is one hour\n\n### Tests\n\n* Unit tests could be executed standalone with `yarn test:unit` but e2e tests need DynamoDB which is provided by respective DynamoDB image.\n* `docker-compose run --rm -e LOCAL_USER_ID=$UID log_vendor_npm_dynamodb_lock yarn test`\n\n### Development\n\nThis project uses `yarn` and internal Delivery Hero drone pipeline to publish new versions based on the release tags. \n\n### Useful Links\n\n- https://github.com/awslabs/amazon-dynamodb-lock-client\n- https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html\n\n","readmeFilename":"readme.md"}