{
  "name": "@balena/open-balena-api",
  "description": "Internet of things, Made Simple",
  "version": "44.3.0",
  "license": "AGPL-3.0",
  "repository": {
    "type": "git",
    "url": "https://github.com/balena-io/open-balena-api"
  },
  "type": "module",
  "main": "dist/index",
  "exports": {
    ".": "./dist/index.js",
    "./cache": "./dist/infra/cache/index.js",
    "./config": "./dist/lib/config.js",
    "./models/balena.sbvr": "./dist/balena.sbvr",
    "./models/balena-model.d.ts": "./dist/balena-model.d.ts",
    "./models/balena-init.sql": "./dist/balena-init.sql",
    "./models/v6.sbvr": "./dist/translations/v6/v6.sbvr",
    "./models/v7.sbvr": "./dist/translations/v7/v7.sbvr",
    "./mocks/aws-sdk-wrapper": "./dist/features/device-types/storage/aws-sdk-wrapper.js"
  },
  "files": [
    "dist/"
  ],
  "scripts": {
    "fasttest": "./automation/fasttest.sh",
    "fasttest-debug": "./automation/fasttest.sh --debug",
    "fasttest-stop": "docker compose -f docker-compose.test-custom.yml down",
    "fasttest-build": "docker compose -f docker-compose.test-custom.yml build sut-fast",
    "fasttest-cleanup": "docker compose -f docker-compose.test-custom.yml down --rmi local --volumes",
    "materialize-config": "npm run fasttest -- --generate-config .materialized-config.json",
    "generate-model-schema": "npm run materialize-config && npx -p @balena/pinejs abstract-sql-compiler compile .materialized-config.json .materialized-schema.sql",
    "_generate-model-types": "npx abstract-sql-compiler generate-types .materialized-config.json > src/balena-model.ts && balena-lint --typescript --fix src/balena-model.ts",
    "generate-model-types": "npm run materialize-config && npm run _generate-model-types",
    "check-model-types-generated": "./automation/check-model-types-generated.sh",
    "build": "npm run clean && tsc --project ./tsconfig.build.json && copyup \"src/**/*.sbvr\" \"src/**/*.sql\" dist/",
    "clean": "rimraf dist/",
    "cleanup": "rm .fast-boot.json .pinejs-cache.json || true",
    "lint": "balena-lint src/ test/ init.ts index.js && tsc --noEmit --project .",
    "lint-fix": "balena-lint --fix src/ test/ init.ts index.js",
    "prepack": "npm run build",
    "test:compose": "./automation/test.sh",
    "test": "npm run lint",
    "prepare": "node -e \"try { (await import('husky')).default() } catch (e) { if (e.code !== 'ERR_MODULE_NOT_FOUND') throw e }\" --input-type module"
  },
  "dependencies": {
    "@balena/abstract-sql-compiler": "^11.3.18",
    "@balena/abstract-sql-to-typescript": "^6.1.3",
    "@balena/env-parsing": "^1.2.8",
    "@balena/es-version": "^1.0.4",
    "@balena/node-metrics-gatherer": "^6.1.2",
    "@balena/pinejs": "^24.0.0",
    "@balena/pinejs-webresource-cloudfront": "^2.0.2",
    "@balena/pinejs-webresource-s3": "^2.1.27",
    "@opentelemetry/api": "^1.9.0",
    "@opentelemetry/context-async-hooks": "^2.5.0",
    "@opentelemetry/core": "^2.5.0",
    "@opentelemetry/instrumentation-express": "0.59.0",
    "@opentelemetry/instrumentation-http": "0.211.0",
    "@opentelemetry/sdk-node": "0.211.0",
    "@sentry/node": "^10.43.0",
    "@sentry/opentelemetry": "^10.43.0",
    "@sindresorhus/fnv1a": "^3.1.0",
    "@swc-node/register": "^1.11.1",
    "@swc/core": "^1.15.18",
    "@types/basic-auth": "^1.1.8",
    "@types/cache-manager": "^4.0.6",
    "@types/cache-manager-ioredis": "^2.0.8",
    "@types/common-tags": "^1.8.4",
    "@types/compressible": "^2.0.3",
    "@types/compression": "^1.8.1",
    "@types/cookie-session": "^2.0.49",
    "@types/escape-html": "^1.0.4",
    "@types/express": "^4.17.25",
    "@types/express-serve-static-core": "^4.19.8",
    "@types/json-schema": "^7.0.15",
    "@types/jsonwebtoken": "^9.0.10",
    "@types/lodash": "^4.17.24",
    "@types/memoizee": "^0.4.12",
    "@types/morgan": "^1.9.10",
    "@types/ndjson": "^2.0.4",
    "@types/node": "^24.12.0",
    "@types/node-schedule": "^2.1.8",
    "@types/on-finished": "^2.3.5",
    "@types/passport-jwt": "^4.0.1",
    "@types/proxy-addr": "^2.0.3",
    "@types/randomstring": "^1.3.0",
    "@types/redlock": "^4.0.8",
    "@types/request": "^2.48.13",
    "@types/semver": "^7.7.1",
    "@types/statuses": "^2.0.6",
    "@types/validator": "^13.15.10",
    "@types/ws": "^8.18.1",
    "avsc": "^5.7.9",
    "aws-sdk": "^2.1693.0",
    "balena-device-config": "^6.3.1",
    "balena-semver": "^4.0.2",
    "basic-auth": "^2.0.1",
    "body-parser": "^2.2.2",
    "bufferutil": "^4.1.0",
    "cache-manager": "^4.1.0",
    "cache-manager-ioredis": "^2.1.0",
    "common-tags": "^1.8.2",
    "compressible": "^2.0.18",
    "compression": "^1.8.1",
    "cookie-parser": "^1.4.7",
    "cookie-session": "^2.1.1",
    "escape-html": "^1.0.3",
    "eventemitter3": "^5.0.4",
    "express": "^4.22.1",
    "fast-glob": "^3.3.3",
    "ioredis": "^5.10.0",
    "ipaddr.js": "^2.3.0",
    "json-schema-to-ts": "^3.1.1",
    "jsonwebtoken": "^9.0.3",
    "lodash": "^4.17.23",
    "loki-grpc-client": "^2.2.0",
    "memoizee": "^0.4.17",
    "morgan": "^1.10.1",
    "ndjson": "^2.0.0",
    "node-schedule": "^2.1.1",
    "on-finished": "^2.4.1",
    "p-map": "^7.0.4",
    "p-props": "^6.1.0",
    "passport": "^0.7.0",
    "passport-jwt": "^4.0.1",
    "pinejs-client-core": "^8.5.2",
    "proxy-addr": "^2.0.7",
    "randomstring": "^1.3.1",
    "rate-limiter-flexible": "^9.1.1",
    "redis": "^4.7.1",
    "redlock": "^4.2.0",
    "request": "^2.88.2",
    "rsmq": "^0.12.4",
    "semver": "^7.7.4",
    "snappy": "^7.3.3",
    "statuses": "^2.0.2",
    "strict-event-emitter-types": "^2.0.0",
    "supervisor": "^0.12.0",
    "tar": "^7.5.11",
    "thirty-two": "^1.0.2",
    "typed-error": "^3.2.2",
    "typescript": "^6.0.2",
    "uuid": "^14.0.0",
    "validator": "^13.15.26",
    "ws": "^8.19.0"
  },
  "devDependencies": {
    "@balena/lint": "^9.4.0",
    "@types/chai": "^5.2.3",
    "@types/mocha": "^10.0.10",
    "@types/mockery": "^1.4.33",
    "@types/sinon": "^21.0.0",
    "@types/supertest": "^7.2.0",
    "@types/temp": "^0.9.4",
    "chai": "^6.2.2",
    "copyfiles": "^2.4.1",
    "husky": "^9.1.7",
    "lint-staged": "^16.3.3",
    "mocha": "^11.7.5",
    "nock": "^13.5.6",
    "p-timeout": "^7.0.1",
    "pinejs-client-supertest": "^3.1.1",
    "rimraf": "^6.1.3",
    "sinon": "^21.0.2",
    "supertest": "^7.2.2"
  },
  "engines": {
    "node": "^24.5.0",
    "npm": "^11.5.2"
  },
  "mocha": {
    "reporter": "spec",
    "sort": true,
    "timeout": 20000,
    "delay": true,
    "exit": true,
    "_": "index.js",
    "import": "@swc-node/register/esm-register"
  },
  "versionist": {
    "publishedAt": "2026-04-28T01:28:21.858Z"
  }
}
