{
  "name": "@bicycle-codes/crypto-util",
  "version": "0.2.8",
  "description": "Cryptography utility functions for the browser or node",
  "directories": {
    "example": "example",
    "test": "test"
  },
  "type": "module",
  "main": "dist/index.js",
  "files": [
    "./dist/*"
  ],
  "scripts": {
    "lint": "eslint \"./**/*.{ts,js}\"",
    "test": "npm run test-webcrypto && npm run test-sodium",
    "test-webcrypto": "npm run test:node && npm run test:browser",
    "test-noble": "npx esbuild --platform=node --format=esm --bundle test/noble.ts | node --input-type=module | tap-spec",
    "test-sodium": "npm run test-sodium:node && npm run test-sodium:browser",
    "test:browser": "npm run build-tests:browser && npm run test-tape-run",
    "test-sodium:node": "bash -c 'cd ./test && npx esbuild --platform=node --bundle sodium.ts | NODE_ENV=development node' | npx tap-spec",
    "test-sodium:browser": "npm run build-tests-sodium:browser && npm run test-tape-run.sodium",
    "test:node": "bash -c 'cd ./test && npx esbuild --format=esm --platform=node --bundle index.ts | node --input-type=module' | npx tap-spec",
    "test-noble:node": "bash -c 'cd ./test && npx esbuild --platform=node --bundle noble.ts | NODE_ENV=development node' | npx tap-spec",
    "test-noble:browser": "npm run build-tests-noble:browser && npm run test-tape-run.noble",
    "build-tests:browser": "esbuild test/index.ts --target=es2020 --bundle --keep-names > test/test-bundle.js",
    "build-tests-sodium:browser": "esbuild test/sodium.ts --target=es2020 --bundle --keep-names > test/test-bundle.sodium.js",
    "build-tests-noble:browser": "esbuild test/noble.ts --target=es2020 --bundle --keep-names > test/test-bundle.noble.js",
    "test-tape-run": "cat test/index.html | tape-run --input=html --static=test | tap-spec",
    "test-tape-run.sodium": "cat test/index.sodium.html | tape-run --input=html --static=test | tap-spec",
    "test-tape-run.noble": "cat test/index.noble.html | tape-run --input=html --static=test | tap-spec",
    "build-cjs": "esbuild src/*.ts src/aes/*.ts src/ecc/*.ts src/rsa/*.ts ./src/sodium/*.ts --format=cjs --keep-names --tsconfig=tsconfig.build.json --outdir=./dist --out-extension:.js=.cjs --sourcemap",
    "build-esm": "esbuild src/*.ts src/aes/*.ts src/ecc/*.ts src/rsa/*.ts ./src/sodium/*.ts --format=esm --metafile=dist/meta.json --keep-names --tsconfig=tsconfig.build.json --outdir=./dist --sourcemap && tsc --emitDeclarationOnly --project tsconfig.build.json --outDir dist",
    "build-esm:min": "esbuild src/index.ts src/aes/*.ts src/ecc/*.ts src/rsa/*.ts ./src/sodium/*.ts --format=esm --keep-names --bundle --tsconfig=tsconfig.build.json --minify --out-extension:.js=.min.js --outdir=./dist --sourcemap",
    "build-docs": "typedoc --tsconfig ./tsconfig.build.json ./src/index.ts",
    "build": "mkdir -p ./dist && rm -rf ./dist/* && npm run build-cjs && npm run build-esm && npm run build-esm:min",
    "preversion": "npm run lint",
    "toc": "markdown-toc --maxdepth 3 -i README.md",
    "version": "npm run toc && auto-changelog -p --template keepachangelog --breaking-pattern 'BREAKING CHANGE:' && git add CHANGELOG.md README.md",
    "postversion": "git push --follow-tags && npm publish",
    "prepublishOnly": "npm run build"
  },
  "exports": {
    ".": {
      "import": "./dist/index.js",
      "require": "./dist/index.cjs"
    },
    "./sodium": {
      "import": "./dist/sodium/index.js",
      "require": "./dist/sodium/index.cjs"
    },
    "./webcrypto": {
      "import": "./dist/webcrypto.js",
      "require": "./dist/webcrypto.cjs"
    },
    "./constants": {
      "import": "./dist/constants.js",
      "require": "./dist/constants.cjs"
    },
    "./types": {
      "import": "./dist/types.js",
      "require": "./dist/types.cjs"
    },
    "./sodium/aes": {
      "import": "./dist/sodium/aes.js",
      "require": "./dist/sodium/aes.cjs"
    },
    "./sodium/ecc": {
      "import": "./dist/sodium/ecc.js",
      "require": "./dist/sodium/ecc.cjs"
    },
    "./webcrypto/aes": {
      "import": "./dist/aes/webcrypto.js",
      "require": "./dist/aes/webcrypto.cjs"
    },
    "./webcrypto/rsa": {
      "import": "./dist/rsa/webcrypto.js",
      "require": "./dist/rsa/webcrypto.cjs"
    },
    "./webcrypto/ecc": {
      "import": "./dist/ecc/webcrypto.js",
      "require": "./dist/ecc/webcrypto.cjs"
    },
    "./*": {
      "import": [
        "./dist/*.js",
        "./dist/*"
      ],
      "require": [
        "./dist/*.cjs",
        "./dist/*"
      ]
    }
  },
  "dependencies": {
    "@bicycle-codes/one-webcrypto": "^1.1.2",
    "@noble/ciphers": "^1.0.0",
    "@noble/curves": "^1.6.0",
    "@noble/hashes": "^1.5.0",
    "libsodium": "^0.7.15",
    "libsodium-wrappers": "^0.7.15",
    "uint8arrays": "^5.1.0"
  },
  "devDependencies": {
    "@bicycle-codes/debug": "^0.7.2",
    "@bicycle-codes/tapzero": "^0.10.3",
    "@types/libsodium-wrappers": "^0.7.14",
    "@types/node": "^22.5.5",
    "@typescript-eslint/eslint-plugin": "^8.0.0",
    "@typescript-eslint/parser": "^8.0.0",
    "auto-changelog": "^2.4.0",
    "dotenv": "^16.4.5",
    "esbuild": "^0.25.0",
    "eslint": "^8.57.0",
    "eslint-config-standard": "^17.1.0",
    "markdown-toc": "^1.2.0",
    "tap-spec": "^5.0.0",
    "tape-run": "^11.0.0",
    "typedoc": "^0.27.0",
    "typescript": "^5.4.5"
  },
  "author": "nichoth <nichoth@nichoth.com> (https://nichoth.com)",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/bicycle-codes/crypto-util.git"
  },
  "keywords": [
    "crypto",
    "cryptography",
    "web"
  ],
  "types": "./dist/index.d.ts",
  "bugs": {
    "url": "https://github.com/bicycle-codes/crypto-util/issues"
  },
  "homepage": "https://github.com/bicycle-codes/crypto-util"
}
