s3-mutex
Version:
A robust distributed locking mechanism for Node.js applications using AWS S3 as the backend storage, with support for deadlock detection, timeout handling, automatic lock refresh, retry with backoff, and cleanup utilities.
120 lines (119 loc) • 2.89 kB
JSON
{
"name": "s3-mutex",
"description": "A robust distributed locking mechanism for Node.js applications using AWS S3 as the backend storage, with support for deadlock detection, timeout handling, automatic lock refresh, retry with backoff, and cleanup utilities.",
"version": "2.0.0",
"author": "Tim Mikeladze <tim.mikeladze@gmail.com>",
"license": "MIT",
"keywords": [
"s3",
"mutex",
"distributed",
"locking",
"aws",
"s3-mutex",
"deadlock",
"timeout",
"heartbeat",
"retry",
"backoff",
"jitter",
"node",
"typescript"
],
"repository": {
"type": "git",
"url": "https://github.com/TimMikeladze/s3-mutex"
},
"scripts": {
"dev": "concurrently \"pnpm build --watch\" \"pnpm test\" ",
"build": "tsup",
"lint": "biome check --write --unsafe .",
"lint:ci": "biome check --unsafe .",
"test": "vitest",
"test:ci": "vitest run --coverage",
"commit": "cz",
"storybook": "storybook dev -p 6006",
"storybook:build": "storybook build",
"release": "pnpm build && pnpm release-it",
"link:self": "pnpm link --global",
"prepare": "lefthook install"
},
"types": "./dist/index.d.ts",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./dist/index.mjs"
}
},
"files": ["dist"],
"config": {
"commitizen": {
"path": "./node_modules/@ryansonshine/cz-conventional-changelog"
}
},
"release-it": {
"git": {
"commitMessage": "chore(release): v${version}"
},
"github": {
"release": true
},
"npm": {
"publish": false
}
},
"engines": {
"node": ">=18.0.0"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
"@ryansonshine/commitizen": "4.2.8",
"@ryansonshine/cz-conventional-changelog": "3.3.4",
"@storybook/addon-essentials": "8.6.12",
"@storybook/addon-interactions": "8.6.12",
"@storybook/addon-links": "8.6.12",
"@storybook/addon-webpack5-compiler-swc": "3.0.0",
"@storybook/blocks": "8.6.12",
"@storybook/react": "8.6.12",
"@storybook/react-webpack5": "8.6.12",
"@storybook/test": "8.6.12",
"@testing-library/jest-dom": "6.6.3",
"@testing-library/react": "16.3.0",
"@types/node": "22.15.3",
"@types/react": "19.1.2",
"@types/react-dom": "19.1.3",
"@types/react-test-renderer": "19.1.0",
"@vitest/coverage-v8": "3.1.2",
"concurrently": "9.1.2",
"dotenv": "^16.5.0",
"jsdom": "26.1.0",
"lefthook": "1.11.12",
"minio": "^8.0.5",
"prop-types": "15.8.1",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-test-renderer": "19.1.0",
"release-it": "19.0.1",
"storybook": "8.6.12",
"ts-node": "10.9.2",
"tsconfig-paths": "4.2.0",
"tsup": "8.4.0",
"tsx": "4.19.4",
"typescript": "5.8.3",
"vitest": "3.1.2"
},
"pnpm": {
"overrides": {
"micromatch@<4.0.8": ">=4.0.8"
},
"onlyBuiltDependencies": [
"@biomejs/biome",
"@swc/core",
"esbuild",
"lefthook"
]
},
"dependencies": {
"@aws-sdk/client-s3": "^3.802.0"
}
}