{
  "name": "knxultimate",
  "description": "KNX protocol implementation for Node.js, support KNX/IP Tunneling/Routing, KNX/IP Secure and Data Secure, FT1.2/KBerry TP plain KNXas well as full secure KNX stack. This is the ENGINE of Node-Red KNX-Ultimate node. Go check it!",
  "version": "6.2.1",
  "main": "./build/index.js",
  "types": "./build/index.d.ts",
  "files": [
    "build/**/*.js",
    "build/**/*.d.ts",
    "build/**/*.js.map",
    "src/**/*.ts",
    "CHANGELOG.md",
    "DEVELOPMENT.md",
    "LICENSE",
    "README.md"
  ],
  "engines": {
    "node": ">=18.0.0"
  },
  "private": false,
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Supergiovane/KNXUltimate.git"
  },
  "scripts": {
    "prebuild": "npm run lint-fix",
    "build": "npm run clean && node -e \"setTimeout(()=>{},5000)\" && tsc -p tsconfig.build.json",
    "prepack": "npm run build && node scripts/cleanupPackArtifacts.js",
    "example:secure:multicast": "node -r esbuild-register -e \"require('./examples/sampleSecureMulticast.ts')\"",
    "example:secure:tunnel": "node -r esbuild-register -e \"require('./examples/sampleSecureTunnelTCP.ts')\"",
    "example:secure:tunnel:groupkeys": "node -r esbuild-register -e \"require('./examples/sampleSecureTunnelTCPGroupKeys.ts')\"",
    "example:tunnel:tcp": "node -r esbuild-register -e \"require('./examples/samplePlainTunnelTCP.ts')\"",
    "example:writeRaw": "node -r esbuild-register -e \"require('./examples/writeRaw.ts')\"",
    "example:respondRaw": "node -r esbuild-register -e \"require('./examples/respondRaw.ts')\"",
    "example:bridge:noderedmsg": "node -r esbuild-register -e \"require('./examples/bridgeTunnelToNodeRedMsg.ts')\"",
    "realsamples": "node scripts/realsamples.js",
    "lint": "eslint --ext .ts .",
    "lint-fix": "eslint --fix --ext .ts .",
    "test": "node -r ./test/setupForceColor -r esbuild-register --test --test-reporter tap test/unit/*.test.ts test/secure/*.test.ts",
    "test:dtp": "node -r ./test/setupForceColor -r esbuild-register --test --test-reporter tap test/dtp/*.test.ts",
    "test:integration": "node -r ./test/setupForceColor -r esbuild-register --test --test-reporter tap $(find test/integration -name '*.test.ts')",
    "test:gateway": "node -r esbuild-register --test --test-reporter spec test/real/KNXGateway.test.ts",
    "test:coverage": "nyc npm run test",
    "test:all": "npm run test && npm run test:dtp && npm run test:integration",
    "release": "read -p 'GITHUB_TOKEN: ' GITHUB_TOKEN && export GITHUB_TOKEN=$GITHUB_TOKEN && release-it",
    "release:patch": "npm run release -- patch",
    "release:minor": "npm run release -- minor",
    "release:major": "npm run release -- major",
    "newbetarelease": "read -p 'GITHUB_TOKEN: ' GITHUB_TOKEN && export GITHUB_TOKEN=$GITHUB_TOKEN && release-it minor --preRelease=beta",
    "consecutivebetarelease": "read -p 'GITHUB_TOKEN: ' GITHUB_TOKEN && export GITHUB_TOKEN=$GITHUB_TOKEN && release-it --preRelease",
    "clean": "node -e \"const fs=require('fs'), path=require('path'), dir='build'; if(!fs.existsSync(dir)){ fs.mkdirSync(dir,{recursive:true}); } else { for (const e of fs.readdirSync(dir)) fs.rmSync(path.join(dir,e),{recursive:true,force:true}); }\""
  },
  "license": "MIT",
  "author": {
    "name": "Massimo Saccani",
    "email": "maxsupergiovane@icloud.com",
    "url": "https://youtube.com/@maxsupervibe"
  },
  "maintainers": [
    {
      "name": "Massimo 'Supergiovane' Saccani",
      "email": "maxsupergiovane@icloud.com"
    }
  ],
  "contributors": [
    {
      "name": "Daniel Lando",
      "email": "daniel.sorridi@gmail.com"
    },
    {
      "name": "Andrea Zanetti",
      "email": "zanetti.sw@gmail.com"
    }
  ],
  "keywords": [
    "knx",
    "eib",
    "knx-ultimate",
    "knxultimate",
    "iot",
    "knx secure",
    "knx-secure",
    "data secure",
    "knx/ip",
    "knxnet/ip",
    "tunneling",
    "routing",
    "multicast",
    "ft1.2",
    "kberry",
    "twisted pair",
    "dpt",
    "datapoint",
    "node-red",
    "home automation",
    "building automation",
    "smart home",
    "automation",
    "protocol"
  ],
  "dependencies": {
    "binary-parser": "^2.3.0",
    "serialport": "^13.0.0",
    "winston": "^3.17.0",
    "xml2js": "0.6.0"
  },
  "devDependencies": {
    "@release-it/conventional-changelog": "^11.0.0",
    "@types/node": "^22.7.4",
    "@types/sinon": "^17.0.3",
    "@types/xml2js": "^0.4.14",
    "@typescript-eslint/eslint-plugin": "^7.7.0",
    "@typescript-eslint/parser": "^7.7.0",
    "esbuild-register": "^3.6.0",
    "eslint": "^8.57.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-airbnb-typescript": "^18.0.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-prettier": "^5.1.3",
    "nyc": "^17.1.0",
    "prettier": "^3.2.5",
    "release-it": "^20.0.0",
    "sinon": "^22.0.0",
    "typescript": "^5.6.2"
  },
  "overrides": {
    "uuid": "^11.1.1"
  }
}
