{ "name": "@hirosystems/stacks-blockchain-api", "version": "1.0.0", "main": "index.js", "scripts": { "dev": "cross-env NODE_ENV=development STACKS_CHAIN_ID=0x80000000 ts-node-transpile-only src/index.ts", "dev:watch": "cross-env NODE_ENV=development nodemon -e ts -x 'ts-node-transpile-only src/index.ts'", "dev:integrated": "npm run devenv:build && concurrently npm:dev npm:devenv:deploy", "dev:follower": "npm run devenv:build && concurrently npm:dev npm:devenv:follower", "test": "cross-env NODE_ENV=test jest --config ./tests/jest.config.js --coverage --runInBand", "test:subnets": "cross-env NODE_ENV=test jest --config ./tests/jest.config.subnets.js --coverage --runInBand", "test:2.5": "cross-env NODE_ENV=test jest --config ./tests/jest.config.2.5.js --coverage --runInBand", "test:rosetta": "cross-env NODE_ENV=test jest --config ./tests/jest.config.rosetta.js --coverage --runInBand", "test:rosetta-construction": "cross-env NODE_ENV=test jest --config ./tests/jest.config.rosetta-construction.js --coverage --runInBand", "test:rosetta-cli:data": "cross-env NODE_ENV=test STACKS_CHAIN_ID=0x80000000 jest --config ./tests/jest.config.rosetta-cli-data.js --coverage --runInBand", "test:rosetta-cli:construction": "cross-env NODE_ENV=test STACKS_CHAIN_ID=0x80000000 jest --config ./tests/jest.config.rosetta-cli-construction.js --coverage --runInBand", "test:bns": "cross-env NODE_ENV=test jest --config ./tests/jest.config.bns.js --coverage --runInBand", "test:bns-e2e": "cross-env NODE_ENV=test jest --config ./tests/jest.config.bns-e2e.js --coverage --runInBand", "test:rpc": "cross-env NODE_ENV=test jest --config ./tests/jest.config.rpc.js --coverage --runInBand", "test:event-replay": "cross-env NODE_ENV=test jest --config ./tests/jest.config.event-replay.js --coverage --runInBand", "test:btc-faucet": "cross-env NODE_ENV=test jest --config ./tests/jest.config.btc-faucet.js --coverage --runInBand", "test:tokens-metadata": "cross-env NODE_ENV=test jest --config ./tests/jest.config.tokens-metadata.js --coverage --runInBand", "test:tokens-strict": "cross-env NODE_ENV=test jest --config ./tests/jest.config.tokens-strict.js --coverage --runInBand", "test:watch": "cross-env NODE_ENV=test jest --config ./tests/jest.config.js --watch", "test:integration": "concurrently \"docker compose -f docker/docker-compose.dev.postgres.yml up --force-recreate -V\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.js --no-cache --runInBand; npm run devenv:stop:pg\"", "test:integration:subnets": "concurrently --hide \"devenv:deploy:subnets\" \"npm:devenv:deploy:subnets\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.subnets.js --no-cache --runInBand; npm run devenv:stop:subnets\"", "test:integration:2.5": "concurrently --hide \"devenv:deploy-krypton\" \"npm:devenv:deploy-krypton\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.2.5.js --no-cache --runInBand; npm run devenv:stop-krypton\"", "test:integration:rosetta": "concurrently \"npm:devenv:deploy-krypton\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.rosetta.js --no-cache --runInBand; npm run devenv:stop-krypton\"", "test:integration:rosetta-construction": "concurrently \"npm:devenv:deploy-krypton\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.rosetta-construction.js --no-cache --runInBand; npm run devenv:stop-krypton\"", "test:integration:rosetta-cli:data": "concurrently \"npm:devenv:deploy-krypton\" \"cross-env NODE_ENV=test STACKS_CHAIN_ID=0x80000000 jest --config ./tests/jest.config.rosetta-cli-data.js --no-cache --runInBand; npm run devenv:stop-krypton\"", "test:integration:rosetta-cli:construction": "concurrently \"npm:devenv:deploy-krypton\" \"cross-env NODE_ENV=test STACKS_CHAIN_ID=0x80000000 jest --config ./tests/jest.config.rosetta-cli-construction.js --no-cache --runInBand; npm run devenv:stop-krypton\"", "test:integration:bns": "concurrently \"npm:devenv:deploy-krypton\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.bns.js --no-cache --runInBand; npm run devenv:stop-krypton\"", "test:integration:bns-e2e": "concurrently \"npm:devenv:deploy-krypton\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.bns-e2e.js --no-cache --runInBand; npm run devenv:stop-krypton\"", "test:integration:rpc": "concurrently \"npm:devenv:deploy-krypton\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.rpc.js --no-cache --runInBand; npm run devenv:stop-krypton\"", "test:integration:event-replay": "concurrently \"docker compose -f docker/docker-compose.dev.postgres.yml up --force-recreate -V\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.event-replay.js --no-cache --runInBand; npm run devenv:stop\"", "test:integration:btc-faucet": "concurrently \"docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.bitcoind.yml up --force-recreate -V\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.btc-faucet.js --no-cache --runInBand; npm run devenv:stop\"", "generate:git-info": "rimraf .git-info && api-toolkit-git-info", "build": "npm run generate:git-info && rimraf ./lib && tsc -p tsconfig.build.json", "build:tests": "tsc -p tsconfig.json", "build:docs": "npm ci --prefix docs && npm run build --prefix docs && npm ci --prefix client && npm run generate:docs --prefix client", "start": "node ./lib/index.js", "lint": "npm run lint:eslint && npm run lint:prettier", "lint:unused-exports": "ts-unused-exports tsconfig.json --showLineNumber", "lint:eslint": "eslint . --ext .js,.jsx,.ts,.tsx -f unix", "lint:prettier": "prettier --check src/**/*.{ts,json}", "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx -f unix --fix && prettier --write --check src/**/*.{ts,json}", "migrate": "node-pg-migrate -m migrations", "devenv:build": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.stacks-blockchain.yml -f docker/docker-compose.dev.bitcoind.yml -f docker/docker-compose.dev.rosetta-cli.yml build --no-cache", "devenv:deploy": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.stacks-blockchain.yml -f docker/docker-compose.dev.bitcoind.yml up --force-recreate -V", "devenv:follower": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.stacks-blockchain-follower.yml up --force-recreate -V", "devenv:stop": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.stacks-blockchain.yml -f docker/docker-compose.dev.bitcoind.yml down -v -t 0", "devenv:deploy:subnets": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.subnets.yml up --force-recreate -V", "devenv:stop:subnets": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.subnets.yml down -v -t 0", "devenv:deploy-krypton": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.stacks-krypton.yml up --force-recreate -V", "devenv:stop-krypton": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.stacks-krypton.yml down -v -t 0", "devenv:stop:pg": "docker compose -f docker/docker-compose.dev.postgres.yml down -v -t 0", "devenv:logs": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.stacks-blockchain.yml -f docker/docker-compose.dev.bitcoind.yml logs -t -f", "devenv:logs:subnets": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.subnets.yml logs -t -f", "devenv:logs-krypton": "docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.stacks-krypton.yml logs -t -f" }, "repository": { "type": "git", "url": "git+https://github.com/hirosystems/stacks-blockchain-api.git" }, "author": "Hiro Systems PBC (https://hiro.so)", "license": "GPL-3.0", "bugs": { "url": "https://github.com/hirosystems/stacks-blockchain-api/issues" }, "homepage": "https://github.com/hirosystems/stacks-blockchain-api#readme", "prettier": "@stacks/prettier-config", "engines": { "node": ">=18" }, "engineStrict": true, "commitlint": { "extends": [ "@commitlint/config-conventional" ] }, "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }, "dependencies": { "@apidevtools/json-schema-ref-parser": "9.0.9", "@hirosystems/api-toolkit": "1.3.3", "@promster/express": "6.0.0", "@promster/server": "6.0.6", "@promster/types": "3.2.3", "@scure/base": "1.1.1", "@sinclair/typebox": "0.31.28", "@stacks/common": "6.8.1", "@stacks/network": "6.8.1", "@stacks/stacking": "6.9.0", "@stacks/transactions": "6.9.0", "@types/express-list-endpoints": "4.0.1", "@types/lru-cache": "5.1.1", "@types/ws": "7.4.7", "ajv": "6.12.6", "bignumber.js": "9.0.2", "bitcoinjs-lib": "6.1.0", "bluebird": "3.7.2", "c32check": "1.1.3", "chokidar": "3.5.3", "coinselect": "3.1.12", "cors": "2.8.5", "cross-env": "7.0.3", "dotenv": "8.6.0", "dotenv-flow": "3.2.0", "duckdb": "0.8.1", "ecpair": "2.1.0", "elliptic": "6.5.4", "escape-goat": "3.0.0", "evt": "1.10.1", "express": "4.17.3", "express-list-endpoints": "5.0.0", "getopts": "2.3.0", "http-proxy-middleware": "2.0.1", "jsonc-parser": "3.0.0", "jsonrpc-lite": "2.2.0", "lru-cache": "6.0.0", "micro-base58": "0.5.1", "node-fetch": "2.6.7", "node-pg-migrate": "6.2.1", "p-queue": "6.6.2", "path-to-regexp": "6.2.0", "pg": "8.7.1", "pg-copy-streams": "5.1.1", "pg-cursor": "2.7.1", "pino": "8.11.0", "pino-http": "8.3.3", "pino-pretty": "10.3.0", "postgres": "3.3.1", "prom-client": "14.0.1", "rpc-bitcoin": "2.0.0", "socket.io": "4.6.1", "source-map-support": "0.5.21", "split2": "3.2.2", "stacks-encoding-native-js": "1.1.0-beta.4", "strict-event-emitter-types": "2.0.0", "tiny-secp256k1": "2.2.1", "ts-unused-exports": "7.0.3", "uuid": "8.3.2", "ws": "7.5.9", "zone-file": "2.0.0-beta.3" }, "devDependencies": { "@actions/core": "1.10.0", "@actions/exec": "1.1.0", "@actions/github": "2.2.0", "@actions/io": "1.1.1", "@commitlint/cli": "9.1.2", "@commitlint/config-conventional": "10.0.0", "@stacks/eslint-config": "1.2.0", "@types/ajv": "1.0.0", "@types/bluebird": "3.5.36", "@types/cors": "2.8.12", "@types/dotenv-flow": "3.2.0", "@types/elliptic": "6.4.14", "@types/express": "4.17.13", "@types/is-ci": "3.0.0", "@types/jest": "29.5.6", "@types/node": "18.13.0", "@types/node-fetch": "2.5.12", "@types/pg": "7.14.11", "@types/pg-copy-streams": "1.2.1", "@types/source-map-support": "0.5.4", "@types/split2": "2.1.6", "@types/supertest": "2.0.11", "@types/tiny-secp256k1": "2.0.1", "@types/uuid": "7.0.5", "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.51.0", "concurrently": "7.3.0", "docker-compose": "0.23.14", "eslint": "8.29.0", "eslint-plugin-prettier": "4.2.1", "eslint-plugin-tsdoc": "0.2.17", "fastify": "4.15.0", "husky": "4.3.8", "is-ci": "3.0.1", "jest": "29.7.0", "nock": "13.2.1", "nodemon": "2.0.19", "pg-connection-string": "2.5.0", "prettier": "2.8.8", "rimraf": "5.0.0", "rpc-websocket-client": "1.1.4", "socket.io-client": "4.5.4", "supertest": "4.0.2", "ts-jest": "29.1.1", "ts-node": "10.8.2", "typescript": "4.7.4", "why-is-node-running": "2.2.0" }, "optionalDependencies": { "bufferutil": "4.0.5", "utf-8-validate": "5.0.7" } }