{
  "name": "syncguard",
  "version": "2.5.3",
  "description": "Functional TypeScript library for distributed locking across microservices. Prevents race conditions with Redis, PostgreSQL, Firestore, and custom backends. Features automatic lock management, timeout handling, and extensible architecture.",
  "keywords": [
    "atomic",
    "backend-agnostic",
    "cluster",
    "concurrency",
    "coordination",
    "critical-section",
    "database-lock",
    "distributed-lock",
    "distributed-systems",
    "functional",
    "lock",
    "microservices",
    "multi-process",
    "mutex",
    "parallel",
    "postgres",
    "postgresql",
    "race-condition",
    "redis",
    "resource-locking",
    "semaphore",
    "sql",
    "nosql",
    "firestore",
    "gcp",
    "google-cloud",
    "synchronization",
    "typescript"
  ],
  "author": "Konstantin Tarkus <koistya@kriasoft.com>",
  "license": "MIT",
  "homepage": "https://kriasoft.com/syncguard/",
  "repository": "github:kriasoft/syncguard",
  "bugs": "https://github.com/kriasoft/syncguard/issues",
  "funding": "https://github.com/sponsors/koistya",
  "engines": {
    "node": ">=20.0.0"
  },
  "type": "module",
  "main": "./index.js",
  "module": "./index.js",
  "types": "./index.d.ts",
  "files": [
    "**/*.js",
    "**/*.d.ts",
    "LICENSE",
    "README.md"
  ],
  "exports": {
    ".": {
      "types": "./index.d.ts",
      "default": "./index.js"
    },
    "./common": {
      "types": "./common/index.d.ts",
      "default": "./common/index.js"
    },
    "./redis": {
      "types": "./redis/index.d.ts",
      "default": "./redis/index.js"
    },
    "./postgres": {
      "types": "./postgres/index.d.ts",
      "default": "./postgres/index.js"
    },
    "./firestore": {
      "types": "./firestore/index.d.ts",
      "default": "./firestore/index.js"
    }
  },
  "peerDependencies": {
    "@google-cloud/firestore": "^8",
    "ioredis": "^5",
    "postgres": "^3"
  },
  "peerDependenciesMeta": {
    "@google-cloud/firestore": {
      "optional": true
    },
    "ioredis": {
      "optional": true
    },
    "postgres": {
      "optional": true
    }
  },
  "devDependencies": {
    "@google-cloud/firestore": "^8.0.0",
    "@types/bun": "1.3.4",
    "firebase-tools": "^14.27.0",
    "gh-pages": "^6.3.0",
    "husky": "^9.1.7",
    "ioredis": "^5.8.1",
    "lint-staged": "^16.2.7",
    "postgres": "^3.4.7",
    "prettier": "^3.7.4",
    "prettier-plugin-sql": "^0.19.2",
    "typescript": "^5.9.3",
    "vitepress": "^2.0.0-alpha.15"
  },
  "scripts": {
    "prepare": "husky",
    "build": "rm -rf ./dist && tsc && cp ./package.json ./LICENSE ./README.md ./dist",
    "dev": "tsc --watch",
    "format": "prettier --write .",
    "typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.test.json",
    "test": "bun test test/unit",
    "test:unit": "bun test test/unit",
    "test:unit:coverage": "bun test --coverage --coverage-reporter=lcov test/unit",
    "test:contracts": "bun test test/contracts",
    "test:contracts:coverage": "bun test --coverage --coverage-reporter=lcov test/contracts",
    "test:e2e": "bun test test/e2e",
    "test:e2e:coverage": "bun test --coverage --coverage-reporter=lcov test/e2e",
    "test:integration": "bun test test/contracts test/e2e",
    "test:integration:coverage": "bun test --coverage --coverage-reporter=lcov test/contracts test/e2e",
    "test:benchmarks": "RUN_BENCHMARKS=1 bun test test/benchmarks",
    "test:ci": "bun test test/unit test/contracts test/e2e",
    "test:all": "bun test test/unit test/contracts test/e2e",
    "test:watch": "bun test --watch test/unit",
    "redis": "docker run --rm --name redis-test -p 127.0.0.1:6379:6379 --tmpfs /data --health-cmd \"redis-cli ping\" --health-interval 2s --health-timeout 1s --health-retries 10 --health-start-period 0s redis:7-alpine",
    "firestore": "firebase emulators:start --only firestore",
    "docs:dev": "vitepress dev docs",
    "docs:build": "vitepress build docs",
    "docs:preview": "vitepress preview docs",
    "docs:deploy": "gh-pages -d docs/.vitepress/dist"
  },
  "sideEffects": false,
  "lint-staged": {
    "*.{ts,js,json,md}": [
      "bun prettier --write"
    ],
    "{common,firestore,redis,postgres}/**/*.ts": [
      "bash -c 'bun tsc --noEmit --skipLibCheck'"
    ]
  },
  "prettier": {
    "semi": true,
    "trailingComma": "all",
    "singleQuote": false,
    "printWidth": 80,
    "tabWidth": 2,
    "overrides": [
      {
        "files": "**/*.sql",
        "options": {
          "language": "postgresql",
          "database": "postgresql",
          "plugins": [
            "prettier-plugin-sql"
          ]
        }
      }
    ]
  }
}
