{
  "name": "p2party",
  "description": "Protocol-v4 end-to-end encryption and reliable file transfer over a WebRTC room mesh",
  "version": "0.14.10",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/p2party/p2party-js.git"
  },
  "author": {
    "name": "p2party contributors",
    "email": "security@p2party.com",
    "url": "https://p2party.com"
  },
  "contributors": [
    {
      "name": "Dimitris Karoukis",
      "email": "dim@p2party.com",
      "url": "https://p2party.com"
    }
  ],
  "license": "Apache-2.0",
  "engines": {
    "node": ">=20"
  },
  "packageManager": "npm@11.6.2",
  "publishConfig": {
    "access": "public",
    "provenance": true,
    "registry": "https://registry.npmjs.org/"
  },
  "bugs": {
    "url": "https://github.com/p2party/p2party-js/issues"
  },
  "keywords": [
    "webrtc",
    "p2p",
    "e2ee",
    "end-to-end-encryption",
    "post-quantum",
    "ml-kem",
    "double-ratchet",
    "file-sharing",
    "cryptography",
    "mesh",
    "typescript"
  ],
  "homepage": "https://github.com/p2party/p2party-js#readme",
  "main": "lib/index.js",
  "module": "lib/index.mjs",
  "types": "lib/index.d.ts",
  "typings": "lib/index.d.ts",
  "exports": {
    ".": {
      "types": "./lib/index.d.ts",
      "import": "./lib/index.mjs",
      "require": "./lib/index.js",
      "default": "./lib/index.mjs"
    },
    "./session": {
      "types": "./lib/session.d.ts",
      "import": "./lib/session.mjs",
      "require": "./lib/session.js",
      "default": "./lib/session.mjs"
    },
    "./libcrypto.wasm": "./lib/libcrypto.wasm",
    "./libcrypto.provenance.json": "./lib/libcrypto.provenance.json",
    "./docs/getting-started.md": "./docs/getting-started.md",
    "./docs/session-api.md": "./docs/session-api.md",
    "./docs/protocol-v4-security.md": "./docs/protocol-v4-security.md",
    "./examples/standalone-e2ee.ts": "./examples/standalone-e2ee.ts",
    "./THIRD_PARTY_NOTICES.md": "./THIRD_PARTY_NOTICES.md",
    "./package.json": "./package.json",
    "./docs/references.md": "./docs/references.md",
    "./docs/wire-format.md": "./docs/wire-format.md"
  },
  "files": [
    "lib/**/*.d.ts",
    "lib/db.worker.js",
    "lib/index.js",
    "lib/index.mjs",
    "lib/index.min.js",
    "lib/session.js",
    "lib/session.mjs",
    "lib/libcrypto.wasm",
    "lib/libcrypto.provenance.json",
    "docs/getting-started.md",
    "docs/session-api.md",
    "docs/protocol-v4-security.md",
    "docs/wire-format.md",
    "docs/references.md",
    "docs/assets/p2party-cat.svg",
    "examples/standalone-e2ee.ts",
    "THIRD_PARTY_NOTICES.md"
  ],
  "scripts": {
    "prebuild": "cross-env NODE_ENV=development node scripts/emscripten.js && node scripts/updateWasmIntegrity.mjs",
    "build:worker": "cross-env NODE_ENV=development rollup --config rollup.worker.config.ts --configPlugin typescript",
    "build:package": "cross-env NODE_ENV=development rollup --config rollup.config.ts --configPlugin typescript",
    "build:session": "cross-env NODE_ENV=development P2PARTY_ROLLUP_TARGET=session rollup --config rollup.config.ts --configPlugin typescript",
    "build": "npm run build:worker && npm run build:package && npm run copy:wasm",
    "predist": "cross-env NODE_ENV=production node scripts/emscripten.js && node scripts/updateWasmIntegrity.mjs",
    "dist:worker": "cross-env NODE_ENV=production rollup --config rollup.worker.config.ts --configPlugin typescript",
    "dist:package": "cross-env NODE_ENV=production rollup --config rollup.config.ts --configPlugin typescript",
    "dist:session": "cross-env NODE_ENV=production P2PARTY_ROLLUP_TARGET=session rollup --config rollup.config.ts --configPlugin typescript",
    "dist:map": "rm -rf lib/*.map lib/**/*.map",
    "dist": "npm run dist:worker && npm run dist:package && npm run copy:wasm",
    "release:pack": "node scripts/buildRelease.mjs",
    "format": "bun prettier --write '.github/**/*.{yml,yaml}' 'scripts/**/*.{js,mjs,ts,json}' 'examples/**/*.ts' '*.{json,mjs,ts}' README.md ROADMAP.md CHANGELOG.md SECURITY.md CONTRIBUTING.md THIRD_PARTY_NOTICES.md 'docs/{getting-started.md,session-api.md,protocol-v4-security.md,references.md}' 'src/cryptography/{mnemonic.ts,random.ts,testModule.ts,wasmLoader.ts}' 'tests/cryptography/pake_ratchet.test.ts' 'src/handlers/{handleHandshake.ts,ratchetPersist.ts}' 'tests/handlers/handleHandshake.test.ts' src/index.ts src/session.ts && clang-format -i src/cryptography/mlkem*.[ch]",
    "format:check": "bun prettier --check '.github/**/*.{yml,yaml}' 'scripts/**/*.{js,mjs,ts,json}' 'examples/**/*.ts' '*.{json,mjs,ts}' README.md ROADMAP.md CHANGELOG.md SECURITY.md CONTRIBUTING.md THIRD_PARTY_NOTICES.md 'docs/{getting-started.md,session-api.md,protocol-v4-security.md,references.md}' 'src/cryptography/{mnemonic.ts,random.ts,testModule.ts,wasmLoader.ts}' 'tests/cryptography/pake_ratchet.test.ts' 'src/handlers/{handleHandshake.ts,ratchetPersist.ts}' 'tests/handlers/handleHandshake.test.ts' src/index.ts src/session.ts && clang-format --dry-run --Werror src/cryptography/mlkem*.[ch]",
    "lint": "eslint .",
    "test": "bun test tests",
    "typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.test.json",
    "example:standalone": "bun run examples/standalone-e2ee.ts",
    "store:prototype": "bun run src/blindRendezvous/prototype/store/storeServer.ts",
    "check": "npm run lint && npm run format:check && npm run typecheck && npm run test && npm run example:standalone",
    "copy:wasm": "cp src/cryptography/libcrypto.wasm src/cryptography/libcrypto.provenance.json lib/",
    "gzip:js": "gzip -9 -n < lib/index.min.js > lib/p2party.min.js.gz",
    "gzip:worker": "gzip -9 -n < lib/db.worker.js > lib/db.worker.js.gz",
    "gzip:wasm": "gzip -9 -n < lib/libcrypto.wasm > lib/libcrypto.wasm.gz",
    "gzip": "npm run gzip:js && npm run gzip:worker && npm run gzip:wasm",
    "gzip:cleanup": "rm -f lib/p2party.min.js.gz lib/db.worker.js.gz lib/libcrypto.wasm.gz",
    "integrity:js": "openssl dgst -sha384 -binary lib/index.min.js | openssl base64 -A > lib/p2party.min.js.integrity",
    "integrity:worker": "openssl dgst -sha384 -binary lib/db.worker.js | openssl base64 -A > lib/db.worker.js.integrity",
    "integrity:wasm": "openssl dgst -sha384 -binary lib/libcrypto.wasm | openssl base64 -A > lib/libcrypto.wasm.integrity",
    "integrity": "npm run integrity:js && npm run integrity:worker && npm run integrity:wasm",
    "integrity:cleanup": "rm -f lib/p2party.min.js.integrity lib/db.worker.js.integrity lib/libcrypto.wasm.integrity",
    "prepare:uploadcdn": "npm run gzip:js && npm run gzip:worker && npm run gzip:wasm",
    "actual:uploadcdn": "node --env-file-if-exists=.env scripts/uploadToCDN.mjs",
    "verify:cdn": "node scripts/verifyCDN.mjs",
    "cleanup:uploadcdn": "npm run gzip:cleanup && npm run integrity:cleanup",
    "uploadcdn": "npm run prepare:uploadcdn && npm run actual:uploadcdn && npm run cleanup:uploadcdn",
    "prepublishOnly": "node scripts/refuseDirectPublish.mjs",
    "preversion": "npm run lint && npm run format:check && npm run typecheck && npm run test && npm run example:standalone"
  },
  "devDependencies": {
    "@aws-sdk/client-s3": "^3.1095.0",
    "@eslint/js": "^10.0.1",
    "@rollup/plugin-commonjs": "^29.0.3",
    "@rollup/plugin-json": "^6.1.0",
    "@rollup/plugin-node-resolve": "^16.0.3",
    "@rollup/plugin-replace": "^6.0.3",
    "@rollup/plugin-terser": "^1.0.0",
    "@rollup/plugin-typescript": "^12.3.0",
    "@types/bun": "^1.3.14",
    "@types/emscripten": "^1.41.5",
    "@types/node": "^26.1.1",
    "cross-env": "^10.1.0",
    "eslint": "^10.8.0",
    "fake-indexeddb": "6.2.5",
    "globals": "^17.7.0",
    "idb": "^8.0.3",
    "prettier": "^3.9.6",
    "rollup": "^4.62.2",
    "rollup-plugin-analyzer": "^4.0.0",
    "typescript": "5.9.3",
    "typescript-eslint": "^8.65.0"
  },
  "dependencies": {
    "@reduxjs/toolkit": "^2.12.0"
  },
  "overrides": {
    "fast-xml-parser": "^5.10.1",
    "flatted": "^3.4.3",
    "picomatch": "^4.0.5"
  }
}
