mirror of
				https://github.com/KevinMidboe/homebridge-examples.git
				synced 2025-10-29 17:40:26 +00:00 
			
		
		
		
	Initial commit
This commit is contained in:
		
							
								
								
									
										205
									
								
								accessory-example-typescript/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										205
									
								
								accessory-example-typescript/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,205 @@ | ||||
| # Created by .ignore support plugin (hsz.mobi) | ||||
| ### HAP-NodeJS files | ||||
| persist | ||||
|  | ||||
| ### Node template | ||||
| # Logs | ||||
| logs | ||||
| *.log | ||||
| npm-debug.log* | ||||
| yarn-debug.log* | ||||
| yarn-error.log* | ||||
| lerna-debug.log* | ||||
|  | ||||
| # Diagnostic reports (https://nodejs.org/api/report.html) | ||||
| report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json | ||||
|  | ||||
| # Runtime data | ||||
| pids | ||||
| *.pid | ||||
| *.seed | ||||
| *.pid.lock | ||||
|  | ||||
| # Directory for instrumented libs generated by jscoverage/JSCover | ||||
| lib-cov | ||||
|  | ||||
| # Coverage directory used by tools like istanbul | ||||
| coverage | ||||
| *.lcov | ||||
|  | ||||
| # nyc test coverage | ||||
| .nyc_output | ||||
|  | ||||
| # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) | ||||
| .grunt | ||||
|  | ||||
| # Bower dependency directory (https://bower.io/) | ||||
| bower_components | ||||
|  | ||||
| # node-waf configuration | ||||
| .lock-wscript | ||||
|  | ||||
| # Compiled binary addons (https://nodejs.org/api/addons.html) | ||||
| build/Release | ||||
|  | ||||
| # Dependency directories | ||||
| node_modules/ | ||||
| jspm_packages/ | ||||
|  | ||||
| # Snowpack dependency directory (https://snowpack.dev/) | ||||
| web_modules/ | ||||
|  | ||||
| # TypeScript cache | ||||
| *.tsbuildinfo | ||||
|  | ||||
| # Optional npm cache directory | ||||
| .npm | ||||
|  | ||||
| # Optional eslint cache | ||||
| .eslintcache | ||||
|  | ||||
| # Microbundle cache | ||||
| .rpt2_cache/ | ||||
| .rts2_cache_cjs/ | ||||
| .rts2_cache_es/ | ||||
| .rts2_cache_umd/ | ||||
|  | ||||
| # Optional REPL history | ||||
| .node_repl_history | ||||
|  | ||||
| # Output of 'npm pack' | ||||
| *.tgz | ||||
|  | ||||
| # Yarn Integrity file | ||||
| .yarn-integrity | ||||
|  | ||||
| # dotenv environment variables file | ||||
| .env | ||||
| .env.test | ||||
|  | ||||
| # parcel-bundler cache (https://parceljs.org/) | ||||
| .cache | ||||
| .parcel-cache | ||||
|  | ||||
| # Next.js build output | ||||
| .next | ||||
|  | ||||
| # Nuxt.js build / generate output | ||||
| .nuxt | ||||
| dist | ||||
|  | ||||
| # Gatsby files | ||||
| .cache/ | ||||
| # Comment in the public line in if your project uses Gatsby and not Next.js | ||||
| # https://nextjs.org/blog/next-9-1#public-directory-support | ||||
| # public | ||||
|  | ||||
| # vuepress build output | ||||
| .vuepress/dist | ||||
|  | ||||
| # Serverless directories | ||||
| .serverless/ | ||||
|  | ||||
| # FuseBox cache | ||||
| .fusebox/ | ||||
|  | ||||
| # DynamoDB Local files | ||||
| .dynamodb/ | ||||
|  | ||||
| # TernJS port file | ||||
| .tern-port | ||||
|  | ||||
| # Stores VSCode versions used for testing VSCode extensions | ||||
| .vscode-test | ||||
|  | ||||
| # yarn v2 | ||||
|  | ||||
| .yarn/cache | ||||
| .yarn/unplugged | ||||
| .yarn/build-state.yml | ||||
| .pnp.* | ||||
|  | ||||
| ### VisualStudioCode template | ||||
| .vscode/* | ||||
| !.vscode/settings.json | ||||
| !.vscode/tasks.json | ||||
| !.vscode/launch.json | ||||
| !.vscode/extensions.json | ||||
| *.code-workspace | ||||
|  | ||||
| # Local History for Visual Studio Code | ||||
| .history/ | ||||
|  | ||||
| ### JetBrains template | ||||
| # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider | ||||
| # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 | ||||
|  | ||||
| # User-specific stuff | ||||
| .idea/**/workspace.xml | ||||
| .idea/**/tasks.xml | ||||
| .idea/**/usage.statistics.xml | ||||
| .idea/**/dictionaries | ||||
| .idea/**/shelf | ||||
|  | ||||
| # Generated files | ||||
| .idea/**/contentModel.xml | ||||
|  | ||||
| # Sensitive or high-churn files | ||||
| .idea/**/dataSources/ | ||||
| .idea/**/dataSources.ids | ||||
| .idea/**/dataSources.local.xml | ||||
| .idea/**/sqlDataSources.xml | ||||
| .idea/**/dynamic.xml | ||||
| .idea/**/uiDesigner.xml | ||||
| .idea/**/dbnavigator.xml | ||||
|  | ||||
| # Gradle | ||||
| .idea/**/gradle.xml | ||||
| .idea/**/libraries | ||||
|  | ||||
| # Gradle and Maven with auto-import | ||||
| # When using Gradle or Maven with auto-import, you should exclude module files, | ||||
| # since they will be recreated, and may cause churn.  Uncomment if using | ||||
| # auto-import. | ||||
| # .idea/artifacts | ||||
| # .idea/compiler.xml | ||||
| # .idea/jarRepositories.xml | ||||
| # .idea/modules.xml | ||||
| # .idea/*.iml | ||||
| # .idea/modules | ||||
| # *.iml | ||||
| # *.ipr | ||||
|  | ||||
| # CMake | ||||
| cmake-build-*/ | ||||
|  | ||||
| # Mongo Explorer plugin | ||||
| .idea/**/mongoSettings.xml | ||||
|  | ||||
| # File-based project format | ||||
| *.iws | ||||
|  | ||||
| # IntelliJ | ||||
| out/ | ||||
|  | ||||
| # mpeltonen/sbt-idea plugin | ||||
| .idea_modules/ | ||||
|  | ||||
| # JIRA plugin | ||||
| atlassian-ide-plugin.xml | ||||
|  | ||||
| # Cursive Clojure plugin | ||||
| .idea/replstate.xml | ||||
|  | ||||
| # Crashlytics plugin (for Android Studio and IntelliJ) | ||||
| com_crashlytics_export_strings.xml | ||||
| crashlytics.properties | ||||
| crashlytics-build.properties | ||||
| fabric.properties | ||||
|  | ||||
| # Editor-based Rest Client | ||||
| .idea/httpRequests | ||||
|  | ||||
| # Android studio 3.1+ serialized cache file | ||||
| .idea/caches/build_file_checksums.ser | ||||
|  | ||||
							
								
								
									
										14
									
								
								accessory-example-typescript/LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								accessory-example-typescript/LICENSE
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| ISC License (ISC) | ||||
| Copyright (c) 2020 Andreas Bauer | ||||
|  | ||||
| Permission to use, copy, modify, and/or distribute this software for any | ||||
| purpose with or without fee is hereby granted, provided that the above | ||||
| copyright notice and this permission notice appear in all copies. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||||
| REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||||
| AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||||
| INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||||
| LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||||
| OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||||
| PERFORMANCE OF THIS SOFTWARE. | ||||
							
								
								
									
										588
									
								
								accessory-example-typescript/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										588
									
								
								accessory-example-typescript/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,588 @@ | ||||
| { | ||||
|   "name": "homebridge-accessory-example", | ||||
|   "version": "1.0.0", | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
|     "@types/color-name": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", | ||||
|       "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "@types/node": { | ||||
|       "version": "10.17.19", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.19.tgz", | ||||
|       "integrity": "sha512-46/xThm3zvvc9t9/7M3AaLEqtOpqlYYYcCZbpYVAQHG20+oMZBkae/VMrn4BTi6AJ8cpack0mEXhGiKmDNbLrQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "ansi-styles": { | ||||
|       "version": "4.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", | ||||
|       "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/color-name": "^1.1.1", | ||||
|         "color-convert": "^2.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "array-flatten": { | ||||
|       "version": "2.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", | ||||
|       "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "balanced-match": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", | ||||
|       "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "bonjour-hap": { | ||||
|       "version": "3.5.4", | ||||
|       "resolved": "https://registry.npmjs.org/bonjour-hap/-/bonjour-hap-3.5.4.tgz", | ||||
|       "integrity": "sha512-MgU27SEZYQ09Skm71Xa7SZoAg259V4IlAJNWaloFVMlYDn1OjJy3nkwSixRHnDzrcLWocVI84f9exI1ObZChBw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "array-flatten": "^2.1.0", | ||||
|         "deep-equal": "^1.0.1", | ||||
|         "dns-equal": "^1.0.0", | ||||
|         "dns-txt": "^2.0.2", | ||||
|         "multicast-dns": "^7.2.0", | ||||
|         "multicast-dns-service-types": "^1.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "brace-expansion": { | ||||
|       "version": "1.1.11", | ||||
|       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||||
|       "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "balanced-match": "^1.0.0", | ||||
|         "concat-map": "0.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "buffer-from": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", | ||||
|       "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "buffer-indexof": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", | ||||
|       "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "chalk": { | ||||
|       "version": "3.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", | ||||
|       "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "ansi-styles": "^4.1.0", | ||||
|         "supports-color": "^7.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "color-convert": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||||
|       "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "color-name": "~1.1.4" | ||||
|       } | ||||
|     }, | ||||
|     "color-name": { | ||||
|       "version": "1.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||||
|       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "commander": { | ||||
|       "version": "5.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/commander/-/commander-5.0.0.tgz", | ||||
|       "integrity": "sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "concat-map": { | ||||
|       "version": "0.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||||
|       "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "debug": { | ||||
|       "version": "4.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", | ||||
|       "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "ms": "^2.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "decimal.js": { | ||||
|       "version": "10.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", | ||||
|       "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "deep-equal": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", | ||||
|       "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "is-arguments": "^1.0.4", | ||||
|         "is-date-object": "^1.0.1", | ||||
|         "is-regex": "^1.0.4", | ||||
|         "object-is": "^1.0.1", | ||||
|         "object-keys": "^1.1.1", | ||||
|         "regexp.prototype.flags": "^1.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "define-properties": { | ||||
|       "version": "1.1.3", | ||||
|       "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", | ||||
|       "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "object-keys": "^1.0.12" | ||||
|       } | ||||
|     }, | ||||
|     "dns-equal": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", | ||||
|       "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "dns-packet": { | ||||
|       "version": "4.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-4.2.0.tgz", | ||||
|       "integrity": "sha512-bn1AKpfkFbm0MIioOMHZ5qJzl2uypdBwI4nYNsqvhjsegBhcKJUlCrMPWLx6JEezRjxZmxhtIz/FkBEur2l8Cw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "ip": "^1.1.5", | ||||
|         "safe-buffer": "^5.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "dns-txt": { | ||||
|       "version": "2.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", | ||||
|       "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "buffer-indexof": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "es-abstract": { | ||||
|       "version": "1.17.5", | ||||
|       "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", | ||||
|       "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "es-to-primitive": "^1.2.1", | ||||
|         "function-bind": "^1.1.1", | ||||
|         "has": "^1.0.3", | ||||
|         "has-symbols": "^1.0.1", | ||||
|         "is-callable": "^1.1.5", | ||||
|         "is-regex": "^1.0.5", | ||||
|         "object-inspect": "^1.7.0", | ||||
|         "object-keys": "^1.1.1", | ||||
|         "object.assign": "^4.1.0", | ||||
|         "string.prototype.trimleft": "^2.1.1", | ||||
|         "string.prototype.trimright": "^2.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "es-to-primitive": { | ||||
|       "version": "1.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", | ||||
|       "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "is-callable": "^1.1.4", | ||||
|         "is-date-object": "^1.0.1", | ||||
|         "is-symbol": "^1.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "fast-srp-hap": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/fast-srp-hap/-/fast-srp-hap-2.0.1.tgz", | ||||
|       "integrity": "sha512-dClwnyfRd3BZxu3KAdhvAayozq7fLazXGlDc4HAHJV1M+olqGKAT52pygXQu5UiDSHxz/WB3KRvsojqQ5zmXOA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "fs.realpath": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||||
|       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "function-bind": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | ||||
|       "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "glob": { | ||||
|       "version": "7.1.6", | ||||
|       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", | ||||
|       "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "fs.realpath": "^1.0.0", | ||||
|         "inflight": "^1.0.4", | ||||
|         "inherits": "2", | ||||
|         "minimatch": "^3.0.4", | ||||
|         "once": "^1.3.0", | ||||
|         "path-is-absolute": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "hap-nodejs": { | ||||
|       "version": "0.6.2", | ||||
|       "resolved": "https://registry.npmjs.org/hap-nodejs/-/hap-nodejs-0.6.2.tgz", | ||||
|       "integrity": "sha512-/LlRaYCtcwC4jBUKRJeBUdUfKEp8w/NK3PNYXaAOngQL9uVnqsvQ0Gce/mUhSXPhsxfdnxbHVT870W9OEnV6+A==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "bonjour-hap": "3.5.4", | ||||
|         "debug": "^4.1.1", | ||||
|         "decimal.js": "^10.2.0", | ||||
|         "fast-srp-hap": "2.0.1", | ||||
|         "ip": "^1.1.3", | ||||
|         "node-persist": "^0.0.11", | ||||
|         "tweetnacl": "^1.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "has": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", | ||||
|       "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "function-bind": "^1.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "has-flag": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | ||||
|       "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "has-symbols": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", | ||||
|       "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "homebridge": { | ||||
|       "version": "0.4.54-beta.51", | ||||
|       "resolved": "https://registry.npmjs.org/homebridge/-/homebridge-0.4.54-beta.51.tgz", | ||||
|       "integrity": "sha512-WycAihWBzWu+8ZBnVrU4wqdU0bq/cT43iKdk2+6ODhbGh/xlaxIFpMdSGX++YqwGpu7cNEL0L45Woj9sEfFYNw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "chalk": "^3.0.0", | ||||
|         "commander": "5.0.0", | ||||
|         "hap-nodejs": "0.6.2", | ||||
|         "node-persist": "^0.0.11", | ||||
|         "qrcode-terminal": "^0.12.0", | ||||
|         "semver": "^7.1.3", | ||||
|         "source-map-support": "^0.5.16" | ||||
|       } | ||||
|     }, | ||||
|     "inflight": { | ||||
|       "version": "1.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||||
|       "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "once": "^1.3.0", | ||||
|         "wrappy": "1" | ||||
|       } | ||||
|     }, | ||||
|     "inherits": { | ||||
|       "version": "2.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | ||||
|       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "ip": { | ||||
|       "version": "1.1.5", | ||||
|       "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", | ||||
|       "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-arguments": { | ||||
|       "version": "1.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", | ||||
|       "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-callable": { | ||||
|       "version": "1.1.5", | ||||
|       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", | ||||
|       "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-date-object": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", | ||||
|       "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-regex": { | ||||
|       "version": "1.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", | ||||
|       "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "has": "^1.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "is-symbol": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", | ||||
|       "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "has-symbols": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "minimatch": { | ||||
|       "version": "3.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||||
|       "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "brace-expansion": "^1.1.7" | ||||
|       } | ||||
|     }, | ||||
|     "minimist": { | ||||
|       "version": "1.2.5", | ||||
|       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", | ||||
|       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "mkdirp": { | ||||
|       "version": "0.5.5", | ||||
|       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", | ||||
|       "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "minimist": "^1.2.5" | ||||
|       } | ||||
|     }, | ||||
|     "ms": { | ||||
|       "version": "2.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "multicast-dns": { | ||||
|       "version": "7.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.2.tgz", | ||||
|       "integrity": "sha512-XqSMeO8EWV/nOXOpPV8ztIpNweVfE1dSpz6SQvDPp71HD74lMXjt4m/mWB1YBMG0kHtOodxRWc5WOb/UNN1A5g==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "dns-packet": "^4.0.0", | ||||
|         "thunky": "^1.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "multicast-dns-service-types": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", | ||||
|       "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node-persist": { | ||||
|       "version": "0.0.11", | ||||
|       "resolved": "https://registry.npmjs.org/node-persist/-/node-persist-0.0.11.tgz", | ||||
|       "integrity": "sha1-1m66Pr72IPB5Uw+nsTB2qQZmWHQ=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "mkdirp": "~0.5.1", | ||||
|         "q": "~1.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "object-inspect": { | ||||
|       "version": "1.7.0", | ||||
|       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", | ||||
|       "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "object-is": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", | ||||
|       "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.17.5" | ||||
|       } | ||||
|     }, | ||||
|     "object-keys": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", | ||||
|       "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "object.assign": { | ||||
|       "version": "4.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", | ||||
|       "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.2", | ||||
|         "function-bind": "^1.1.1", | ||||
|         "has-symbols": "^1.0.0", | ||||
|         "object-keys": "^1.0.11" | ||||
|       } | ||||
|     }, | ||||
|     "once": { | ||||
|       "version": "1.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||||
|       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "wrappy": "1" | ||||
|       } | ||||
|     }, | ||||
|     "path-is-absolute": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||||
|       "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "q": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz", | ||||
|       "integrity": "sha1-Y1fikSBnAdmfGXq4TlforRlvKok=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "qrcode-terminal": { | ||||
|       "version": "0.12.0", | ||||
|       "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", | ||||
|       "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "regexp.prototype.flags": { | ||||
|       "version": "1.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", | ||||
|       "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.17.0-next.1" | ||||
|       } | ||||
|     }, | ||||
|     "rimraf": { | ||||
|       "version": "3.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", | ||||
|       "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "glob": "^7.1.3" | ||||
|       } | ||||
|     }, | ||||
|     "safe-buffer": { | ||||
|       "version": "5.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", | ||||
|       "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "semver": { | ||||
|       "version": "7.3.2", | ||||
|       "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", | ||||
|       "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "source-map": { | ||||
|       "version": "0.6.1", | ||||
|       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||||
|       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "source-map-support": { | ||||
|       "version": "0.5.16", | ||||
|       "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", | ||||
|       "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "buffer-from": "^1.0.0", | ||||
|         "source-map": "^0.6.0" | ||||
|       } | ||||
|     }, | ||||
|     "string.prototype.trimend": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", | ||||
|       "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.17.5" | ||||
|       } | ||||
|     }, | ||||
|     "string.prototype.trimleft": { | ||||
|       "version": "2.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", | ||||
|       "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.17.5", | ||||
|         "string.prototype.trimstart": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "string.prototype.trimright": { | ||||
|       "version": "2.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", | ||||
|       "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.17.5", | ||||
|         "string.prototype.trimend": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "string.prototype.trimstart": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", | ||||
|       "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.17.5" | ||||
|       } | ||||
|     }, | ||||
|     "supports-color": { | ||||
|       "version": "7.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", | ||||
|       "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "has-flag": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "thunky": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", | ||||
|       "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "tweetnacl": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", | ||||
|       "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "typescript": { | ||||
|       "version": "3.8.3", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", | ||||
|       "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "wrappy": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | ||||
|       "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", | ||||
|       "dev": true | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										38
									
								
								accessory-example-typescript/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								accessory-example-typescript/package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| { | ||||
|   "name": "homebridge-accessory-example", | ||||
|   "version": "1.0.0", | ||||
|   "description": "An example accessory plugin for homebridge written in Typescript", | ||||
|   "main": "dist/accessory.js", | ||||
|   "scripts": { | ||||
|     "clean": "rimraf ./dist", | ||||
|     "build": "rimraf ./dist && tsc", | ||||
|     "prepublishOnly": "npm run build", | ||||
|     "postpublish": "npm run clean", | ||||
|     "test": "echo \"Error: no test specified\" && exit 1" | ||||
|   }, | ||||
|   "author": "Andreas Bauer <mail@anderl-bauer.de>", | ||||
|   "engines": { | ||||
|     "homebridge": ">=1.0.0" | ||||
|   }, | ||||
|   "keywords": [ | ||||
|     "homebridge-plugin" | ||||
|   ], | ||||
|   "license": "ISC", | ||||
|   "files": [ | ||||
|     "LICENSE", | ||||
|     "dist" | ||||
|   ], | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "git://github.com/homebridge/homebridge-examples.git" | ||||
|   }, | ||||
|   "bugs": { | ||||
|     "url": "http://github.com/homebridge/homebridge-examples/issues" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/node": "10.17.19", | ||||
|     "typescript": "^3.8.3", | ||||
|     "rimraf": "^3.0.2", | ||||
|     "homebridge": "^0.4.54-beta.51" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										77
									
								
								accessory-example-typescript/src/accessory.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								accessory-example-typescript/src/accessory.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,77 @@ | ||||
| import { | ||||
|   AccessoryConfig, | ||||
|   AccessoryPlugin, | ||||
|   API, | ||||
|   CharacteristicGetCallback, | ||||
|   CharacteristicSetCallback, | ||||
|   CharacteristicValue, | ||||
|   HAP, | ||||
|   Logging, | ||||
|   Service | ||||
| } from "homebridge"; | ||||
|  | ||||
| /** | ||||
|  * TODO explain | ||||
|  */ | ||||
| let hap: HAP; | ||||
|  | ||||
| /* | ||||
|  * Initializer function called when the plugin is loaded. | ||||
|  */ | ||||
| export = (api: API) => { | ||||
|   hap = api.hap; | ||||
|   api.registerAccessory("ExampleSwitch", ExampleSwitch); | ||||
| }; | ||||
|  | ||||
| class ExampleSwitch implements AccessoryPlugin { | ||||
|  | ||||
|   private readonly log: Logging; | ||||
|   private readonly name: string; | ||||
|   private switchOn = false; | ||||
|  | ||||
|   private readonly switchService: Service; | ||||
|   private readonly informationService: Service; | ||||
|  | ||||
|   constructor(log: Logging, config: AccessoryConfig, api: API) { | ||||
|     this.log = log; | ||||
|     this.name = config.name; | ||||
|  | ||||
|     this.switchService = new hap.Service.Switch(this.name); | ||||
|     this.switchService.getCharacteristic(hap.Characteristic.On) | ||||
|       .on(hap.CharacteristicEventTypes.GET, (callback: CharacteristicGetCallback) => { | ||||
|         log.info("Current state of the switch was returned: " + (this.switchOn? "ON": "OFF")); | ||||
|         callback(undefined, this.switchOn); | ||||
|       }) | ||||
|       .on(hap.CharacteristicEventTypes.SET, (value: CharacteristicValue, callback: CharacteristicSetCallback) => { | ||||
|         this.switchOn = value as boolean; | ||||
|         log.info("Switch state was set to: " + (this.switchOn? "ON": "OFF")); | ||||
|         callback(); | ||||
|       }); | ||||
|  | ||||
|     this.informationService = new hap.Service.AccessoryInformation() | ||||
|       .setCharacteristic(hap.Characteristic.Manufacturer, "Custom Manufacturer") | ||||
|       .setCharacteristic(hap.Characteristic.Model, "Custom Model"); | ||||
|  | ||||
|     log.info("Switch finished initializing!"); | ||||
|   } | ||||
|  | ||||
|   /* | ||||
|    * This method is optional to implement. It is called when HomeKit ask to identify the accessory. | ||||
|    * Typical this only ever happens at the pairing process. | ||||
|    */ | ||||
|   identify(): void { | ||||
|     this.log("Identify!"); | ||||
|   } | ||||
|  | ||||
|   /* | ||||
|    * This method is called directly after creation of this instance. | ||||
|    * It should return all services which should be added to the accessory. | ||||
|    */ | ||||
|   getServices(): Service[] { | ||||
|     return [ | ||||
|       this.informationService, | ||||
|       this.switchService, | ||||
|     ]; | ||||
|   } | ||||
|  | ||||
| } | ||||
							
								
								
									
										22
									
								
								accessory-example-typescript/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								accessory-example-typescript/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| { | ||||
|   "compilerOptions": { | ||||
|     "target": "ES2018", | ||||
|     "module": "commonjs", | ||||
|     "lib": [ | ||||
|       "ES2015", | ||||
|       "ES2016", | ||||
|       "ES2017", | ||||
|       "ES2018" | ||||
|     ], | ||||
|     "sourceMap": true, | ||||
|     "rootDir": "src", | ||||
|     "outDir": "dist", | ||||
|  | ||||
|     "strict": true, | ||||
|     "esModuleInterop": true, | ||||
|     "forceConsistentCasingInFileNames": true | ||||
|   }, | ||||
|   "include": [ | ||||
|     "src" | ||||
|   ] | ||||
| } | ||||
		Reference in New Issue
	
	Block a user