{
  "name": "balena-supervisor",
  "description": "This is balena's Supervisor, a program that runs on IoT devices and has the task of running user Apps (which are Docker containers), and updating them as the balena API informs it to.",
  "version": "17.0.1",
  "license": "Apache-2.0",
  "repository": {
    "type": "git",
    "url": "https://github.com/balena-os/balena-supervisor.git"
  },
  "scripts": {
    "start": "./entry.sh",
    "build": "npm run clean && npm run release && webpack",
    "lint": "balena-lint -e ts -e js src/ test/ typings/ build-utils/",
    "test:build": "tsc --noEmit && tsc --noEmit --project tsconfig.js.json",
    "test:unit": "mocha --config test/unit/.mocharc.js",
    "test:integration": "find test/integration -name *.spec.ts | xargs -n 1 -I {} sh -c 'mocha --config test/integration/.mocharc.js {} || exit 255'",
    "test:integration:single": "find test/integration -name *.spec.ts | xargs mocha --config test/integration/.mocharc.js",
    "test:legacy": "mocha --config test/legacy/.mocharc.js",
    "test:node": "npm run test:unit && npm run test:integration && npm run test:legacy",
    "test:env": "ARCH=$(./build-utils/detect-arch.sh) docker compose -f docker-compose.test.yml -f docker-compose.dev.yml run --build --rm sut sh; npm run compose:down",
    "test:compose": "(ARCH=$(./build-utils/detect-arch.sh) docker compose -f docker-compose.yml -f docker-compose.test.yml run --build --rm sut || docker compose logs); npm run compose:down",
    "test": "npm run lint && npm run test:build && npm run test:unit",
    "compose:down": "docker compose -f docker-compose.yml -f docker-compose.test.yml down --volumes",
    "prettify": "balena-lint -e ts -e js --fix src/ test/ typings/ build-utils/",
    "release": "tsc --project tsconfig.release.json && mv build/src/* build",
    "sync": "ts-node --files sync/sync.ts",
    "clean": "rimraf build",
    "install-native-deps": "./build-utils/install-dbus.sh",
    "flowzone-preinstall": "npm run install-native-deps",
    "prepare": "node -e \"try { (await import('husky')).default() } catch (e) { if (e.code !== 'ERR_MODULE_NOT_FOUND') throw e }\" --input-type module"
  },
  "private": true,
  "dependencies": {
    "@balena/systemd": "^0.5.0",
    "sqlite3": "^5.1.6"
  },
  "engines": {
    "node": ">=20 <23",
    "npm": ">=10"
  },
  "devDependencies": {
    "@balena/compose": "^6.0.0",
    "@balena/contrato": "^0.12.0",
    "@balena/es-version": "^1.0.3",
    "@balena/lint": "^8.0.2",
    "@balena/sbvr-types": "^9.1.0",
    "@types/bluebird": "^3.5.42",
    "@types/chai": "^4.3.20",
    "@types/chai-as-promised": "^8.0.1",
    "@types/chai-like": "^1.1.3",
    "@types/chai-things": "0.0.38",
    "@types/common-tags": "^1.8.4",
    "@types/dockerode": "^3.3.28",
    "@types/express": "^4.17.21",
    "@types/json-mask": "^2.0.3",
    "@types/JSONStream": "npm:@types/jsonstream@^0.8.33",
    "@types/lodash": "^4.17.0",
    "@types/memoizee": "^0.4.11",
    "@types/mocha": "^10.0.6",
    "@types/morgan": "^1.9.9",
    "@types/node": "^22.10.6",
    "@types/request": "^2.48.12",
    "@types/rewire": "^2.5.30",
    "@types/rwlock": "^5.0.6",
    "@types/semver": "^7.5.8",
    "@types/shell-quote": "^1.7.5",
    "@types/sinon": "^17.0.3",
    "@types/sinon-chai": "^3.2.12",
    "@types/supertest": "^6.0.2",
    "@types/tar-stream": "^3.1.3",
    "@types/webpack": "^5.28.5",
    "@types/yargs": "^17.0.32",
    "balena-auth": "^6.0.1",
    "balena-register-device": "^9.0.4",
    "balena-request": "^14.0.1",
    "blinking": "^1.0.1",
    "bluebird": "^3.7.2",
    "chai": "^4.5.0",
    "chai-as-promised": "^8.0.1",
    "chai-like": "^1.1.3",
    "chai-things": "^0.2.0",
    "chokidar": "^4.0.3",
    "common-tags": "^1.8.0",
    "copy-webpack-plugin": "^12.0.0",
    "deep-object-diff": "1.1.0",
    "docker-delta": "^4.1.0",
    "docker-progress": "^5.2.4",
    "dockerode": "^4.0.2",
    "duration-js": "^4.0.0",
    "express": "^4.21.2",
    "fork-ts-checker-webpack-plugin": "^9.0.2",
    "fp-ts": "^2.16.5",
    "got": "^14.4.6",
    "husky": "^9.1.7",
    "io-ts": "2.2.20",
    "io-ts-reporters": "^2.0.1",
    "json-mask": "^2.0.0",
    "JSONStream": "^1.3.5",
    "knex": "^3.1.0",
    "lint-staged": "^15.4.3",
    "livepush": "^3.5.1",
    "lodash": "^4.17.21",
    "mdns-resolver": "1.1.0",
    "memoizee": "^0.4.14",
    "mocha": "^10.4.0",
    "mocha-pod": "^2.0.10",
    "morgan": "^1.10.0",
    "network-checker": "^1.0.2",
    "nock": "^13.5.6",
    "node-loader": "^2.1.0",
    "nodemon": "^3.1.9",
    "pinejs-client-core": "^7.2.0",
    "pinejs-client-request": "^8.0.1",
    "pretty-ms": "^7.0.1",
    "request": "^2.88.2",
    "resumable-request": "^2.0.1",
    "rewire": "^7.0.0",
    "rimraf": "^5.0.10",
    "rwlock": "^5.0.0",
    "semver": "7.6.3",
    "shell-quote": "^1.8.2",
    "sinon": "^18.0.0",
    "sinon-chai": "^3.7.0",
    "strict-event-emitter-types": "^2.0.0",
    "supertest": "^7.0.0",
    "systeminformation": "^5.25.11",
    "tar-stream": "^3.1.7",
    "terser-webpack-plugin": "^5.3.11",
    "ts-loader": "^9.5.2",
    "ts-node": "^10.0.0",
    "tsconfig-paths": "^4.2.0",
    "typed-error": "^3.2.1",
    "typescript": "^5.7.3",
    "webpack": "^5.97.1",
    "webpack-cli": "^5.1.4",
    "winston": "^3.17.0",
    "yargs": "^17.7.2"
  },
  "versionist": {
    "publishedAt": "2025-03-25T20:41:20.717Z"
  }
}