{
  "name": "signalk-server",
  "version": "2.14.0",
  "description": "An implementation of a [Signal K](http://signalk.org) server for boats.",
  "main": "index.js",
  "scripts": {
    "build": "tsc --build",
    "build:all": "npm run build:workspaces && npm run build && npm run build:docs",
    "build:docs": "typedoc",
    "build:workspaces": "npm run build --workspaces --if-present",
    "watch": "tsc --build -w",
    "prettier": "prettier --write .",
    "lint": "eslint --fix",
    "format": "npm run prettier && npm run lint",
    "ci-lint": "eslint && prettier --check .",
    "update-latest-release": "git checkout master && git branch -D latest-release || git checkout -b latest-release && git push -f origin/latest-release",
    "start": "bin/signalk-server",
    "test-only": "mocha 'test/**/*.[jt]s' 'dist/**/*.test.js'",
    "test": "npm run build && npm run test-only && npm run ci-lint",
    "heroku-postbuild": "npm run build:all",
    "master-changed-files": "git diff --name-status $(git tag | tail -1)..master"
  },
  "bin": {
    "signalk-server": "./bin/signalk-server",
    "signalk-server-setup": "./bin/signalk-server-setup",
    "signalk-generate-token": "./bin/signalk-generate-token"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/SignalK/signalk-server.git"
  },
  "bugs": {
    "url": "https://github.com/SignalK/signalk-server/issues"
  },
  "keywords": [
    "signalk",
    "kjson",
    "nmea",
    "seatalk",
    "gps",
    "sailing",
    "boat",
    "marine",
    "nautic"
  ],
  "contributors": [
    {
      "name": "Teppo Kurki",
      "email": "teppo.kurki@iki.fi"
    },
    {
      "name": "Scott Bender",
      "email": "scott@scottbender.net"
    },
    {
      "name": "Adrian Panazzolo"
    }
  ],
  "license": "Apache-2.0",
  "engines": {
    "node": ">=20"
  },
  "workspaces": [
    "packages/server-admin-ui-dependencies",
    "packages/server-admin-ui",
    "packages/streams",
    "packages/server-api",
    "packages/resources-provider-plugin",
    "packages/typedoc-theme"
  ],
  "dependencies": {
    "@signalk/course-provider": "^1.0.0",
    "@signalk/n2k-signalk": "^3.0.0",
    "@signalk/nmea0183-signalk": "^3.0.0",
    "@signalk/resources-provider": "^1.4.0",
    "@signalk/server-admin-ui": "2.14.x",
    "@signalk/server-api": "2.7.x",
    "@signalk/signalk-schema": "^1.7.1",
    "@signalk/streams": "^4.5.0",
    "api-schema-builder": "^2.0.11",
    "baconjs": "^1.0.1",
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.14.1",
    "busboy": "^1.6.0",
    "chalk": "^3.0.0",
    "clear": "^0.1.0",
    "command-exists": "^1.2.8",
    "compression": "^1.7.3",
    "cookie": "^0.4.0",
    "cookie-parser": "^1.4.3",
    "cors": "^2.5.2",
    "debug": "^4.3.3",
    "dnssd2": "1.0.0",
    "errorhandler": "^1.3.0",
    "esm-resolve": "^1.0.11",
    "express": "^4.10.4",
    "express-easy-zip": "^1.1.5",
    "express-namespace": "^0.1.1",
    "figlet": "^1.2.0",
    "file-timestamp-stream": "^2.1.2",
    "flatmap": "0.0.3",
    "geolib": "3.2.2",
    "get-installed-path": "^4.0.8",
    "inquirer": "^7.0.0",
    "json-patch": "^0.7.0",
    "jsonwebtoken": "^9.0.0",
    "listr": "^0.14.1",
    "lodash": "^4.17.4",
    "mdns-js": "^1.0.3",
    "minimist": "^1.1.0",
    "moment": "^2.10.6",
    "morgan": "^1.5.0",
    "ms": "^2.1.2",
    "ncp": "^2.0.0",
    "primus": "^7.0.0",
    "selfsigned": "^2.4.1",
    "semver": "^7.5.4",
    "split": "^1.0.0",
    "stat-mode": "^1.0.0",
    "swagger-ui-express": "^4.5.0",
    "unzipper": "^0.10.10",
    "uuid": "^8.1.0",
    "ws": "^7.0.0"
  },
  "optionalDependencies": {
    "@mxtommy/kip": "^3.2.0",
    "@signalk/freeboard-sk": "^2.0.0-beta.3",
    "@signalk/instrumentpanel": "0.x",
    "@signalk/set-system-time": "^1.2.0",
    "@signalk/signalk-to-nmea0183": "^1.0.0",
    "@signalk/udp-nmea-plugin": "^2.0.0",
    "@signalk/vesselpositions": "^1.0.0",
    "mdns": "^2.5.1",
    "serialport": "^11.0.0",
    "signalk-n2kais-to-nmea0183": "^1.3.1",
    "signalk-to-nmea2000": "^2.16.0"
  },
  "devDependencies": {
    "@eslint-react/eslint-plugin": "^1.45.1",
    "@eslint/js": "^9.24.0",
    "@tsconfig/node20": "^20.1.5",
    "@types/baconjs": "^0.7.34",
    "@types/busboy": "^1.5.0",
    "@types/chai": "^4.2.15",
    "@types/command-exists": "^1.2.0",
    "@types/cors": "^2.8.12",
    "@types/debug": "^4.1.5",
    "@types/express": "^4.17.1",
    "@types/lodash": "^4.14.139",
    "@types/mocha": "^10.0.1",
    "@types/ncp": "^2.0.5",
    "@types/semver": "^7.1.0",
    "@types/split": "^1.0.0",
    "@types/swagger-ui-express": "^4.1.3",
    "@types/unzipper": "^0.10.5",
    "@types/uuid": "^8.3.1",
    "chai": "^4.3.0",
    "chai-json-equal": "0.0.1",
    "chai-things": "^0.2.0",
    "eslint": "^9.24.0",
    "eslint-config-prettier": "^10.1.2",
    "eslint-plugin-chai-friendly": "^1.0.1",
    "eslint-plugin-prefer-arrow": "^1.2.3",
    "eslint-plugin-react": "^7.37.5",
    "globals": "^16.0.0",
    "lint-staged": "^10.0.3",
    "mocha": "^10.2.0",
    "prettier": "^3.5.3",
    "rimraf": "^6.0.1",
    "ts-node": "^10.9.1",
    "typedoc": "^0.28.1",
    "typedoc-plugin-mdn-links": "^5.0.1",
    "typedoc-signalk-theme": "^0.3.0",
    "typescript": "^5.8.2",
    "typescript-eslint": "^8.29.1"
  },
  "funding": "https://opencollective.com/signalk"
}
