@switchbot/homebridge-switchbot
Version:
The SwitchBot plugin allows you to access your SwitchBot device(s) from HomeKit.
119 lines • 4.18 kB
JSON
{
"name": "@switchbot/homebridge-switchbot",
"displayName": "SwitchBot",
"type": "module",
"version": "5.0.3",
"description": "The SwitchBot plugin allows you to access your SwitchBot device(s) from HomeKit.",
"author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
"contributors": [
{
"name": "Donavan Becker",
"url": "https://github.com/donavanbecker"
}
],
"license": "ISC",
"funding": [
{
"type": "Paypal",
"url": "https://paypal.me/donavanbecker"
},
{
"type": "GitHub",
"url": "https://github.com/sponsors/donavanbecker"
}
],
"homepage": "https://github.com/OpenWonderLabs/homebridge-switchbot#readme",
"repository": {
"type": "git",
"url": "git://github.com/OpenWonderLabs/homebridge-switchbot.git"
},
"bugs": {
"url": "https://github.com/OpenWonderLabs/homebridge-switchbot/issues"
},
"keywords": [
"homebridge-plugin",
"switchbot",
"lights",
"fan",
"outlet",
"hub",
"lightstrip",
"motion",
"contact",
"vacuum",
"lock",
"humidifier",
"humidity",
"temperature",
"bot",
"curtains",
"windows",
"ble",
"ir"
],
"main": "dist/index.js",
"bin": {},
"icon": "https://raw.githubusercontent.com/OpenWonderLabs/homebridge-switchbot/latest/branding/icon.png",
"engineStrict": true,
"engines": {
"homebridge": "^2.0.0-beta.89",
"node": "^22 || ^24"
},
"directories": {
"doc": "docs"
},
"scripts": {
"sync:device-types": "node scripts/sync-device-types.mjs",
"check": "npm install && npm outdated",
"ports:free": "node scripts/free-dev-ports.mjs",
"typecheck": "tsc --noEmit",
"lint": "eslint --no-warn-ignored src/**/*.ts test/**/*.ts src/homebridge-ui/**/*.html src/homebridge-ui/public/js/*.ts && npm run typecheck",
"lint:src": "eslint --no-warn-ignored src/**/*.ts",
"lint:test": "eslint --no-warn-ignored test/**/*.ts",
"lint:ui": "eslint --no-warn-ignored src/homebridge-ui/**/*.html",
"lint:fix": "eslint --no-warn-ignored src/**/*.ts test/**/*.ts src/homebridge-ui/**/*.html src/homebridge-ui/public/js/*.ts --fix && npm run typecheck",
"watch": "npm run ports:free && npm run build && npm run build:ui && npm run plugin-ui && npm link && nodemon",
"watch:ui": "npm run ports:free && bash -c 'npx homebridge -I -U -D ~/.homebridge-dev & HB_PID=$!; sleep 6; UIX_STORAGE_PATH=~/.homebridge-dev node ./node_modules/homebridge-config-ui-x/dist/bin/standalone.js & npm run watch:files'",
"watch:files": "nodemon",
"plugin-ui": "mkdir -p ./dist/homebridge-ui/public && if [ -d ./src/homebridge-ui/public ]; then rsync -a ./src/homebridge-ui/public/ ./dist/homebridge-ui/public/; fi && node scripts/build-ui.js",
"build": "npm run sync:device-types && npm run clean && tsc && npm run plugin-ui",
"build:ui": "tsc --project tsconfig.ui.json",
"prepublishOnly": "npm run lint && npm run build && npm run build:ui && npm run plugin-ui && npm run docs && npm run docs:lint",
"postpublish": "npm run clean && npm ci",
"clean": "shx rm -rf ./dist",
"test": "vitest run",
"test:watch": "vitest watch",
"test-coverage": "npm run test -- --coverage",
"docs": "typedoc",
"docs:lint": "typedoc --emit none --treatWarningsAsErrors"
},
"publishConfig": {
"access": "public"
},
"dependencies": {
"@homebridge/plugin-ui-utils": "^2.2.3",
"class-validator": "^0.15.1",
"node-switchbot": "^4.0.1"
},
"devDependencies": {
"@antfu/eslint-config": "^8.2.0",
"@types/debug": "^4.1.13",
"@types/fs-extra": "^11.0.4",
"@types/node": "^25.6.0",
"@types/semver": "^7.7.1",
"@types/source-map-support": "^0.5.10",
"@vitest/coverage-v8": "^4.1.4",
"esbuild": "^0.28.0",
"eslint": "^10.2.0",
"eslint-plugin-format": "^2.0.1",
"eslint-plugin-html": "^8.1.4",
"eslint-plugin-perfectionist": "^5.8.0",
"homebridge": "^2.0.0-beta.89",
"homebridge-config-ui-x": "^5.21.0",
"nodemon": "^3.1.14",
"shx": "^0.4.0",
"typedoc": "^0.28.19",
"typescript": "^6.0.2",
"vitest": "^4.1.4"
}
}