diff --git a/.changeset/fresh-bobcats-move.md b/.changeset/fresh-bobcats-move.md new file mode 100644 index 00000000..752b8cfd --- /dev/null +++ b/.changeset/fresh-bobcats-move.md @@ -0,0 +1,6 @@ +--- +'homebridge-ring': major +'ring-client-api': major +--- + +Converted project to ESM. This should not impact homebridge-ring, but will require any other projects using ring-client-api to also use ESM in order to use the latest version. diff --git a/.ncurc.json b/.ncurc.json index 096f5414..d3f6cf1e 100644 --- a/.ncurc.json +++ b/.ncurc.json @@ -1,7 +1,3 @@ { - "reject": [ - "socket.io-client", - "@types/socket.io-client", - "@homebridge/camera-utils" - ] + "reject": ["socket.io-client", "@types/socket.io-client"] } diff --git a/package-lock.json b/package-lock.json index 4f89acf2..6003362b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,6 @@ "devDependencies": { "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.27.10", - "@swc-node/register": "^1.10.9", "turbo": "^2.2.3" } }, @@ -23,1305 +22,1175 @@ "node": ">=0.10.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "dev": true, + "node_modules/@babel/runtime": { + "version": "7.22.6", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/@bundled-es-modules/cookie": { + "version": "2.0.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "cookie": "^0.7.2" } }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", + "node_modules/@bundled-es-modules/statuses": { + "version": "1.0.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" + "statuses": "^2.0.1" } }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@bundled-es-modules/tough-cookie": { + "version": "0.1.6", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" + "@types/tough-cookie": "^4.0.5", + "tough-cookie": "^4.1.4" } }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/@changesets/apply-release-plan": { + "version": "7.0.6", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "@changesets/config": "^3.0.4", + "@changesets/get-version-range-type": "^0.4.0", + "@changesets/git": "^3.0.2", + "@changesets/should-skip-package": "^0.1.1", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "detect-indent": "^6.0.0", + "fs-extra": "^7.0.1", + "lodash.startcase": "^4.4.0", + "outdent": "^0.5.0", + "prettier": "^2.7.1", + "resolve-from": "^5.0.0", + "semver": "^7.5.3" } }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/@changesets/apply-release-plan/node_modules/fs-extra": { + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=4" + "node": ">=6 <7 || >=8" } }, - "node_modules/@babel/compat-data": { - "version": "7.22.9", + "node_modules/@changesets/apply-release-plan/node_modules/jsonfile": { + "version": "4.0.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=6.9.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@babel/core": { - "version": "7.20.2", + "node_modules/@changesets/apply-release-plan/node_modules/prettier": { + "version": "2.8.8", "dev": true, "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.2", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.1", - "@babel/parser": "^7.20.2", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=10.13.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/@babel/generator": { - "version": "7.23.0", + "node_modules/@changesets/apply-release-plan/node_modules/resolve-from": { + "version": "5.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", + "node_modules/@changesets/apply-release-plan/node_modules/universalify": { + "version": "0.1.2", "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, "engines": { - "node": ">=6.0.0" + "node": ">= 4.0.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.10", + "node_modules/@changesets/assemble-release-plan": { + "version": "6.0.5", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.1.2", + "@changesets/should-skip-package": "^0.1.1", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "semver": "^7.5.3" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", + "node_modules/@changesets/changelog-git": { + "version": "0.2.0", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "yallist": "^3.0.2" + "@changesets/types": "^6.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", + "node_modules/@changesets/changelog-github": { + "version": "0.5.0", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@changesets/get-github-info": "^0.6.0", + "@changesets/types": "^6.0.0", + "dotenv": "^8.1.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", + "node_modules/@changesets/changelog-github/node_modules/dotenv": { + "version": "8.6.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "engines": { - "node": ">=6.9.0" + "node": ">=10" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", + "node_modules/@changesets/cli": { + "version": "2.27.10", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@changesets/apply-release-plan": "^7.0.6", + "@changesets/assemble-release-plan": "^6.0.5", + "@changesets/changelog-git": "^0.2.0", + "@changesets/config": "^3.0.4", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.1.2", + "@changesets/get-release-plan": "^4.0.5", + "@changesets/git": "^3.0.2", + "@changesets/logger": "^0.1.1", + "@changesets/pre": "^2.0.1", + "@changesets/read": "^0.6.2", + "@changesets/should-skip-package": "^0.1.1", + "@changesets/types": "^6.0.0", + "@changesets/write": "^0.3.2", + "@manypkg/get-packages": "^1.1.3", + "ansi-colors": "^4.1.3", + "ci-info": "^3.7.0", + "enquirer": "^2.3.0", + "external-editor": "^3.1.0", + "fs-extra": "^7.0.1", + "mri": "^1.2.0", + "p-limit": "^2.2.0", + "package-manager-detector": "^0.2.0", + "picocolors": "^1.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.5.3", + "spawndamnit": "^3.0.1", + "term-size": "^2.1.0" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "changeset": "bin.js" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", + "node_modules/@changesets/cli/node_modules/fs-extra": { + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=6 <7 || >=8" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", + "node_modules/@changesets/cli/node_modules/jsonfile": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", + "node_modules/@changesets/cli/node_modules/p-limit": { + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "p-try": "^2.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=6" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", + "node_modules/@changesets/cli/node_modules/resolve-from": { + "version": "5.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", + "node_modules/@changesets/cli/node_modules/universalify": { + "version": "0.1.2", "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" + "node": ">= 4.0.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", + "node_modules/@changesets/config": { + "version": "3.0.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.1.2", + "@changesets/logger": "^0.1.1", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1", + "micromatch": "^4.0.8" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", + "node_modules/@changesets/config/node_modules/fs-extra": { + "version": "7.0.1", "dev": true, "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, "engines": { - "node": ">=6.9.0" + "node": ">=6 <7 || >=8" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", + "node_modules/@changesets/config/node_modules/jsonfile": { + "version": "4.0.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=6.9.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", + "node_modules/@changesets/config/node_modules/universalify": { + "version": "0.1.2", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">= 4.0.0" } }, - "node_modules/@babel/helpers": { - "version": "7.20.1", + "node_modules/@changesets/errors": { + "version": "0.2.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" + "extendable-error": "^0.1.5" } }, - "node_modules/@babel/highlight": { - "version": "7.22.20", + "node_modules/@changesets/get-dependents-graph": { + "version": "2.1.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "picocolors": "^1.1.0", + "semver": "^7.5.3" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", + "node_modules/@changesets/get-github-info": { + "version": "0.6.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" + "dataloader": "^1.4.0", + "node-fetch": "^2.5.0" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@changesets/get-release-plan": { + "version": "4.0.5", "dev": true, "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "@changesets/assemble-release-plan": "^6.0.5", + "@changesets/config": "^3.0.4", + "@changesets/pre": "^2.0.1", + "@changesets/read": "^0.6.2", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", + "node_modules/@changesets/get-version-range-type": { + "version": "0.4.0", "dev": true, "license": "MIT" }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/@changesets/git": { + "version": "3.0.2", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.8.0" + "dependencies": { + "@changesets/errors": "^0.2.0", + "@manypkg/get-packages": "^1.1.3", + "is-subdir": "^1.1.1", + "micromatch": "^4.0.8", + "spawndamnit": "^3.0.1" } }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/@changesets/logger": { + "version": "0.1.1", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "picocolors": "^1.1.0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/@changesets/parse": { + "version": "0.4.0", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "@changesets/types": "^6.0.0", + "js-yaml": "^3.13.1" } }, - "node_modules/@babel/parser": { - "version": "7.23.0", + "node_modules/@changesets/parse/node_modules/argparse": { + "version": "1.0.10", "dev": true, "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", + "node_modules/@changesets/parse/node_modules/js-yaml": { + "version": "3.14.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", + "node_modules/@changesets/pre": { + "version": "2.0.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", + "node_modules/@changesets/pre/node_modules/fs-extra": { + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", + "node_modules/@changesets/pre/node_modules/jsonfile": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@changesets/pre/node_modules/universalify": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", + "node_modules/@changesets/read": { + "version": "0.6.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@changesets/git": "^3.0.2", + "@changesets/logger": "^0.1.1", + "@changesets/parse": "^0.4.0", + "@changesets/types": "^6.0.0", + "fs-extra": "^7.0.1", + "p-filter": "^2.1.0", + "picocolors": "^1.1.0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", + "node_modules/@changesets/read/node_modules/fs-extra": { + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6 <7 || >=8" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", + "node_modules/@changesets/read/node_modules/jsonfile": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", + "node_modules/@changesets/read/node_modules/universalify": { + "version": "0.1.2", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", + "node_modules/@changesets/should-skip-package": { + "version": "0.1.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", + "node_modules/@changesets/types": { + "version": "6.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@changesets/write": { + "version": "0.3.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@changesets/types": "^6.0.0", + "fs-extra": "^7.0.1", + "human-id": "^1.0.2", + "prettier": "^2.7.1" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", + "node_modules/@changesets/write/node_modules/fs-extra": { + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", + "node_modules/@changesets/write/node_modules/jsonfile": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", + "node_modules/@changesets/write/node_modules/prettier": { + "version": "2.8.8", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=10.13.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", + "node_modules/@changesets/write/node_modules/universalify": { + "version": "0.1.2", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 4.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.22.6", + "node_modules/@eneris/push-receiver": { + "version": "4.3.0", "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.13.11" + "http_ece": "^1.2.1", + "jsonwebtoken": "^9.0.2", + "long": "^5.2.3", + "protobufjs": "^7.4.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=20" } }, - "node_modules/@babel/template": { - "version": "7.22.15", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/traverse": { - "version": "7.23.2", + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/@babel/types": { - "version": "7.23.0", + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@bundled-es-modules/cookie": { - "version": "2.0.1", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "cookie": "^0.7.2" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@bundled-es-modules/statuses": { - "version": "1.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "statuses": "^2.0.1" - } - }, - "node_modules/@bundled-es-modules/tough-cookie": { - "version": "0.1.6", + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "@types/tough-cookie": "^4.0.5", - "tough-cookie": "^4.1.4" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@changesets/apply-release-plan": { - "version": "7.0.6", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@changesets/config": "^3.0.4", - "@changesets/get-version-range-type": "^0.4.0", - "@changesets/git": "^3.0.2", - "@changesets/should-skip-package": "^0.1.1", - "@changesets/types": "^6.0.0", - "@manypkg/get-packages": "^1.1.3", - "detect-indent": "^6.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^2.7.1", - "resolve-from": "^5.0.0", - "semver": "^7.5.3" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@changesets/apply-release-plan/node_modules/fs-extra": { - "version": "7.0.1", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6 <7 || >=8" + "node": ">=12" } }, - "node_modules/@changesets/apply-release-plan/node_modules/jsonfile": { - "version": "4.0.0", + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@changesets/apply-release-plan/node_modules/prettier": { - "version": "2.8.8", + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "node": ">=12" } }, - "node_modules/@changesets/apply-release-plan/node_modules/resolve-from": { - "version": "5.0.0", + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@changesets/apply-release-plan/node_modules/universalify": { - "version": "0.1.2", + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 4.0.0" + "node": ">=12" } }, - "node_modules/@changesets/assemble-release-plan": { - "version": "6.0.5", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", - "dependencies": { - "@changesets/errors": "^0.2.0", - "@changesets/get-dependents-graph": "^2.1.2", - "@changesets/should-skip-package": "^0.1.1", - "@changesets/types": "^6.0.0", - "@manypkg/get-packages": "^1.1.3", - "semver": "^7.5.3" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@changesets/changelog-git": { - "version": "0.2.0", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@changesets/types": "^6.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@changesets/changelog-github": { - "version": "0.5.0", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@changesets/get-github-info": "^0.6.0", - "@changesets/types": "^6.0.0", - "dotenv": "^8.1.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@changesets/changelog-github/node_modules/dotenv": { - "version": "8.6.0", + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/@changesets/cli": { - "version": "2.27.10", + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@changesets/apply-release-plan": "^7.0.6", - "@changesets/assemble-release-plan": "^6.0.5", - "@changesets/changelog-git": "^0.2.0", - "@changesets/config": "^3.0.4", - "@changesets/errors": "^0.2.0", - "@changesets/get-dependents-graph": "^2.1.2", - "@changesets/get-release-plan": "^4.0.5", - "@changesets/git": "^3.0.2", - "@changesets/logger": "^0.1.1", - "@changesets/pre": "^2.0.1", - "@changesets/read": "^0.6.2", - "@changesets/should-skip-package": "^0.1.1", - "@changesets/types": "^6.0.0", - "@changesets/write": "^0.3.2", - "@manypkg/get-packages": "^1.1.3", - "ansi-colors": "^4.1.3", - "ci-info": "^3.7.0", - "enquirer": "^2.3.0", - "external-editor": "^3.1.0", - "fs-extra": "^7.0.1", - "mri": "^1.2.0", - "p-limit": "^2.2.0", - "package-manager-detector": "^0.2.0", - "picocolors": "^1.1.0", - "resolve-from": "^5.0.0", - "semver": "^7.5.3", - "spawndamnit": "^3.0.1", - "term-size": "^2.1.0" - }, - "bin": { - "changeset": "bin.js" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@changesets/cli/node_modules/fs-extra": { - "version": "7.0.1", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6 <7 || >=8" + "node": ">=12" } }, - "node_modules/@changesets/cli/node_modules/jsonfile": { - "version": "4.0.0", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@changesets/cli/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@changesets/cli/node_modules/resolve-from": { - "version": "5.0.0", + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@changesets/cli/node_modules/universalify": { - "version": "0.1.2", + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 4.0.0" + "node": ">=12" } }, - "node_modules/@changesets/config": { - "version": "3.0.4", + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@changesets/errors": "^0.2.0", - "@changesets/get-dependents-graph": "^2.1.2", - "@changesets/logger": "^0.1.1", - "@changesets/types": "^6.0.0", - "@manypkg/get-packages": "^1.1.3", - "fs-extra": "^7.0.1", - "micromatch": "^4.0.8" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@changesets/config/node_modules/fs-extra": { - "version": "7.0.1", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@changesets/config/node_modules/jsonfile": { - "version": "4.0.0", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", "dev": true, "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@changesets/config/node_modules/universalify": { - "version": "0.1.2", + "node_modules/@eslint/config-array": { + "version": "0.19.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, "engines": { - "node": ">= 4.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@changesets/errors": { - "version": "0.2.0", + "node_modules/@eslint/core": { + "version": "0.9.0", "dev": true, - "license": "MIT", - "dependencies": { - "extendable-error": "^0.1.5" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@changesets/get-dependents-graph": { - "version": "2.1.2", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@changesets/types": "^6.0.0", - "@manypkg/get-packages": "^1.1.3", - "picocolors": "^1.1.0", - "semver": "^7.5.3" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@changesets/get-github-info": { - "version": "0.6.0", + "node_modules/@eslint/js": { + "version": "8.57.0", "dev": true, "license": "MIT", - "dependencies": { - "dataloader": "^1.4.0", - "node-fetch": "^2.5.0" + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@changesets/get-release-plan": { - "version": "4.0.5", + "node_modules/@eslint/object-schema": { + "version": "2.1.4", "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/assemble-release-plan": "^6.0.5", - "@changesets/config": "^3.0.4", - "@changesets/pre": "^2.0.1", - "@changesets/read": "^0.6.2", - "@changesets/types": "^6.0.0", - "@manypkg/get-packages": "^1.1.3" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@changesets/get-version-range-type": { - "version": "0.4.0", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } }, - "node_modules/@changesets/git": { - "version": "3.0.2", - "dev": true, + "node_modules/@fidm/asn1": { + "version": "1.0.4", "license": "MIT", - "dependencies": { - "@changesets/errors": "^0.2.0", - "@manypkg/get-packages": "^1.1.3", - "is-subdir": "^1.1.1", - "micromatch": "^4.0.8", - "spawndamnit": "^3.0.1" + "engines": { + "node": ">= 8" } }, - "node_modules/@changesets/logger": { - "version": "0.1.1", - "dev": true, + "node_modules/@fidm/x509": { + "version": "1.2.1", "license": "MIT", "dependencies": { - "picocolors": "^1.1.0" + "@fidm/asn1": "^1.0.4", + "tweetnacl": "^1.0.1" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@changesets/parse": { - "version": "0.4.0", - "dev": true, + "node_modules/@homebridge/camera-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@homebridge/camera-utils/-/camera-utils-3.0.0.tgz", + "integrity": "sha512-lw+DflCBEgbcfeBfXrPGhbzYn63bj61hpETVwqTO3FCThIMa3VoFDUNEy7jQq6OBS+iaMeHSuv4gy6w8yxFK7A==", "license": "MIT", "dependencies": { - "@changesets/types": "^6.0.0", - "js-yaml": "^3.13.1" + "execa": "^9.5.1", + "ffmpeg-for-homebridge": "^2.1.7", + "pick-port": "^2.1.0", + "rxjs": "^7.8.1", + "systeminformation": "^5.23.5" } }, - "node_modules/@changesets/parse/node_modules/argparse": { - "version": "1.0.10", - "dev": true, + "node_modules/@homebridge/camera-utils/node_modules/execa": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", + "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@changesets/parse/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, + "node_modules/@homebridge/camera-utils/node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@changesets/pre": { - "version": "2.0.1", - "dev": true, + "node_modules/@homebridge/camera-utils/node_modules/human-signals": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", + "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@homebridge/camera-utils/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "license": "MIT", - "dependencies": { - "@changesets/errors": "^0.2.0", - "@changesets/types": "^6.0.0", - "@manypkg/get-packages": "^1.1.3", - "fs-extra": "^7.0.1" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@changesets/pre/node_modules/fs-extra": { - "version": "7.0.1", - "dev": true, + "node_modules/@homebridge/camera-utils/node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@changesets/pre/node_modules/jsonfile": { + "node_modules/@homebridge/camera-utils/node_modules/path-key": { "version": "4.0.0", - "dev": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@changesets/pre/node_modules/universalify": { - "version": "0.1.2", - "dev": true, - "license": "MIT", + "node_modules/@homebridge/camera-utils/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { - "node": ">= 4.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@changesets/read": { - "version": "0.6.2", - "dev": true, + "node_modules/@homebridge/camera-utils/node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "license": "MIT", - "dependencies": { - "@changesets/git": "^3.0.2", - "@changesets/logger": "^0.1.1", - "@changesets/parse": "^0.4.0", - "@changesets/types": "^6.0.0", - "fs-extra": "^7.0.1", - "p-filter": "^2.1.0", - "picocolors": "^1.1.0" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@changesets/read/node_modules/fs-extra": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@changesets/read/node_modules/jsonfile": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@changesets/read/node_modules/universalify": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@changesets/should-skip-package": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/types": "^6.0.0", - "@manypkg/get-packages": "^1.1.3" - } - }, - "node_modules/@changesets/types": { - "version": "6.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@changesets/write": { - "version": "0.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/types": "^6.0.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "prettier": "^2.7.1" - } - }, - "node_modules/@changesets/write/node_modules/fs-extra": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@changesets/write/node_modules/jsonfile": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@changesets/write/node_modules/prettier": { - "version": "2.8.8", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/@changesets/write/node_modules/universalify": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@eneris/push-receiver": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "http_ece": "^1.2.1", - "jsonwebtoken": "^9.0.2", - "long": "^5.2.3", - "protobufjs": "^7.4.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.4", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.9.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@fidm/asn1": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@fidm/x509": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "@fidm/asn1": "^1.0.4", - "tweetnacl": "^1.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@homebridge/camera-utils": { - "version": "2.2.7", - "license": "MIT", - "dependencies": { - "execa": "^5.1.1", - "ffmpeg-for-homebridge": "^2.1.7", - "pick-port": "^2.1.0", - "rxjs": "^7.8.1", - "systeminformation": "^5.21.24" - } - }, - "node_modules/@homebridge/ciao": { - "version": "1.3.1", + "node_modules/@homebridge/ciao": { + "version": "1.3.1", "dev": true, "license": "MIT", "dependencies": { @@ -1360,7 +1229,9 @@ "license": "Apache-2.0" }, "node_modules/@homebridge/plugin-ui-utils": { - "version": "1.0.3", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@homebridge/plugin-ui-utils/-/plugin-ui-utils-2.0.0.tgz", + "integrity": "sha512-bQmTmq1rKlPfy0/RyghXVOHcfpr9V+7lQxtOIM16xhEggXI/HWN8vJn6Tzd5C40mphHxU76mficnVy8AA3Ch/w==", "license": "MIT" }, "node_modules/@homebridge/put": { @@ -1616,30 +1487,27 @@ "node": ">=18.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config": { + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "license": "MIT" + }, + "node_modules/@manypkg/find-root": { "version": "1.1.0", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", + "@babel/runtime": "^7.5.5", + "@types/node": "^12.7.1", "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" + "fs-extra": "^8.1.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", + "node_modules/@manypkg/find-root/node_modules/@types/node": { + "version": "12.20.55", "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "license": "MIT" }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "node_modules/@manypkg/find-root/node_modules/find-up": { "version": "4.1.0", "dev": true, "license": "MIT", @@ -1651,425 +1519,8 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { - "version": "6.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "license": "MIT" - }, - "node_modules/@manypkg/find-root": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - } - }, - "node_modules/@manypkg/find-root/node_modules/@types/node": { - "version": "12.20.55", - "dev": true, - "license": "MIT" - }, - "node_modules/@manypkg/find-root/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@manypkg/find-root/node_modules/fs-extra": { - "version": "8.1.0", + "node_modules/@manypkg/find-root/node_modules/fs-extra": { + "version": "8.1.0", "dev": true, "license": "MIT", "dependencies": { @@ -2274,18 +1725,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@oxc-resolver/binding-darwin-x64": { - "version": "1.10.2", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, "node_modules/@peculiar/asn1-cms": { "version": "2.3.13", "license": "MIT", @@ -2497,257 +1936,329 @@ "version": "1.1.0", "license": "BSD-3-Clause" }, - "node_modules/@shinyoshiaki/binary-data": { - "version": "0.6.1", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz", + "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "dependencies": { - "generate-function": "^2.3.1", - "is-plain-object": "^2.0.3" - }, - "engines": { - "node": ">=6" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@shinyoshiaki/ebml-builder": { - "version": "0.0.1", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz", + "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "lodash.memoize": "^4.1.2" - } - }, - "node_modules/@shinyoshiaki/jspack": { - "version": "0.0.6" + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", + "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@sinonjs/commons": { - "version": "3.0.0", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz", + "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==", + "cpu": [ + "x64" + ], "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz", + "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@swc-node/core": { - "version": "1.13.3", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz", + "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@swc/core": ">= 1.4.13", - "@swc/types": ">= 0.1" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@swc-node/register": { - "version": "1.10.9", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz", + "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@swc-node/core": "^1.13.3", - "@swc-node/sourcemap-support": "^0.5.1", - "colorette": "^2.0.20", - "debug": "^4.3.5", - "oxc-resolver": "^1.10.2", - "pirates": "^4.0.6", - "tslib": "^2.6.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@swc/core": ">= 1.4.13", - "typescript": ">= 4.3" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@swc-node/sourcemap-support": { - "version": "0.5.1", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz", + "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "source-map-support": "^0.5.21", - "tslib": "^2.6.3" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@swc/core": { - "version": "1.7.0", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz", + "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==", + "cpu": [ + "arm64" + ], "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.9" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.0", - "@swc/core-darwin-x64": "1.7.0", - "@swc/core-linux-arm-gnueabihf": "1.7.0", - "@swc/core-linux-arm64-gnu": "1.7.0", - "@swc/core-linux-arm64-musl": "1.7.0", - "@swc/core-linux-x64-gnu": "1.7.0", - "@swc/core-linux-x64-musl": "1.7.0", - "@swc/core-win32-arm64-msvc": "1.7.0", - "@swc/core-win32-ia32-msvc": "1.7.0", - "@swc/core-win32-x64-msvc": "1.7.0" - }, - "peerDependencies": { - "@swc/helpers": "*" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.7.0", + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz", + "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==", "cpu": [ - "x64" + "arm64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=10" - } + "linux" + ] }, - "node_modules/@swc/counter": { - "version": "0.1.3", + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz", + "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==", + "cpu": [ + "loong64" + ], "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@swc/types": { - "version": "0.1.12", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz", + "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@swc/counter": "^0.1.3" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/babel__core": { - "version": "7.20.2", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz", + "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==", + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/babel__generator": { - "version": "7.6.5", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz", + "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==", + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/babel__template": { - "version": "7.4.2", + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz", + "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/babel__traverse": { - "version": "7.20.2", + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz", + "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/cookie": { - "version": "0.6.0", + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz", + "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@types/debug": { - "version": "4.1.12", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz", + "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/ms": "*" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@types/estree": { - "version": "1.0.6", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz", + "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", "license": "MIT" }, - "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "dev": true, + "node_modules/@shinyoshiaki/binary-data": { + "version": "0.6.1", "license": "MIT", "dependencies": { - "@types/node": "*" + "generate-function": "^2.3.1", + "is-plain-object": "^2.0.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, + "node_modules/@shinyoshiaki/ebml-builder": { + "version": "0.0.1", "license": "MIT", "dependencies": { - "@types/istanbul-lib-coverage": "*" + "lodash.memoize": "^4.1.2" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, + "node_modules/@shinyoshiaki/jspack": { + "version": "0.0.6" + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@types/jest": { - "version": "29.5.14", + "node_modules/@types/cookie": { + "version": "0.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", "dev": true, "license": "MIT", "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "@types/ms": "*" } }, + "node_modules/@types/estree": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-bigint": { "version": "1.0.4", "dev": true, @@ -2770,20 +2281,8 @@ "undici-types": "~6.19.8" } }, - "node_modules/@types/semver": { - "version": "7.5.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@types/socket.io-client": { - "version": "1.4.36", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", + "node_modules/@types/socket.io-client": { + "version": "1.4.36", "dev": true, "license": "MIT" }, @@ -2810,200 +2309,41 @@ "@types/node": "*" } }, - "node_modules/@types/yargs": { - "version": "17.0.24", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/type-utils": "6.14.0", - "@typescript-eslint/utils": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.14.0", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "6.14.0", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.1.tgz", + "integrity": "sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==", "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/typescript-estree": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "6.14.0", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.1.tgz", + "integrity": "sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0" + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3011,13 +2351,12 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.14.0", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.1.tgz", + "integrity": "sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3025,193 +2364,94 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.14.0", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.1.tgz", + "integrity": "sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==", "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.13.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.13.1", - "@typescript-eslint/visitor-keys": "7.13.1" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.14.0", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.1.tgz", + "integrity": "sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.14.0", - "@typescript-eslint/utils": "6.14.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "@typescript-eslint/types": "8.18.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.14.0", + "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "balanced-match": "^1.0.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.14.0", + "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://opencollective.com/eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "6.14.0", + "node_modules/@typescript-eslint/parser/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", - "semver": "^7.5.4" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.14.0", + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.13.1", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "@typescript-eslint/types": "6.14.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/visitor-keys": "7.13.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -3322,12 +2562,125 @@ "license": "ISC", "peer": true }, - "node_modules/acorn": { - "version": "8.14.0", + "node_modules/@vitest/expect": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", + "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", + "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.8", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", + "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.8", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", + "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.8", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", + "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", + "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.8", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" @@ -3417,18 +2770,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/anymatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/argparse": { "version": "2.0.1", "dev": true, @@ -3478,10 +2819,15 @@ "node": ">=12.0.0" } }, - "node_modules/async": { - "version": "3.2.5", + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=12" + } }, "node_modules/available-typed-arrays": { "version": "1.0.7", @@ -3497,92 +2843,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/backo2": { "version": "1.0.2", "license": "MIT" @@ -3694,56 +2954,6 @@ "version": "1.1.0", "license": "MIT" }, - "node_modules/browserslist": { - "version": "4.21.10", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, "node_modules/buffer": { "version": "6.0.3", "funding": [ @@ -3782,6 +2992,16 @@ "dev": true, "license": "MIT" }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.7", "dev": true, @@ -3808,33 +3028,23 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", + "node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001522", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, "node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -3850,19 +3060,21 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/chardet": { "version": "0.7.0", "dev": true, "license": "MIT" }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, "node_modules/chownr": { "version": "3.0.0", "license": "BlueOak-1.0.0", @@ -3884,11 +3096,6 @@ "node": ">=8" } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "dev": true, - "license": "MIT" - }, "node_modules/cli-width": { "version": "4.1.0", "dev": true, @@ -3910,20 +3117,6 @@ "node": ">=12" } }, - "node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, "node_modules/color-convert": { "version": "2.0.1", "license": "MIT", @@ -3938,11 +3131,6 @@ "version": "1.1.4", "license": "MIT" }, - "node_modules/colorette": { - "version": "2.0.20", - "dev": true, - "license": "MIT" - }, "node_modules/colors": { "version": "1.4.0", "license": "MIT", @@ -4011,11 +3199,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/cookie": { "version": "0.7.2", "dev": true, @@ -4024,26 +3207,6 @@ "node": ">= 0.6" } }, - "node_modules/create-jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "license": "MIT", @@ -4103,17 +3266,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dedent": { - "version": "1.5.1", + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "engines": { + "node": ">=6" } }, "node_modules/deep-equal": { @@ -4152,14 +3312,6 @@ "dev": true, "license": "MIT" }, - "node_modules/deepmerge": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "dev": true, @@ -4200,22 +3352,6 @@ "node": ">=8" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "dev": true, @@ -4275,28 +3411,9 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/ejs": { - "version": "3.1.10", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.496", - "dev": true, - "license": "ISC" - }, - "node_modules/elliptic": { - "version": "6.6.0", - "license": "MIT", + "node_modules/elliptic": { + "version": "6.6.0", + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -4307,17 +3424,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/emittery": { - "version": "0.13.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "license": "MIT" @@ -4391,14 +3497,6 @@ "node": ">=8.6" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/es-define-property": { "version": "1.0.0", "dev": true, @@ -4437,6 +3535,52 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/escalade": { "version": "3.1.1", "dev": true, @@ -4540,30 +3684,6 @@ "typescript": "^4.2.4 || ^5.0.0" } }, - "node_modules/eslint-plugin-jest": { - "version": "28.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "engines": { - "node": "^16.10.0 || ^18.12.0 || >=20.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", - "jest": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, "node_modules/eslint-plugin-prettier": { "version": "5.2.1", "dev": true, @@ -4694,962 +3814,336 @@ "node": ">=4.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-stream": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, - "node_modules/examples": { - "resolved": "packages/examples", - "link": true - }, - "node_modules/execa": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/extendable-error": { - "version": "0.1.7", - "dev": true, - "license": "MIT" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-srp-hap": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/fastq": { - "version": "1.13.0", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/ffmpeg-for-homebridge": { - "version": "2.1.7", - "hasInstallScript": true, - "dependencies": { - "dotenv": "^16.4.5", - "simple-get": "^4.0.1", - "tar": "^7.4.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" + "@types/estree": "^1.0.0" } }, - "node_modules/find-up": { - "version": "5.0.0", + "node_modules/esutils": { + "version": "2.0.3", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.1", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/from": { - "version": "0.1.7", - "dev": true, - "license": "MIT" - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/futoin-hkdf": { - "version": "1.5.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/generate-function": { - "version": "2.3.1", - "license": "MIT", - "dependencies": { - "is-property": "^1.0.2" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "dev": true, - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/graphql": { - "version": "16.8.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, - "node_modules/hap-nodejs": { - "version": "0.12.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@homebridge/ciao": "^1.3.1", - "@homebridge/dbus-native": "^0.6.0", - "bonjour-hap": "^3.8.0", - "debug": "^4.3.7", - "fast-srp-hap": "^2.0.4", - "futoin-hkdf": "^1.5.3", - "node-persist": "^0.0.12", - "source-map-support": "^0.5.21", - "tslib": "^2.8.0", - "tweetnacl": "^1.0.3" - }, - "engines": { - "node": "^18 || ^20 || ^22" - } - }, - "node_modules/has": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-binary2": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-binary2/node_modules/isarray": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/has-cors": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/headers-polyfill": { - "version": "4.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/hexy": { - "version": "0.3.5", - "dev": true, - "license": "MIT", - "bin": { - "hexy": "bin/hexy_cmd.js" - }, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/homebridge": { - "version": "1.8.5", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chalk": "4.1.2", - "commander": "12.1.0", - "fs-extra": "11.2.0", - "hap-nodejs": "0.12.3", - "qrcode-terminal": "0.12.0", - "semver": "7.6.3", - "source-map-support": "0.5.21" - }, - "bin": { - "homebridge": "bin/homebridge" - }, + "license": "BSD-2-Clause", "engines": { - "node": "^18.15.0 || ^20.7.0 || ^22" + "node": ">=0.10.0" } }, - "node_modules/homebridge-ring": { - "resolved": "packages/homebridge-ring", - "link": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", + "node_modules/event-stream": { + "version": "4.0.1", "dev": true, - "license": "MIT" - }, - "node_modules/http_ece": { - "version": "1.2.1", "license": "MIT", - "engines": { - "node": ">=16" + "dependencies": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" } }, - "node_modules/human-id": { - "version": "1.0.2", - "dev": true, - "license": "MIT" + "node_modules/examples": { + "resolved": "packages/examples", + "link": true }, - "node_modules/human-signals": { - "version": "2.1.0", + "node_modules/expect-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", + "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=10.17.0" + "node": ">=12.0.0" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", + "node_modules/extendable-error": { + "version": "0.1.7", + "dev": true, + "license": "MIT" + }, + "node_modules/external-editor": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" }, - "node_modules/ignore": { - "version": "5.3.1", + "node_modules/fast-diff": { + "version": "1.3.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } + "license": "Apache-2.0" }, - "node_modules/import-fresh": { - "version": "3.3.0", + "node_modules/fast-glob": { + "version": "3.3.2", "dev": true, "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.6.0" } }, - "node_modules/import-local": { - "version": "3.1.0", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-srp-hap": { + "version": "2.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">=0.8.19" + "node": ">=10.17.0" } }, - "node_modules/indexof": { - "version": "0.0.1" - }, - "node_modules/inflight": { - "version": "1.0.6", + "node_modules/fastq": { + "version": "1.13.0", "dev": true, "license": "ISC", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "reusify": "^1.0.4" } }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" + "node_modules/ffmpeg-for-homebridge": { + "version": "2.1.7", + "hasInstallScript": true, + "dependencies": { + "dotenv": "^16.4.5", + "simple-get": "^4.0.1", + "tar": "^7.4.3" + }, + "engines": { + "node": ">=18" + } }, - "node_modules/int64-buffer": { - "version": "1.0.1", + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, "engines": { - "node": ">= 4.5.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/internal-slot": { - "version": "1.0.7", + "node_modules/file-entry-cache": { + "version": "6.0.1", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">= 0.4" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/ip": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", + "node_modules/fill-range": { + "version": "7.1.1", + "dev": true, "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { - "node": ">= 10" + "node": ">=8" } }, - "node_modules/is-arguments": { - "version": "1.1.1", + "node_modules/find-up": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-array-buffer": { + "node_modules/flat-cache": { "version": "3.0.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", + "node_modules/flatted": { + "version": "3.3.1", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/is-bigint": { - "version": "1.0.4", + "node_modules/for-each": { + "version": "0.3.3", "dev": true, "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/from": { + "version": "0.1.7", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "11.2.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=14.14" } }, - "node_modules/is-callable": { - "version": "1.2.7", + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/is-core-module": { - "version": "2.13.0", + "node_modules/function-bind": { + "version": "1.1.2", "dev": true, "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { - "version": "1.0.5", + "node_modules/functions-have-names": { + "version": "1.2.3", "dev": true, "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extglob": { - "version": "2.1.1", + "node_modules/futoin-hkdf": { + "version": "1.5.3", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/generate-function": { + "version": "2.3.1", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "is-property": "^1.0.2" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", + "node_modules/get-caller-file": { + "version": "2.0.5", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=6" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/is-glob": { - "version": "4.0.3", + "node_modules/get-intrinsic": { + "version": "1.2.4", "dev": true, "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5657,138 +4151,166 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-node-process": { - "version": "1.2.0", + "node_modules/glob": { + "version": "7.2.3", "dev": true, - "license": "MIT" + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/is-number": { - "version": "7.0.0", + "node_modules/glob-parent": { + "version": "6.0.2", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, "engines": { - "node": ">=0.12.0" + "node": ">=10.13.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", + "node_modules/globals": { + "version": "13.24.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", + "node_modules/globby": { + "version": "11.1.0", "dev": true, "license": "MIT", - "peer": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", + "node_modules/gopd": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "isobject": "^3.0.1" + "get-intrinsic": "^1.1.3" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-property": { - "version": "1.0.2", + "node_modules/graceful-fs": { + "version": "4.2.10", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, "license": "MIT" }, - "node_modules/is-regex": { - "version": "1.1.4", + "node_modules/graphql": { + "version": "16.8.1", "dev": true, "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/hap-nodejs": { + "version": "0.12.3", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@homebridge/ciao": "^1.3.1", + "@homebridge/dbus-native": "^0.6.0", + "bonjour-hap": "^3.8.0", + "debug": "^4.3.7", + "fast-srp-hap": "^2.0.4", + "futoin-hkdf": "^1.5.3", + "node-persist": "^0.0.12", + "source-map-support": "^0.5.21", + "tslib": "^2.8.0", + "tweetnacl": "^1.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18 || ^20 || ^22" } }, - "node_modules/is-set": { - "version": "2.0.3", + "node_modules/has-bigints": { + "version": "1.0.2", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { + "node_modules/has-binary2": { "version": "1.0.3", - "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "isarray": "2.0.1" } }, - "node_modules/is-stream": { + "node_modules/has-binary2/node_modules/isarray": { "version": "2.0.1", + "license": "MIT" + }, + "node_modules/has-cors": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", + "node_modules/has-property-descriptors": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-subdir": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "better-path-resolve": "1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", + "node_modules/has-proto": { + "version": "1.0.3", "dev": true, "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, "engines": { "node": ">= 0.4" }, @@ -5796,8 +4318,8 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakmap": { - "version": "2.0.2", + "node_modules/has-symbols": { + "version": "1.0.3", "dev": true, "license": "MIT", "engines": { @@ -5807,13 +4329,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakset": { - "version": "2.0.3", + "node_modules/has-tostringtag": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -5822,670 +4343,528 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", + "node_modules/hash.js": { + "version": "1.1.7", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", "dev": true, "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/isarray": { - "version": "2.0.5", + "node_modules/headers-polyfill": { + "version": "4.0.3", "dev": true, "license": "MIT" }, - "node_modules/isexe": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", + "node_modules/hexy": { + "version": "0.3.5", + "dev": true, "license": "MIT", + "bin": { + "hexy": "bin/hexy_cmd.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10.4" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" + "node_modules/hmac-drbg": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", + "node_modules/homebridge": { + "version": "1.8.5", "dev": true, - "license": "BSD-3-Clause", + "license": "Apache-2.0", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "chalk": "4.1.2", + "commander": "12.1.0", + "fs-extra": "11.2.0", + "hap-nodejs": "0.12.3", + "qrcode-terminal": "0.12.0", + "semver": "7.6.3", + "source-map-support": "0.5.21" + }, + "bin": { + "homebridge": "bin/homebridge" }, "engines": { - "node": ">=8" + "node": "^18.15.0 || ^20.7.0 || ^22" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/homebridge-ring": { + "resolved": "packages/homebridge-ring", + "link": true + }, + "node_modules/http_ece": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=16" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", + "node_modules/human-id": { + "version": "1.0.2", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", + "node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.1", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 4" } }, - "node_modules/istanbul-reports": { - "version": "3.1.6", + "node_modules/import-fresh": { + "version": "3.3.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jake": { - "version": "10.9.2", + "node_modules/imurmurhash": { + "version": "0.1.4", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.8.19" } }, - "node_modules/jest": { - "version": "29.7.0", + "node_modules/indexof": { + "version": "0.0.1" + }, + "node_modules/inflight": { + "version": "1.0.6", "dev": true, - "license": "MIT", + "license": "ISC", + "peer": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/int64-buffer": { + "version": "1.0.1", + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">= 4.5.0" } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", + "node_modules/internal-slot": { + "version": "1.0.7", "dev": true, "license": "MIT", "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" } }, - "node_modules/jest-circus": { - "version": "29.7.0", - "dev": true, + "node_modules/ip": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 10" } }, - "node_modules/jest-cli": { - "version": "29.7.0", + "node_modules/is-arguments": { + "version": "1.1.1", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-config": { - "version": "29.7.0", + "node_modules/is-array-buffer": { + "version": "3.0.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-diff": { - "version": "29.7.0", + "node_modules/is-bigint": { + "version": "1.0.4", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "has-bigints": "^1.0.1" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", + "node_modules/is-boolean-object": { + "version": "1.1.2", "dev": true, "license": "MIT", "dependencies": { - "detect-newline": "^3.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-each": { - "version": "29.7.0", + "node_modules/is-date-object": { + "version": "1.0.5", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", + "node_modules/is-extglob": { + "version": "2.1.1", "dev": true, "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "dev": true, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", + "node_modules/is-glob": { + "version": "4.0.3", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "is-extglob": "^2.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=0.10.0" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", + "node_modules/is-map": { + "version": "2.0.3", "dev": true, "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", + "node_modules/is-node-process": { + "version": "1.2.0", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "license": "MIT" }, - "node_modules/jest-message-util": { - "version": "29.7.0", + "node_modules/is-number": { + "version": "7.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.12.0" } }, - "node_modules/jest-mock": { - "version": "29.7.0", + "node_modules/is-number-object": { + "version": "1.0.7", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", + "node_modules/is-path-inside": { + "version": "3.0.3", "dev": true, "license": "MIT", + "peer": true, "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "node": ">=8" } }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "dev": true, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "dev": true, + "node_modules/is-plain-object": { + "version": "2.0.4", "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "isobject": "^3.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", + "node_modules/is-property": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.1.4", "dev": true, "license": "MIT", "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-runner": { - "version": "29.7.0", + "node_modules/is-set": { + "version": "2.0.3", "dev": true, "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-runner/node_modules/source-map-support": { - "version": "0.5.13", + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", "dev": true, "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-runtime": { - "version": "29.7.0", + "node_modules/is-string": { + "version": "1.0.7", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-util": { - "version": "29.7.0", + "node_modules/is-subdir": { + "version": "1.2.0", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "better-path-resolve": "1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-validate": { - "version": "29.7.0", + "node_modules/is-symbol": { + "version": "1.0.4", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "has-symbols": "^1.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", + "node_modules/is-weakmap": { + "version": "2.0.2", "dev": true, "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-worker": { - "version": "29.7.0", + "node_modules/is-weakset": { + "version": "2.0.3", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", + "node_modules/is-windows": { + "version": "1.0.2", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/js-tokens": { - "version": "4.0.0", + "node_modules/isarray": { + "version": "2.0.5", "dev": true, "license": "MIT" }, + "node_modules/isexe": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "dev": true, @@ -6497,17 +4876,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/json-bigint": { "version": "1.0.0", "license": "MIT", @@ -6520,11 +4888,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "dev": true, @@ -6535,17 +4898,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jsonfile": { "version": "6.1.0", "dev": true, @@ -6605,22 +4957,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/kleur": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/levn": { "version": "0.4.1", "dev": true, @@ -6633,11 +4969,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, "node_modules/locate-path": { "version": "6.0.0", "dev": true, @@ -6702,42 +5033,35 @@ "version": "5.2.3", "license": "Apache-2.0" }, - "node_modules/make-dir": { - "version": "4.0.0", + "node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/make-error": { - "version": "1.3.6", - "dev": true, - "license": "ISC" - }, - "node_modules/makeerror": { - "version": "1.0.12", + "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } + "license": "MIT" }, "node_modules/map-stream": { "version": "0.0.7", "dev": true, "license": "MIT" }, - "node_modules/merge-stream": { - "version": "2.0.0", - "license": "MIT" - }, "node_modules/merge2": { "version": "1.4.1", "dev": true, @@ -6758,13 +5082,6 @@ "node": ">=8.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/mimic-response": { "version": "3.1.0", "license": "MIT", @@ -6983,6 +5300,25 @@ "big-integer": "^1.6.16" } }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "dev": true, @@ -7026,11 +5362,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, "node_modules/node-persist": { "version": "0.0.12", "dev": true, @@ -7040,29 +5371,6 @@ "q": "~1.1.1" } }, - "node_modules/node-releases": { - "version": "2.0.13", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/object-inspect": { "version": "1.13.2", "dev": true, @@ -7121,19 +5429,6 @@ "wrappy": "1" } }, - "node_modules/onetime": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optionator": { "version": "0.9.3", "dev": true, @@ -7168,27 +5463,6 @@ "dev": true, "license": "MIT" }, - "node_modules/oxc-resolver": { - "version": "1.10.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - }, - "optionalDependencies": { - "@oxc-resolver/binding-darwin-arm64": "1.10.2", - "@oxc-resolver/binding-darwin-x64": "1.10.2", - "@oxc-resolver/binding-freebsd-x64": "1.10.2", - "@oxc-resolver/binding-linux-arm-gnueabihf": "1.10.2", - "@oxc-resolver/binding-linux-arm64-gnu": "1.10.2", - "@oxc-resolver/binding-linux-arm64-musl": "1.10.2", - "@oxc-resolver/binding-linux-x64-gnu": "1.10.2", - "@oxc-resolver/binding-linux-x64-musl": "1.10.2", - "@oxc-resolver/binding-wasm32-wasi": "1.10.2", - "@oxc-resolver/binding-win32-arm64-msvc": "1.10.2", - "@oxc-resolver/binding-win32-x64-msvc": "1.10.2" - } - }, "node_modules/p-cancelable": { "version": "2.1.1", "license": "MIT", @@ -7271,18 +5545,13 @@ "node": ">=6" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "dev": true, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7308,6 +5577,7 @@ "version": "1.0.1", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7319,11 +5589,6 @@ "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, "node_modules/path-scurry": { "version": "1.11.1", "license": "BlueOak-1.0.0", @@ -7355,6 +5620,23 @@ "node": ">=8" } }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "node_modules/pause-stream": { "version": "0.0.11", "dev": true, @@ -7377,7 +5659,9 @@ } }, "node_modules/picocolors": { - "version": "1.1.0", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, @@ -7400,79 +5684,41 @@ "node": ">=6" } }, - "node_modules/pirates": { - "version": "4.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/possible-typed-array-names": { + "version": "1.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "node": "^10 || ^12 || >=14" } }, "node_modules/prelude-ls": { @@ -7509,40 +5755,19 @@ "node": ">=6.0.0" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "dev": true, + "node_modules/pretty-ms": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", + "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "parse-ms": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/protobufjs": { @@ -7580,21 +5805,6 @@ "node": ">=6" } }, - "node_modules/pure-rand": { - "version": "6.0.3", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, "node_modules/pvtsutils": { "version": "1.3.5", "license": "MIT", @@ -7649,11 +5859,6 @@ ], "license": "MIT" }, - "node_modules/react-is": { - "version": "18.2.0", - "dev": true, - "license": "MIT" - }, "node_modules/read-yaml-file": { "version": "1.1.0", "dev": true, @@ -7734,41 +5939,6 @@ "dev": true, "license": "MIT" }, - "node_modules/resolve": { - "version": "1.22.4", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "dev": true, @@ -7777,14 +5947,6 @@ "node": ">=4" } }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/reusify": { "version": "1.0.4", "dev": true, @@ -7813,6 +5975,45 @@ "resolved": "packages/ring-client-api", "link": true }, + "node_modules/rollup": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz", + "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.29.1", + "@rollup/rollup-android-arm64": "4.29.1", + "@rollup/rollup-darwin-arm64": "4.29.1", + "@rollup/rollup-darwin-x64": "4.29.1", + "@rollup/rollup-freebsd-arm64": "4.29.1", + "@rollup/rollup-freebsd-x64": "4.29.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", + "@rollup/rollup-linux-arm-musleabihf": "4.29.1", + "@rollup/rollup-linux-arm64-gnu": "4.29.1", + "@rollup/rollup-linux-arm64-musl": "4.29.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", + "@rollup/rollup-linux-riscv64-gnu": "4.29.1", + "@rollup/rollup-linux-s390x-gnu": "4.29.1", + "@rollup/rollup-linux-x64-gnu": "4.29.1", + "@rollup/rollup-linux-x64-musl": "4.29.1", + "@rollup/rollup-win32-arm64-msvc": "4.29.1", + "@rollup/rollup-win32-ia32-msvc": "4.29.1", + "@rollup/rollup-win32-x64-msvc": "4.29.1", + "fsevents": "~2.3.2" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "dev": true, @@ -7955,8 +6156,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, "license": "ISC" }, "node_modules/simple-concat": { @@ -8000,11 +6204,6 @@ "simple-concat": "^1.0.0" } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, "node_modules/slash": { "version": "3.0.0", "dev": true, @@ -8073,6 +6272,16 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", "dev": true, @@ -8110,32 +6319,20 @@ "through": "2" }, "engines": { - "node": "*" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" + "node": "*" } }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", + "node_modules/sprintf-js": { + "version": "1.0.3", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "BSD-3-Clause" + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" }, "node_modules/statuses": { "version": "2.0.1", @@ -8145,6 +6342,13 @@ "node": ">= 0.8" } }, + "node_modules/std-env": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", + "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", + "dev": true, + "license": "MIT" + }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", "dev": true, @@ -8170,18 +6374,6 @@ "dev": true, "license": "MIT" }, - "node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/string-width": { "version": "4.2.3", "license": "MIT", @@ -8228,21 +6420,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "dev": true, @@ -8265,17 +6442,6 @@ "node": ">=8" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/synckit": { "version": "0.9.1", "dev": true, @@ -8356,19 +6522,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -8384,6 +6537,50 @@ "version": "1.1.0", "license": "MIT" }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", + "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/tmp": { "version": "0.0.33", "dev": true, @@ -8395,22 +6592,9 @@ "node": ">=0.6.0" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/to-array": { "version": "0.1.4" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "dev": true, @@ -8463,53 +6647,6 @@ "typescript": ">=4.2.0" } }, - "node_modules/ts-jest": { - "version": "29.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "bs-logger": "^0.2.6", - "ejs": "^3.1.10", - "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "^4.1.2", - "make-error": "^1.3.6", - "semver": "^7.6.3", - "yargs-parser": "^21.1.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, "node_modules/tsconfig": { "resolved": "packages/tsconfig", "link": true @@ -8582,14 +6719,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.20.2", "dev": true, @@ -8866,41 +6995,24 @@ "version": "6.19.8", "license": "MIT" }, - "node_modules/universalify": { - "version": "2.0.1", - "dev": true, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "license": "MIT", "engines": { - "node": ">= 10.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", + "node_modules/universalify": { + "version": "2.0.1", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">= 10.0.0" } }, "node_modules/uri-js": { @@ -8931,30 +7043,153 @@ "uuid": "dist/esm/bin/uuid" } }, - "node_modules/v8-to-istanbul": { - "version": "9.1.0", + "node_modules/vite": { + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" }, "engines": { - "node": ">=10.12.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", + "node_modules/vite-node": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", + "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } }, - "node_modules/walker": { - "version": "1.0.8", + "node_modules/vitest": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", + "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "makeerror": "1.0.12" + "@vitest/expect": "2.1.8", + "@vitest/mocker": "2.1.8", + "@vitest/pretty-format": "^2.1.8", + "@vitest/runner": "2.1.8", + "@vitest/snapshot": "2.1.8", + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.8", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.8", + "@vitest/ui": "2.1.8", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } } }, "node_modules/webcrypto-core": { @@ -9151,6 +7386,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -9187,18 +7439,6 @@ "version": "1.0.2", "license": "ISC" }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/ws": { "version": "8.18.0", "license": "MIT", @@ -9299,6 +7539,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/yoctocolors-cjs": { "version": "2.1.2", "dev": true, @@ -9314,10 +7566,10 @@ "version": "0.0.0-dev", "devDependencies": { "@eslint/js": "9.15.0", + "@typescript-eslint/parser": "^8.18.1", "eslint": "9.15.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-deprecation": "^3.0.0", - "eslint-plugin-jest": "28.9.0", "eslint-plugin-prettier": "5.2.1", "globals": "15.12.0", "tsconfig": "*", @@ -9507,8 +7759,8 @@ ], "license": "MIT", "dependencies": { - "@homebridge/camera-utils": "^2.2.7", - "@homebridge/plugin-ui-utils": "^1.0.3", + "@homebridge/camera-utils": "^3.0.0", + "@homebridge/plugin-ui-utils": "^2.0.0", "ring-client-api": "13.2.1", "werift": "0.20.1" }, @@ -9539,7 +7791,7 @@ "license": "MIT", "dependencies": { "@eneris/push-receiver": "4.3.0", - "@homebridge/camera-utils": "^2.2.7", + "@homebridge/camera-utils": "^3.0.0", "colors": "1.4.0", "debug": "^4.3.7", "json-bigint": "^1.0.0", @@ -9557,18 +7809,16 @@ }, "devDependencies": { "@types/debug": "4.1.12", - "@types/jest": "29.5.14", "@types/json-bigint": "^1.0.4", "@types/node": "22.9.3", "@types/socket.io-client": "1.4.36", "@types/uuid": "10.0.0", "@types/ws": "^8.5.13", "eslint-config-shared": "*", - "jest": "29.7.0", "msw": "^2.6.4", - "ts-jest": "29.2.5", "tsconfig": "*", - "typescript": "5.7.2" + "typescript": "5.7.2", + "vitest": "^2.1.8" }, "engines": { "node": "^18 || ^20 || ^22" diff --git a/package.json b/package.json index d4c93eba..faa3534d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "ring", "private": true, + "type": "module", "scripts": { "build": "turbo run build", "dev": "turbo run dev --parallel", @@ -8,12 +9,12 @@ "lint": "turbo run lint", "lint:fix": "turbo run lint -- --fix", "test:watch": "npm run test:watch -w ring-client-api", - "example": "turbo build --filter=ring-client-api && DEBUG=ring node -r @swc-node/register ./packages/examples/example.ts", - "api-example": "turbo build --filter=ring-client-api && DEBUG=ring node -r @swc-node/register ./packages/examples/api-example.ts", - "record-example": "turbo build --filter=ring-client-api && DEBUG=ring node -r @swc-node/register ./packages/examples/record-example.ts", - "return-audio-example": "turbo build --filter=ring-client-api && DEBUG=ring node -r @swc-node/register ./packages/examples/return-audio-example.ts", - "stream-example": "turbo build --filter=ring-client-api && DEBUG=ring node -r @swc-node/register ./packages/examples/stream-example.ts", - "browser-example": "turbo build --filter=ring-client-api && DEBUG=ring node -r @swc-node/register ./packages/examples/browser-example.ts", + "example": "turbo build --filter=ring-client-api && DEBUG=ring node --experimental-transform-types ./packages/examples/example.ts", + "api-example": "turbo build --filter=ring-client-api && DEBUG=ring node --experimental-transform-types ./packages/examples/api-example.ts", + "record-example": "turbo build --filter=ring-client-api && DEBUG=ring node --experimental-transform-types ./packages/examples/record-example.ts", + "return-audio-example": "turbo build --filter=ring-client-api && DEBUG=ring node --experimental-transform-types ./packages/examples/return-audio-example.ts", + "stream-example": "turbo build --filter=ring-client-api && DEBUG=ring node --experimental-transform-types ./packages/examples/stream-example.ts", + "browser-example": "turbo build --filter=ring-client-api && DEBUG=ring node --experimental-transform-types ./packages/examples/browser-example.ts", "auth-cli": "turbo build --filter=ring-client-api && ./packages/ring-client-api/lib/ring-auth-cli.js", "device-data-cli": "turbo build --filter=ring-client-api && ./packages/ring-client-api/lib/ring-device-data-cli.js", "push-with-tags": "git push --follow-tags", @@ -27,7 +28,6 @@ "devDependencies": { "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.27.10", - "@swc-node/register": "^1.10.9", "turbo": "^2.2.3" }, "workspaces": [ diff --git a/packages/eslint-config-shared/eslint-config-shared.js b/packages/eslint-config-shared/eslint-config-shared.js index 86a08e63..9675f9c2 100644 --- a/packages/eslint-config-shared/eslint-config-shared.js +++ b/packages/eslint-config-shared/eslint-config-shared.js @@ -43,7 +43,7 @@ export default tseslint.config( 'no-debugger': 2, 'no-dupe-keys': 2, 'no-dupe-class-members': 2, - 'no-duplicate-imports': 2, + 'no-duplicate-imports': 0, 'no-empty': 2, 'no-empty-character-class': 2, 'no-ex-assign': 2, @@ -195,6 +195,7 @@ export default tseslint.config( '@typescript-eslint/no-var-requires': 0, '@typescript-eslint/explicit-module-boundary-types': 0, '@typescript-eslint/no-unused-vars': 0, + '@typescript-eslint/consistent-type-imports': 2, // '@typescript-eslint/no-unused-vars': [ // 'error', // { argsIgnorePattern: '^_' }, diff --git a/packages/eslint-config-shared/package.json b/packages/eslint-config-shared/package.json index a6f8fe94..fe362888 100644 --- a/packages/eslint-config-shared/package.json +++ b/packages/eslint-config-shared/package.json @@ -6,10 +6,10 @@ "type": "module", "devDependencies": { "@eslint/js": "9.15.0", + "@typescript-eslint/parser": "^8.18.1", "eslint": "9.15.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-deprecation": "^3.0.0", - "eslint-plugin-jest": "28.9.0", "eslint-plugin-prettier": "5.2.1", "globals": "15.12.0", "tsconfig": "*", diff --git a/packages/examples/.gitignore b/packages/examples/.gitignore index 53752db2..a30bad98 100644 --- a/packages/examples/.gitignore +++ b/packages/examples/.gitignore @@ -1 +1,2 @@ output +public diff --git a/packages/examples/api-example.ts b/packages/examples/api-example.ts index d0911a50..6ba5fd3f 100644 --- a/packages/examples/api-example.ts +++ b/packages/examples/api-example.ts @@ -1,5 +1,5 @@ import 'dotenv/config' -import { RingApi } from '../ring-client-api' +import { RingApi } from 'ring-client-api' async function example() { const { env } = process, @@ -38,24 +38,29 @@ async function example() { // Camera API const eventsResponse = await camera.getEvents({ - limit: 10, - kind: 'ding', - state: 'accepted', - // olderThanId: previousEventsResponse.meta.pagination_key - // favorites: true - }) - console.log('Got events', eventsResponse.events[0]) - const eventsWithRecordings = eventsResponse.events.filter( + limit: 10, + kind: 'ding', + state: 'accepted', + // olderThanId: previousEventsResponse.meta.pagination_key + // favorites: true + }), + [firstRecordedEvent] = eventsResponse.events.filter( (event) => event.recording_status === 'ready', - ), - transcodedUrl = await camera.getRecordingUrl( - eventsWithRecordings[0].ding_id_str, // MUST use the ding_id_str, not ding_id + ) + + if (!firstRecordedEvent) { + console.log('No events with recordings found') + return + } + + const transcodedUrl = await camera.getRecordingUrl( + firstRecordedEvent.ding_id_str, // MUST use the ding_id_str, not ding_id { transcoded: true, // get transcoded version of the video. false by default. transcoded has ring log and timestamp }, ), untranscodedUrl = await camera.getRecordingUrl( - eventsWithRecordings[0].ding_id_str, + firstRecordedEvent.ding_id_str, ) console.log('Recording Transcoded URL', transcodedUrl) diff --git a/packages/examples/browser-example.ts b/packages/examples/browser-example.ts index b4ecbffc..2d42d968 100644 --- a/packages/examples/browser-example.ts +++ b/packages/examples/browser-example.ts @@ -1,5 +1,5 @@ import 'dotenv/config' -import { RingApi } from '../ring-client-api' +import { RingApi } from 'ring-client-api' import fs from 'node:fs/promises' import path from 'node:path' // @ts-expect-error express is not installed by default so you will need to run `npm i express` @@ -24,6 +24,7 @@ async function example() { } const app = express(), + __dirname = new URL('.', import.meta.url).pathname, publicOutputDirectory = path.join(__dirname, 'public/output') app.use('/', express.static(path.join(__dirname, 'public'))) diff --git a/packages/examples/chime-example.ts b/packages/examples/chime-example.ts index 7021a966..3d670e6e 100644 --- a/packages/examples/chime-example.ts +++ b/packages/examples/chime-example.ts @@ -1,5 +1,5 @@ import 'dotenv/config' -import { RingApi } from '../ring-client-api' +import { RingApi } from 'ring-client-api' async function example() { const ringApi = new RingApi({ diff --git a/packages/examples/eslint.config.mjs b/packages/examples/eslint.config.js similarity index 100% rename from packages/examples/eslint.config.mjs rename to packages/examples/eslint.config.js diff --git a/packages/examples/example.ts b/packages/examples/example.ts index dda8d060..24c60bf4 100644 --- a/packages/examples/example.ts +++ b/packages/examples/example.ts @@ -1,5 +1,5 @@ import 'dotenv/config' -import { PushNotificationAction, RingApi } from '../ring-client-api' +import { PushNotificationAction, RingApi } from 'ring-client-api' import { skip } from 'rxjs/operators' import { readFile, writeFile } from 'fs' import { promisify } from 'util' diff --git a/packages/examples/package.json b/packages/examples/package.json index 1c97e906..d6b8ee81 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -2,6 +2,7 @@ "name": "examples", "version": "0.0.0-dev", "private": true, + "type": "module", "scripts": { "lint": "eslint .", "build": "tsc --noEmit" diff --git a/packages/examples/record-example.ts b/packages/examples/record-example.ts index 87044f0e..69784f3d 100644 --- a/packages/examples/record-example.ts +++ b/packages/examples/record-example.ts @@ -1,6 +1,6 @@ import 'dotenv/config' -import { RingApi } from '../ring-client-api' -import { cleanOutputDirectory, outputDirectory } from './util' +import { RingApi } from 'ring-client-api' +import { cleanOutputDirectory, outputDirectory } from './util.ts' import * as path from 'path' /** diff --git a/packages/examples/return-audio-example.ts b/packages/examples/return-audio-example.ts index f273fc57..72f84708 100644 --- a/packages/examples/return-audio-example.ts +++ b/packages/examples/return-audio-example.ts @@ -1,6 +1,6 @@ import 'dotenv/config' -import { RingApi } from '../ring-client-api' -import { cleanOutputDirectory } from './util' +import { RingApi } from 'ring-client-api' +import { cleanOutputDirectory } from './util.ts' import * as path from 'path' /** @@ -25,7 +25,8 @@ async function example() { await cleanOutputDirectory() console.log(`Starting Return Audio to ${camera.name}...`) - const call = await camera.startLiveCall() + const call = await camera.startLiveCall(), + __dirname = new URL('.', import.meta.url).pathname console.log('Call started, activating return audio...') await Promise.all([ diff --git a/packages/examples/stream-example.ts b/packages/examples/stream-example.ts index c98aa6eb..ec251ffd 100644 --- a/packages/examples/stream-example.ts +++ b/packages/examples/stream-example.ts @@ -1,7 +1,7 @@ import 'dotenv/config' -import { RingApi } from '../ring-client-api' +import { RingApi } from 'ring-client-api' import * as path from 'path' -import { cleanOutputDirectory, outputDirectory } from './util' +import { cleanOutputDirectory, outputDirectory } from './util.ts' /** * This example streams to files, each with 10 seconds of video. diff --git a/packages/examples/tsconfig.json b/packages/examples/tsconfig.json index 9e623966..0b9b7f6b 100644 --- a/packages/examples/tsconfig.json +++ b/packages/examples/tsconfig.json @@ -1,3 +1,4 @@ { - "extends": "tsconfig/tsconfig.json" + "extends": "tsconfig/tsconfig.json", + "exclude": ["public", "output"] } diff --git a/packages/examples/util.ts b/packages/examples/util.ts index 97ea79a1..01d311a9 100644 --- a/packages/examples/util.ts +++ b/packages/examples/util.ts @@ -1,6 +1,8 @@ import { join } from 'node:path' import { mkdir, rm } from 'node:fs/promises' +const __dirname = new URL('.', import.meta.url).pathname + export const outputDirectory = join(__dirname, 'output') export async function cleanOutputDirectory() { diff --git a/packages/homebridge-ring/base-accessory.ts b/packages/homebridge-ring/base-accessory.ts index 86f53a48..b2b3d40a 100644 --- a/packages/homebridge-ring/base-accessory.ts +++ b/packages/homebridge-ring/base-accessory.ts @@ -1,17 +1,19 @@ -import { hap } from './hap' +import { hap } from './hap.ts' import { shareReplay, take } from 'rxjs/operators' -import { firstValueFrom, Observable } from 'rxjs' -import { debug, RingPlatformConfig } from './config' -import { +import type { Observable } from 'rxjs' +import { firstValueFrom } from 'rxjs' +import type { RingPlatformConfig } from './config.ts' +import { debug } from './config.ts' +import type { Characteristic, PlatformAccessory, Service, - CharacteristicEventTypes, CharacteristicGetCallback, CharacteristicValue, CharacteristicSetCallback, WithUUID, } from 'homebridge' +import { CharacteristicEventTypes } from 'homebridge' import { logError, logInfo } from 'ring-client-api/util' function isServiceInstance( diff --git a/packages/homebridge-ring/base-data-accessory.ts b/packages/homebridge-ring/base-data-accessory.ts index 7b2c9e15..b0b98e8f 100644 --- a/packages/homebridge-ring/base-data-accessory.ts +++ b/packages/homebridge-ring/base-data-accessory.ts @@ -1,24 +1,22 @@ -import { - BaseAccessory, - CharacteristicType, - ServiceType, -} from './base-accessory' -import { Observable, Subject } from 'rxjs' +import type { CharacteristicType, ServiceType } from './base-accessory.ts' +import { BaseAccessory } from './base-accessory.ts' +import type { Observable } from 'rxjs' +import { Subject } from 'rxjs' import type { RingCamera, RingChime, RingDevice, RingIntercom, } from 'ring-client-api' -import { RingPlatformConfig } from './config' +import type { RingPlatformConfig } from './config.ts' import { debounceTime, distinctUntilChanged, map } from 'rxjs/operators' -import { +import type { PlatformAccessory, CharacteristicValue, CharacteristicSetCallback, CharacteristicGetCallback, - CharacteristicEventTypes, } from 'homebridge' +import { CharacteristicEventTypes } from 'homebridge' import { logError } from 'ring-client-api/util' export abstract class BaseDataAccessory< diff --git a/packages/homebridge-ring/base-device-accessory.ts b/packages/homebridge-ring/base-device-accessory.ts index e15c8bf8..169df199 100644 --- a/packages/homebridge-ring/base-device-accessory.ts +++ b/packages/homebridge-ring/base-device-accessory.ts @@ -1,9 +1,9 @@ -import { RingDevice, RingDeviceData } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { BaseDataAccessory } from './base-data-accessory' -import { PlatformAccessory } from 'homebridge' -import { ServiceType } from './base-accessory' +import type { RingDevice, RingDeviceData } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import { BaseDataAccessory } from './base-data-accessory.ts' +import type { PlatformAccessory } from 'homebridge' +import type { ServiceType } from './base-accessory.ts' function getBatteryLevel({ batteryLevel, batteryStatus }: RingDeviceData) { if (batteryLevel !== undefined) { diff --git a/packages/homebridge-ring/beam.ts b/packages/homebridge-ring/beam.ts index d0ab912c..a19ec744 100644 --- a/packages/homebridge-ring/beam.ts +++ b/packages/homebridge-ring/beam.ts @@ -1,8 +1,9 @@ -import { RingDevice, RingDeviceType } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { BaseDeviceAccessory } from './base-device-accessory' -import { PlatformAccessory } from 'homebridge' +import type { RingDevice } from 'ring-client-api' +import { RingDeviceType } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class Beam extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/brightness-only.ts b/packages/homebridge-ring/brightness-only.ts index d2b84c13..5d935272 100644 --- a/packages/homebridge-ring/brightness-only.ts +++ b/packages/homebridge-ring/brightness-only.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' +import { BaseDeviceAccessory } from './base-device-accessory.ts' import type { RingDevice } from 'ring-client-api' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' -import { hap } from './hap' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' +import { hap } from './hap.ts' import { logInfo } from 'ring-client-api/util' export class BrightnessOnly extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/camera-source.ts b/packages/homebridge-ring/camera-source.ts index 6152ce82..afbc7cce 100644 --- a/packages/homebridge-ring/camera-source.ts +++ b/packages/homebridge-ring/camera-source.ts @@ -1,27 +1,29 @@ -import { RingCamera } from 'ring-client-api' -import { hap } from './hap' +import type { RingCamera } from 'ring-client-api' +import { hap } from './hap.ts' +import type { SrtpOptions } from '@homebridge/camera-utils' import { doesFfmpegSupportCodec, generateSrtpOptions, ReturnAudioTranscoder, RtpSplitter, - SrtpOptions, } from '@homebridge/camera-utils' -import { - AudioStreamingCodecType, - AudioStreamingSamplerate, +import type { CameraStreamingDelegate, - H264Level, - H264Profile, PrepareStreamCallback, PrepareStreamRequest, SnapshotRequest, SnapshotRequestCallback, - SRTPCryptoSuites, StartStreamRequest, StreamingRequest, StreamRequestCallback, } from 'homebridge' +import { + AudioStreamingCodecType, + AudioStreamingSamplerate, + H264Level, + H264Profile, + SRTPCryptoSuites, +} from 'homebridge' import { logDebug, logError, logInfo } from 'ring-client-api/util' import { debounceTime, delay, take } from 'rxjs/operators' import { interval, merge, of, Subject } from 'rxjs' @@ -36,11 +38,14 @@ import { SrtcpSession, } from 'werift' import type { StreamingSession } from 'ring-client-api/streaming/streaming-session' -import { OpusRepacketizer } from './opus-repacketizer' - -const readFileAsync = promisify(readFile), - cameraOfflinePath = require.resolve('../media/camera-offline.jpg'), - snapshotsBlockedPath = require.resolve('../media/snapshots-blocked.jpg') +import { OpusRepacketizer } from './opus-repacketizer.ts' +import path from 'node:path' + +const __dirname = new URL('.', import.meta.url).pathname, + mediaDirectory = path.join(__dirname.replace('/lib', ''), 'media'), + readFileAsync = promisify(readFile), + cameraOfflinePath = path.join(mediaDirectory, 'camera-offline.jpg'), + snapshotsBlockedPath = path.join(mediaDirectory, 'snapshots-blocked.jpg') function getDurationSeconds(start: number) { return (Date.now() - start) / 1000 diff --git a/packages/homebridge-ring/camera.ts b/packages/homebridge-ring/camera.ts index 24f26586..f7dc4625 100644 --- a/packages/homebridge-ring/camera.ts +++ b/packages/homebridge-ring/camera.ts @@ -1,11 +1,11 @@ -import { hap } from './hap' -import { RingPlatformConfig } from './config' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' import type { RingCamera } from 'ring-client-api' -import { BaseDataAccessory } from './base-data-accessory' +import { BaseDataAccessory } from './base-data-accessory.ts' import { filter, map, switchMap, throttleTime } from 'rxjs/operators' -import { CameraSource } from './camera-source' -import { PlatformAccessory } from 'homebridge' -import { TargetValueTimer } from './target-value-timer' +import { CameraSource } from './camera-source.ts' +import type { PlatformAccessory } from 'homebridge' +import { TargetValueTimer } from './target-value-timer.ts' import { delay, logError, logInfo } from 'ring-client-api/util' import { firstValueFrom } from 'rxjs' diff --git a/packages/homebridge-ring/chime.ts b/packages/homebridge-ring/chime.ts index 9eec5724..4e325c0c 100644 --- a/packages/homebridge-ring/chime.ts +++ b/packages/homebridge-ring/chime.ts @@ -1,8 +1,8 @@ -import { RingChime } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' -import { BaseDataAccessory } from './base-data-accessory' +import type { RingChime } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' +import { BaseDataAccessory } from './base-data-accessory.ts' import { logInfo } from 'ring-client-api/util' const minutesFor24Hours = 24 * 60 diff --git a/packages/homebridge-ring/co-alarm.ts b/packages/homebridge-ring/co-alarm.ts index 645d0124..342b6704 100644 --- a/packages/homebridge-ring/co-alarm.ts +++ b/packages/homebridge-ring/co-alarm.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingDevice } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' export class CoAlarm extends BaseDeviceAccessory { constructor( diff --git a/packages/homebridge-ring/config.ts b/packages/homebridge-ring/config.ts index c4aa8405..b10525f0 100644 --- a/packages/homebridge-ring/config.ts +++ b/packages/homebridge-ring/config.ts @@ -1,6 +1,6 @@ -import { AlarmMode, RingApiOptions } from 'ring-client-api' +import type { AlarmMode, RingApiOptions } from 'ring-client-api' import { readFileSync, writeFileSync } from 'fs' -import { API } from 'homebridge' +import type { API } from 'homebridge' import { createHash, randomBytes } from 'crypto' import { join } from 'path' diff --git a/packages/homebridge-ring/contact-sensor.ts b/packages/homebridge-ring/contact-sensor.ts index ca830cc6..0911b9de 100644 --- a/packages/homebridge-ring/contact-sensor.ts +++ b/packages/homebridge-ring/contact-sensor.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingDevice } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' export class ContactSensor extends BaseDeviceAccessory { constructor( diff --git a/packages/homebridge-ring/eslint.config.mjs b/packages/homebridge-ring/eslint.config.js similarity index 100% rename from packages/homebridge-ring/eslint.config.mjs rename to packages/homebridge-ring/eslint.config.js diff --git a/packages/homebridge-ring/fan.ts b/packages/homebridge-ring/fan.ts index a731ffc5..cfc72ab7 100644 --- a/packages/homebridge-ring/fan.ts +++ b/packages/homebridge-ring/fan.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' +import { BaseDeviceAccessory } from './base-device-accessory.ts' import type { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class Fan extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/flood-freeze-sensor.ts b/packages/homebridge-ring/flood-freeze-sensor.ts index 8d2774bb..5f5354be 100644 --- a/packages/homebridge-ring/flood-freeze-sensor.ts +++ b/packages/homebridge-ring/flood-freeze-sensor.ts @@ -1,9 +1,9 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingDevice } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' import { distinctUntilChanged, filter, map } from 'rxjs/operators' -import { PlatformAccessory } from 'homebridge' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class FloodFreezeSensor extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/freeze-sensor.ts b/packages/homebridge-ring/freeze-sensor.ts index d7a77b4e..e2047421 100644 --- a/packages/homebridge-ring/freeze-sensor.ts +++ b/packages/homebridge-ring/freeze-sensor.ts @@ -1,9 +1,9 @@ -import { BaseDeviceAccessory } from './base-device-accessory' +import { BaseDeviceAccessory } from './base-device-accessory.ts' import type { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' import { distinctUntilChanged, filter, map } from 'rxjs/operators' -import { PlatformAccessory } from 'homebridge' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class FreezeSensor extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/hap.ts b/packages/homebridge-ring/hap.ts index 7f106513..95d74d28 100644 --- a/packages/homebridge-ring/hap.ts +++ b/packages/homebridge-ring/hap.ts @@ -1,4 +1,4 @@ -import { HAP } from 'homebridge' +import type { HAP } from 'homebridge' export let hap: HAP export function setHap(hapInstance: HAP) { diff --git a/packages/homebridge-ring/homebridge-ui/server.ts b/packages/homebridge-ring/homebridge-ui/server.ts index 35602fad..2edbc926 100644 --- a/packages/homebridge-ring/homebridge-ui/server.ts +++ b/packages/homebridge-ring/homebridge-ui/server.ts @@ -5,7 +5,7 @@ import { } from '@homebridge/plugin-ui-utils' import { RingRestClient } from 'ring-client-api/rest-client' -import { controlCenterDisplayName, getSystemId } from '../config' +import { controlCenterDisplayName, getSystemId } from '../config.ts' interface LoginRequest { email: string diff --git a/packages/homebridge-ring/index.ts b/packages/homebridge-ring/index.ts index 0a860bd9..dce12703 100644 --- a/packages/homebridge-ring/index.ts +++ b/packages/homebridge-ring/index.ts @@ -1,5 +1,5 @@ -import { platformName, pluginName, RingPlatform } from './ring-platform' -import { setHap } from './hap' +import { platformName, pluginName, RingPlatform } from './ring-platform.ts' +import { setHap } from './hap.ts' export default function (homebridge: any) { setHap(homebridge.hap) diff --git a/packages/homebridge-ring/intercom.ts b/packages/homebridge-ring/intercom.ts index fa55e633..0bbc4e9d 100644 --- a/packages/homebridge-ring/intercom.ts +++ b/packages/homebridge-ring/intercom.ts @@ -1,8 +1,8 @@ -import { RingIntercom } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' -import { BaseDataAccessory } from './base-data-accessory' +import type { RingIntercom } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' +import { BaseDataAccessory } from './base-data-accessory.ts' import { logError, logInfo } from 'ring-client-api/util' import { map, throttleTime } from 'rxjs/operators' diff --git a/packages/homebridge-ring/location-mode-switch.ts b/packages/homebridge-ring/location-mode-switch.ts index 277377aa..1dbc494c 100644 --- a/packages/homebridge-ring/location-mode-switch.ts +++ b/packages/homebridge-ring/location-mode-switch.ts @@ -1,17 +1,17 @@ import type { Location, LocationMode } from 'ring-client-api' import { distinctUntilChanged } from 'rxjs/operators' -import { hap } from './hap' -import { RingPlatformConfig } from './config' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' import { logError, logInfo } from 'ring-client-api/util' -import { BaseAccessory } from './base-accessory' +import { BaseAccessory } from './base-accessory.ts' import { firstValueFrom, of } from 'rxjs' -import { +import type { PlatformAccessory, - CharacteristicEventTypes, CharacteristicGetCallback, CharacteristicSetCallback, CharacteristicValue, } from 'homebridge' +import { CharacteristicEventTypes } from 'homebridge' function getStateFromMode(mode: LocationMode) { const { diff --git a/packages/homebridge-ring/lock.ts b/packages/homebridge-ring/lock.ts index 877811d7..9e7a8e62 100644 --- a/packages/homebridge-ring/lock.ts +++ b/packages/homebridge-ring/lock.ts @@ -1,9 +1,9 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingDevice, RingDeviceData } from 'ring-client-api' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingDevice, RingDeviceData } from 'ring-client-api' import { distinctUntilChanged } from 'rxjs/operators' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' function getCurrentState({ locked }: RingDeviceData) { const { diff --git a/packages/homebridge-ring/motion-sensor.ts b/packages/homebridge-ring/motion-sensor.ts index 1290a55a..2ee3971d 100644 --- a/packages/homebridge-ring/motion-sensor.ts +++ b/packages/homebridge-ring/motion-sensor.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingDevice } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' export class MotionSensor extends BaseDeviceAccessory { constructor( diff --git a/packages/homebridge-ring/multi-level-switch.ts b/packages/homebridge-ring/multi-level-switch.ts index eee316dc..15a872ab 100644 --- a/packages/homebridge-ring/multi-level-switch.ts +++ b/packages/homebridge-ring/multi-level-switch.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' +import { BaseDeviceAccessory } from './base-device-accessory.ts' import type { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class MultiLevelSwitch extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/outlet.ts b/packages/homebridge-ring/outlet.ts index 9f6b2c84..56e3c29f 100644 --- a/packages/homebridge-ring/outlet.ts +++ b/packages/homebridge-ring/outlet.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingDevice } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class Outlet extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/package.json b/packages/homebridge-ring/package.json index 2b9912ff..0e1efadd 100644 --- a/packages/homebridge-ring/package.json +++ b/packages/homebridge-ring/package.json @@ -3,6 +3,7 @@ "displayName": "Ring", "version": "13.2.1", "description": "Homebridge plugin for Ring doorbells, cameras, security alarm system and smart lighting", + "type": "module", "main": "lib/index.js", "scripts": { "build": "rm -rf lib && tsc && cp -r ./homebridge-ui/public ./lib/homebridge-ui/public/", @@ -12,8 +13,8 @@ "dev:run": "RING_DEBUG=true node --watch ../../node_modules/.bin/homebridge -U ../../.homebridge" }, "dependencies": { - "@homebridge/camera-utils": "^2.2.7", - "@homebridge/plugin-ui-utils": "^1.0.3", + "@homebridge/camera-utils": "^3.0.0", + "@homebridge/plugin-ui-utils": "^2.0.0", "ring-client-api": "13.2.1", "werift": "0.20.1" }, diff --git a/packages/homebridge-ring/panic-buttons.ts b/packages/homebridge-ring/panic-buttons.ts index f6c60b51..4f6843f0 100644 --- a/packages/homebridge-ring/panic-buttons.ts +++ b/packages/homebridge-ring/panic-buttons.ts @@ -1,8 +1,8 @@ -import { RingDevice, RingDeviceData, AlarmState } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { BaseDataAccessory } from './base-data-accessory' -import { PlatformAccessory } from 'homebridge' +import type { RingDevice, RingDeviceData, AlarmState } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import { BaseDataAccessory } from './base-data-accessory.ts' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' const burglarStates: AlarmState[] = [ diff --git a/packages/homebridge-ring/ring-platform.ts b/packages/homebridge-ring/ring-platform.ts index 14d8d198..7e9f6648 100644 --- a/packages/homebridge-ring/ring-platform.ts +++ b/packages/homebridge-ring/ring-platform.ts @@ -7,50 +7,50 @@ import { RingDeviceType, RingIntercom, } from 'ring-client-api' -import { hap } from './hap' -import { +import { hap } from './hap.ts' +import type { API, DynamicPlatformPlugin, Logging, PlatformAccessory, PlatformConfig, } from 'homebridge' -import { SecurityPanel } from './security-panel' -import { Chime } from './chime' -import { BrightnessOnly } from './brightness-only' -import { ContactSensor } from './contact-sensor' -import { MotionSensor } from './motion-sensor' -import { Lock } from './lock' -import { SmokeAlarm } from './smoke-alarm' -import { CoAlarm } from './co-alarm' -import { SmokeCoListener } from './smoke-co-listener' +import { SecurityPanel } from './security-panel.ts' +import { Chime } from './chime.ts' +import { BrightnessOnly } from './brightness-only.ts' +import { ContactSensor } from './contact-sensor.ts' +import { MotionSensor } from './motion-sensor.ts' +import { Lock } from './lock.ts' +import { SmokeAlarm } from './smoke-alarm.ts' +import { CoAlarm } from './co-alarm.ts' +import { SmokeCoListener } from './smoke-co-listener.ts' +import type { RingPlatformConfig } from './config.ts' import { controlCenterDisplayName, debug, getSystemId, - RingPlatformConfig, updateHomebridgeConfig, -} from './config' -import { Beam } from './beam' -import { MultiLevelSwitch } from './multi-level-switch' -import { Fan } from './fan' -import { Outlet } from './outlet' -import { Switch } from './switch' -import { Camera } from './camera' -import { PanicButtons } from './panic-buttons' -import { RefreshTokenAuth } from 'ring-client-api/rest-client' +} from './config.ts' +import { Beam } from './beam.ts' +import { MultiLevelSwitch } from './multi-level-switch.ts' +import { Fan } from './fan.ts' +import { Outlet } from './outlet.ts' +import { Switch } from './switch.ts' +import { Camera } from './camera.ts' +import { PanicButtons } from './panic-buttons.ts' +import type { RefreshTokenAuth } from 'ring-client-api/rest-client' import { logError, logInfo, useLogger } from 'ring-client-api/util' -import { BaseAccessory } from './base-accessory' -import { FloodFreezeSensor } from './flood-freeze-sensor' -import { FreezeSensor } from './freeze-sensor' -import { TemperatureSensor } from './temperature-sensor' -import { WaterSensor } from './water-sensor' -import { LocationModeSwitch } from './location-mode-switch' -import { Thermostat } from './thermostat' -import { UnknownZWaveSwitchSwitch } from './unknown-zwave-switch' -import { generateMacAddress } from './util' -import { Intercom } from './intercom' -import { Valve } from './valve' +import type { BaseAccessory } from './base-accessory.ts' +import { FloodFreezeSensor } from './flood-freeze-sensor.ts' +import { FreezeSensor } from './freeze-sensor.ts' +import { TemperatureSensor } from './temperature-sensor.ts' +import { WaterSensor } from './water-sensor.ts' +import { LocationModeSwitch } from './location-mode-switch.ts' +import { Thermostat } from './thermostat.ts' +import { UnknownZWaveSwitchSwitch } from './unknown-zwave-switch.ts' +import { generateMacAddress } from './util.ts' +import { Intercom } from './intercom.ts' +import { Valve } from './valve.ts' const ignoreHiddenDeviceTypes: string[] = [ RingDeviceType.RingNetAdapter, diff --git a/packages/homebridge-ring/security-panel.ts b/packages/homebridge-ring/security-panel.ts index 3ce3208f..d258d43b 100644 --- a/packages/homebridge-ring/security-panel.ts +++ b/packages/homebridge-ring/security-panel.ts @@ -1,15 +1,14 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { AlarmMode, AlarmState, - allAlarmStates, RingDevice, RingDeviceData, - RingDeviceType, } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { allAlarmStates, RingDeviceType } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' import { logError, logInfo } from 'ring-client-api/util' function isValidNightModeBypass(mode?: AlarmMode) { diff --git a/packages/homebridge-ring/smoke-alarm.ts b/packages/homebridge-ring/smoke-alarm.ts index 0d5c0c6b..c78090b0 100644 --- a/packages/homebridge-ring/smoke-alarm.ts +++ b/packages/homebridge-ring/smoke-alarm.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingDevice } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' export class SmokeAlarm extends BaseDeviceAccessory { constructor( diff --git a/packages/homebridge-ring/smoke-co-listener.ts b/packages/homebridge-ring/smoke-co-listener.ts index 20c2b355..46ca6e38 100644 --- a/packages/homebridge-ring/smoke-co-listener.ts +++ b/packages/homebridge-ring/smoke-co-listener.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingDevice } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' export class SmokeCoListener extends BaseDeviceAccessory { constructor( diff --git a/packages/homebridge-ring/switch.ts b/packages/homebridge-ring/switch.ts index a5ce932c..6120e3e9 100644 --- a/packages/homebridge-ring/switch.ts +++ b/packages/homebridge-ring/switch.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' +import { BaseDeviceAccessory } from './base-device-accessory.ts' import type { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class Switch extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/temperature-sensor.ts b/packages/homebridge-ring/temperature-sensor.ts index 6ef3a433..d1538dbf 100644 --- a/packages/homebridge-ring/temperature-sensor.ts +++ b/packages/homebridge-ring/temperature-sensor.ts @@ -1,9 +1,9 @@ -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingDevice } from 'ring-client-api' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' import { distinctUntilChanged, map } from 'rxjs/operators' -import { PlatformAccessory } from 'homebridge' +import type { PlatformAccessory } from 'homebridge' export class TemperatureSensor extends BaseDeviceAccessory { constructor( diff --git a/packages/homebridge-ring/thermostat.ts b/packages/homebridge-ring/thermostat.ts index ab8e5d1b..a60f892e 100644 --- a/packages/homebridge-ring/thermostat.ts +++ b/packages/homebridge-ring/thermostat.ts @@ -1,12 +1,14 @@ -import { PlatformAccessory } from 'homebridge' -import { Observable, combineLatest } from 'rxjs' +import type { PlatformAccessory } from 'homebridge' +import type { Observable } from 'rxjs' +import { combineLatest } from 'rxjs' import { distinctUntilChanged, map, switchMap } from 'rxjs/operators' -import { RingDevice, RingDeviceType, ThermostatMode } from 'ring-client-api' +import type { RingDevice, ThermostatMode } from 'ring-client-api' +import { RingDeviceType } from 'ring-client-api' import { logDebug, logError, logInfo } from 'ring-client-api/util' -import { BaseDeviceAccessory } from './base-device-accessory' -import { RingPlatformConfig } from './config' -import { hap } from './hap' +import { BaseDeviceAccessory } from './base-device-accessory.ts' +import type { RingPlatformConfig } from './config.ts' +import { hap } from './hap.ts' export class Thermostat extends BaseDeviceAccessory { private onTemperature: Observable diff --git a/packages/homebridge-ring/unknown-zwave-switch.ts b/packages/homebridge-ring/unknown-zwave-switch.ts index 88cbfb8a..1ec9f349 100644 --- a/packages/homebridge-ring/unknown-zwave-switch.ts +++ b/packages/homebridge-ring/unknown-zwave-switch.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' +import { BaseDeviceAccessory } from './base-device-accessory.ts' import type { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class UnknownZWaveSwitchSwitch extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/valve.ts b/packages/homebridge-ring/valve.ts index 5f150687..c5b0c86b 100644 --- a/packages/homebridge-ring/valve.ts +++ b/packages/homebridge-ring/valve.ts @@ -1,8 +1,8 @@ -import { BaseDeviceAccessory } from './base-device-accessory' +import { BaseDeviceAccessory } from './base-device-accessory.ts' import type { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' -import { PlatformAccessory } from 'homebridge' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class Valve extends BaseDeviceAccessory { diff --git a/packages/homebridge-ring/water-sensor.ts b/packages/homebridge-ring/water-sensor.ts index 71a182c5..8d8d533f 100644 --- a/packages/homebridge-ring/water-sensor.ts +++ b/packages/homebridge-ring/water-sensor.ts @@ -1,9 +1,9 @@ -import { BaseDeviceAccessory } from './base-device-accessory' +import { BaseDeviceAccessory } from './base-device-accessory.ts' import type { RingDevice } from 'ring-client-api' -import { hap } from './hap' -import { RingPlatformConfig } from './config' +import { hap } from './hap.ts' +import type { RingPlatformConfig } from './config.ts' import { distinctUntilChanged, filter, map } from 'rxjs/operators' -import { PlatformAccessory } from 'homebridge' +import type { PlatformAccessory } from 'homebridge' import { logInfo } from 'ring-client-api/util' export class WaterSensor extends BaseDeviceAccessory { diff --git a/packages/ring-client-api/api.ts b/packages/ring-client-api/api.ts index 0485d80c..283e7f4e 100644 --- a/packages/ring-client-api/api.ts +++ b/packages/ring-client-api/api.ts @@ -1,12 +1,7 @@ -import { - clientApi, - deviceApi, - RefreshTokenAuth, - RingRestClient, - SessionOptions, -} from './rest-client' -import { Location } from './location' -import { +import type { RefreshTokenAuth, SessionOptions } from './rest-client.ts' +import { clientApi, deviceApi, RingRestClient } from './rest-client.ts' +import { Location } from './location.ts' +import type { BaseStation, BeamBridge, CameraData, @@ -15,14 +10,14 @@ import { OnvifCameraData, ProfileResponse, PushNotification, - PushNotificationAction, - RingDeviceType, ThirdPartyGarageDoorOpener, UnknownDevice, UserLocation, -} from './ring-types' -import { AnyCameraData, RingCamera } from './ring-camera' -import { RingChime } from './ring-chime' +} from './ring-types.ts' +import { PushNotificationAction, RingDeviceType } from './ring-types.ts' +import type { AnyCameraData } from './ring-camera.ts' +import { RingCamera } from './ring-camera.ts' +import { RingChime } from './ring-chime.ts' import { combineLatest, EMPTY, merge, Subject } from 'rxjs' import { debounceTime, @@ -30,11 +25,17 @@ import { switchMap, throttleTime, } from 'rxjs/operators' -import { clearTimeouts, enableDebug, logDebug, logError, logInfo } from './util' -import { setFfmpegPath } from './ffmpeg' -import { Subscribed } from './subscribed' -import PushReceiver from '@eneris/push-receiver' -import { RingIntercom } from './ring-intercom' +import { + clearTimeouts, + enableDebug, + logDebug, + logError, + logInfo, +} from './util.ts' +import { setFfmpegPath } from './ffmpeg.ts' +import { Subscribed } from './subscribed.ts' +import { PushReceiver } from '@eneris/push-receiver' +import { RingIntercom } from './ring-intercom.ts' import JSONbig from 'json-bigint' export interface RingApiOptions extends SessionOptions { diff --git a/packages/ring-client-api/device-data.ts b/packages/ring-client-api/device-data.ts index f434926f..290bf19c 100644 --- a/packages/ring-client-api/device-data.ts +++ b/packages/ring-client-api/device-data.ts @@ -1,7 +1,7 @@ /* eslint-disable no-console */ -import { RingApi } from './api' -import { acquireRefreshToken } from './refresh-token' -import { mapAsync } from './util' +import { RingApi } from './api.ts' +import { acquireRefreshToken } from './refresh-token.ts' +import { mapAsync } from './util.ts' const sensitiveFields = [ 'id', diff --git a/packages/ring-client-api/eslint.config.js b/packages/ring-client-api/eslint.config.js new file mode 100644 index 00000000..853bb04c --- /dev/null +++ b/packages/ring-client-api/eslint.config.js @@ -0,0 +1,3 @@ +import sharedConfig from 'eslint-config-shared' + +export default [...sharedConfig] diff --git a/packages/ring-client-api/eslint.config.mjs b/packages/ring-client-api/eslint.config.mjs deleted file mode 100644 index b438fcde..00000000 --- a/packages/ring-client-api/eslint.config.mjs +++ /dev/null @@ -1,12 +0,0 @@ -import sharedConfig from 'eslint-config-shared' -import globals from 'globals' - -export default [ - ...sharedConfig, - { - files: ['test/**/*.ts'], - languageOptions: { - globals: globals.jest, - }, - }, -] diff --git a/packages/ring-client-api/index.ts b/packages/ring-client-api/index.ts index 0b460ca8..06eb3f5d 100644 --- a/packages/ring-client-api/index.ts +++ b/packages/ring-client-api/index.ts @@ -1,7 +1,7 @@ -export * from './api' -export * from './location' -export * from './ring-camera' -export * from './ring-chime' -export * from './ring-device' -export * from './ring-intercom' -export * from './ring-types' +export * from './api.ts' +export * from './location.ts' +export * from './ring-camera.ts' +export * from './ring-chime.ts' +export * from './ring-device.ts' +export * from './ring-intercom.ts' +export * from './ring-types.ts' diff --git a/packages/ring-client-api/jest.config.mjs b/packages/ring-client-api/jest.config.mjs deleted file mode 100644 index f93dab15..00000000 --- a/packages/ring-client-api/jest.config.mjs +++ /dev/null @@ -1,5 +0,0 @@ -export default { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/test/**/*.spec.ts'], -} diff --git a/packages/ring-client-api/location.ts b/packages/ring-client-api/location.ts index e29831c7..6ce13fd5 100644 --- a/packages/ring-client-api/location.ts +++ b/packages/ring-client-api/location.ts @@ -1,12 +1,10 @@ -import { - connect as connectSocketIo, - Socket as SocketIOSocket, -} from 'socket.io-client' +import type { Socket as SocketIOSocket } from 'socket.io-client' +import { connect as connectSocketIo } from 'socket.io-client' +import type { Observable } from 'rxjs' import { BehaviorSubject, firstValueFrom, merge, - Observable, ReplaySubject, Subject, } from 'rxjs' @@ -20,16 +18,14 @@ import { shareReplay, skip, } from 'rxjs/operators' -import { delay, generateUuid, logDebug, logError, logInfo } from './util' -import { +import { delay, generateUuid, logDebug, logError, logInfo } from './util.ts' +import type { AccountMonitoringStatus, AlarmMode, AssetSession, - DispatchSignalType, MessageDataType, MessageType, RingDeviceData, - RingDeviceType, SocketIoMessage, TicketAsset, UserLocation, @@ -43,15 +39,21 @@ import { LocationModeSharing, LocationModeSettingsResponse, LocationModeInput, +} from './ring-types.ts' +import { + DispatchSignalType, + RingDeviceType, disabledLocationModes, isWebSocketSupportedAsset, -} from './ring-types' -import { appApi, clientApi, RingRestClient } from './rest-client' -import { getSearchQueryString, RingCamera } from './ring-camera' -import { RingChime } from './ring-chime' -import { RingDevice } from './ring-device' -import { RingIntercom } from './ring-intercom' -import { Subscribed } from './subscribed' +} from './ring-types.ts' +import type { RingRestClient } from './rest-client.ts' +import { appApi, clientApi } from './rest-client.ts' +import type { RingCamera } from './ring-camera.ts' +import { getSearchQueryString } from './ring-camera.ts' +import type { RingChime } from './ring-chime.ts' +import { RingDevice } from './ring-device.ts' +import type { RingIntercom } from './ring-intercom.ts' +import { Subscribed } from './subscribed.ts' const deviceListMessageType = 'DeviceInfoDocGetList' diff --git a/packages/ring-client-api/package.json b/packages/ring-client-api/package.json index ab5941da..ffb7b769 100644 --- a/packages/ring-client-api/package.json +++ b/packages/ring-client-api/package.json @@ -3,6 +3,7 @@ "version": "13.2.1", "description": "Unofficial API for Ring doorbells, cameras, security alarm system and smart lighting", "main": "lib/index.js", + "type": "module", "exports": { ".": "./lib/index.js", "./ffmpeg": "./lib/ffmpeg.js", @@ -11,15 +12,14 @@ "./streaming/streaming-session": "./lib/streaming/streaming-session.js" }, "scripts": { - "build": "rm -rf lib && tsc --declaration && chmod +x ./lib/ring-*-cli.js", + "build": "rm -rf lib && tsc --declaration && chmod +x ./lib/ring-*-cli.js && rm -rf ./lib/test", "dev": "tsc --declaration --watch --preserveWatchOutput", "lint": "eslint .", - "test": "jest", - "test:watch": "jest --watch" + "test": "vitest" }, "dependencies": { "@eneris/push-receiver": "4.3.0", - "@homebridge/camera-utils": "^2.2.7", + "@homebridge/camera-utils": "^3.0.0", "colors": "1.4.0", "debug": "^4.3.7", "json-bigint": "^1.0.0", @@ -33,18 +33,16 @@ }, "devDependencies": { "@types/debug": "4.1.12", - "@types/jest": "29.5.14", "@types/json-bigint": "^1.0.4", "@types/node": "22.9.3", "@types/socket.io-client": "1.4.36", "@types/uuid": "10.0.0", "@types/ws": "^8.5.13", "eslint-config-shared": "*", - "jest": "29.7.0", "msw": "^2.6.4", - "ts-jest": "29.2.5", "tsconfig": "*", - "typescript": "5.7.2" + "typescript": "5.7.2", + "vitest": "^2.1.8" }, "engines": { "node": "^18 || ^20 || ^22" diff --git a/packages/ring-client-api/refresh-token.ts b/packages/ring-client-api/refresh-token.ts index 76b74693..1347cd14 100755 --- a/packages/ring-client-api/refresh-token.ts +++ b/packages/ring-client-api/refresh-token.ts @@ -1,7 +1,7 @@ /* eslint-disable no-console */ -import { RingRestClient } from './rest-client' -import { requestInput } from './util' -import { AuthTokenResponse } from './ring-types' +import { RingRestClient } from './rest-client.ts' +import { requestInput } from './util.ts' +import type { AuthTokenResponse } from './ring-types.ts' export async function acquireRefreshToken() { const email = await requestInput('Email: '), diff --git a/packages/ring-client-api/rest-client.ts b/packages/ring-client-api/rest-client.ts index a62fa112..cf56f301 100644 --- a/packages/ring-client-api/rest-client.ts +++ b/packages/ring-client-api/rest-client.ts @@ -7,15 +7,15 @@ import { logInfo, stringify, toBase64, -} from './util' -import { +} from './util.ts' +import type { Auth2faResponse, AuthTokenResponse, SessionResponse, -} from './ring-types' +} from './ring-types.ts' import { ReplaySubject } from 'rxjs' import assert from 'assert' -import type { Credentials } from '@eneris/push-receiver/dist/types' +import type { Credentials } from '@eneris/push-receiver/dist/types.d.js' import { Agent } from 'undici' interface RequestOptions extends RequestInit { diff --git a/packages/ring-client-api/ring-auth-cli.ts b/packages/ring-client-api/ring-auth-cli.ts index cae9b9e5..6e64b58a 100755 --- a/packages/ring-client-api/ring-auth-cli.ts +++ b/packages/ring-client-api/ring-auth-cli.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -import { logRefreshToken } from './refresh-token' +import { logRefreshToken } from './refresh-token.ts' logRefreshToken().catch((e) => { // eslint-disable-next-line no-console console.error(e) diff --git a/packages/ring-client-api/ring-camera.ts b/packages/ring-client-api/ring-camera.ts index af3f6c33..3c32ef08 100644 --- a/packages/ring-client-api/ring-camera.ts +++ b/packages/ring-client-api/ring-camera.ts @@ -1,22 +1,22 @@ +import type { SocketTicketResponse, RingCameraKind } from './ring-types.ts' import { - CameraData, - CameraDeviceSettingsData, - CameraEventOptions, - CameraEventResponse, - CameraHealth, + type CameraData, + type CameraDeviceSettingsData, + type CameraEventOptions, + type CameraEventResponse, + type CameraHealth, DoorbellType, - HistoryOptions, - SocketTicketResponse, - PeriodicFootageResponse, + type HistoryOptions, + type PeriodicFootageResponse, PushNotificationAction, - PushNotificationDingV2, + type PushNotificationDingV2, RingCameraModel, - VideoSearchResponse, - OnvifCameraData, - RingCameraKind, - PushNotification, -} from './ring-types' -import { appApi, clientApi, deviceApi, RingRestClient } from './rest-client' + type VideoSearchResponse, + type OnvifCameraData, + type PushNotification, +} from './ring-types.ts' +import type { RingRestClient } from './rest-client.ts' +import { appApi, clientApi, deviceApi } from './rest-client.ts' import { BehaviorSubject, firstValueFrom, ReplaySubject, Subject } from 'rxjs' import { distinctUntilChanged, @@ -28,18 +28,17 @@ import { } from 'rxjs/operators' import { buildSearchString, - DeepPartial, + type DeepPartial, delay, logDebug, logError, -} from './util' -import { Subscribed } from './subscribed' -import { - StreamingConnectionOptions, - WebrtcConnection, -} from './streaming/webrtc-connection' -import { FfmpegOptions, StreamingSession } from './streaming/streaming-session' -import { SimpleWebRtcSession } from './streaming/simple-webrtc-session' +} from './util.ts' +import { Subscribed } from './subscribed.ts' +import type { StreamingConnectionOptions } from './streaming/webrtc-connection.ts' +import { WebrtcConnection } from './streaming/webrtc-connection.ts' +import type { FfmpegOptions } from './streaming/streaming-session.ts' +import { StreamingSession } from './streaming/streaming-session.ts' +import { SimpleWebRtcSession } from './streaming/simple-webrtc-session.ts' export type AnyCameraData = CameraData | OnvifCameraData diff --git a/packages/ring-client-api/ring-chime.ts b/packages/ring-client-api/ring-chime.ts index 7ee8196f..a3b11574 100644 --- a/packages/ring-client-api/ring-chime.ts +++ b/packages/ring-client-api/ring-chime.ts @@ -1,12 +1,13 @@ -import { +import type { ChimeData, ChimeUpdate, ChimeSoundKind, RingtoneOptions, ChimeHealth, - ChimeModel, -} from './ring-types' -import { clientApi, RingRestClient } from './rest-client' +} from './ring-types.ts' +import { ChimeModel } from './ring-types.ts' +import type { RingRestClient } from './rest-client.ts' +import { clientApi } from './rest-client.ts' import { BehaviorSubject, Subject } from 'rxjs' const settingsWhichRequireReboot = [ diff --git a/packages/ring-client-api/ring-device-data-cli.ts b/packages/ring-client-api/ring-device-data-cli.ts index 3a2d2333..ab242d44 100755 --- a/packages/ring-client-api/ring-device-data-cli.ts +++ b/packages/ring-client-api/ring-device-data-cli.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -import { logDeviceData } from './device-data' +import { logDeviceData } from './device-data.ts' logDeviceData().catch((e) => { // eslint-disable-next-line no-console console.error(e) diff --git a/packages/ring-client-api/ring-device.ts b/packages/ring-client-api/ring-device.ts index 629c53b5..82c31b82 100644 --- a/packages/ring-client-api/ring-device.ts +++ b/packages/ring-client-api/ring-device.ts @@ -1,9 +1,10 @@ import { BehaviorSubject } from 'rxjs' -import { deviceTypesWithVolume, RingDeviceData } from './ring-types' +import type { RingDeviceData } from './ring-types.ts' +import { deviceTypesWithVolume } from './ring-types.ts' import { filter, map } from 'rxjs/operators' -import { Location } from './location' -import { Subscribed } from './subscribed' -import { logError } from './util' +import type { Location } from './location.ts' +import { Subscribed } from './subscribed.ts' +import { logError } from './util.ts' export class RingDevice extends Subscribed { onData diff --git a/packages/ring-client-api/ring-intercom.ts b/packages/ring-client-api/ring-intercom.ts index bfa64458..b86a9557 100644 --- a/packages/ring-client-api/ring-intercom.ts +++ b/packages/ring-client-api/ring-intercom.ts @@ -1,13 +1,14 @@ -import { +import type { IntercomHandsetAudioData, PushNotification, - PushNotificationAction, -} from './ring-types' -import { clientApi, commandsApi, RingRestClient } from './rest-client' +} from './ring-types.ts' +import { PushNotificationAction } from './ring-types.ts' +import type { RingRestClient } from './rest-client.ts' +import { clientApi, commandsApi } from './rest-client.ts' import { BehaviorSubject, Subject } from 'rxjs' import { distinctUntilChanged, map } from 'rxjs/operators' -import { getBatteryLevel } from './ring-camera' -import { logError } from './util' +import { getBatteryLevel } from './ring-camera.ts' +import { logError } from './util.ts' export class RingIntercom { id diff --git a/packages/ring-client-api/streaming/peer-connection.ts b/packages/ring-client-api/streaming/peer-connection.ts index cc9690a9..d4251bc9 100644 --- a/packages/ring-client-api/streaming/peer-connection.ts +++ b/packages/ring-client-api/streaming/peer-connection.ts @@ -1,16 +1,16 @@ /* eslint-disable brace-style */ +import type { RTCIceCandidate, RtpPacket } from 'werift' import { - ConnectionState, + type ConnectionState, MediaStreamTrack, - RTCIceCandidate, RTCPeerConnection, - RtcpPacket, + type RtcpPacket, RTCRtpCodecParameters, - RtpPacket, } from 'werift' -import { interval, merge, Observable, ReplaySubject, Subject } from 'rxjs' -import { logDebug, logError, logInfo } from '../util' -import { Subscribed } from '../subscribed' +import type { Observable } from 'rxjs' +import { interval, merge, ReplaySubject, Subject } from 'rxjs' +import { logDebug, logError, logInfo } from '../util.ts' +import { Subscribed } from '../subscribed.ts' const ringIceServers = [ 'stun:stun.kinesisvideo.us-east-1.amazonaws.com:443', diff --git a/packages/ring-client-api/streaming/simple-webrtc-session.ts b/packages/ring-client-api/streaming/simple-webrtc-session.ts index fa868453..7c11c251 100644 --- a/packages/ring-client-api/streaming/simple-webrtc-session.ts +++ b/packages/ring-client-api/streaming/simple-webrtc-session.ts @@ -1,6 +1,6 @@ -import { RingCamera } from '../ring-camera' -import { generateUuid } from '../util' -import { RingRestClient } from '../rest-client' +import type { RingCamera } from '../ring-camera.ts' +import { generateUuid } from '../util.ts' +import type { RingRestClient } from '../rest-client.ts' function liveViewUrl(path: string) { return `https://api.ring.com/integrations/v1/liveview/${path}` diff --git a/packages/ring-client-api/streaming/streaming-session.ts b/packages/ring-client-api/streaming/streaming-session.ts index 0bf2f7d4..6629c852 100644 --- a/packages/ring-client-api/streaming/streaming-session.ts +++ b/packages/ring-client-api/streaming/streaming-session.ts @@ -5,12 +5,12 @@ import { RtpSplitter, } from '@homebridge/camera-utils' import { firstValueFrom, ReplaySubject, Subject } from 'rxjs' -import { WebrtcConnection } from './webrtc-connection' -import { getFfmpegPath } from '../ffmpeg' -import { logDebug, logError } from '../util' -import { RingCamera } from '../ring-camera' +import type { WebrtcConnection } from './webrtc-connection.ts' +import { getFfmpegPath } from '../ffmpeg.ts' +import { logDebug, logError } from '../util.ts' +import type { RingCamera } from '../ring-camera.ts' import { concatMap, map, mergeWith, take } from 'rxjs/operators' -import { Subscribed } from '../subscribed' +import { Subscribed } from '../subscribed.ts' type SpawnInput = string | number export interface FfmpegOptions { diff --git a/packages/ring-client-api/streaming/webrtc-connection.ts b/packages/ring-client-api/streaming/webrtc-connection.ts index a8d829d5..d86fb14d 100644 --- a/packages/ring-client-api/streaming/webrtc-connection.ts +++ b/packages/ring-client-api/streaming/webrtc-connection.ts @@ -7,12 +7,15 @@ import { Subject, } from 'rxjs' import { concatMap, take } from 'rxjs/operators' -import { generateUuid, logDebug, logError, logInfo } from '../util' -import { RingCamera } from '../ring-camera' -import { BasicPeerConnection, WeriftPeerConnection } from './peer-connection' -import { Subscribed } from '../subscribed' -import { RtpPacket } from 'werift' -import { IncomingMessage } from './streaming-messages' +import { generateUuid, logDebug, logError, logInfo } from '../util.ts' +import type { RingCamera } from '../ring-camera.ts' +import { + type BasicPeerConnection, + WeriftPeerConnection, +} from './peer-connection.ts' +import { Subscribed } from '../subscribed.ts' +import type { RtpPacket } from 'werift' +import type { IncomingMessage } from './streaming-messages.ts' export interface StreamingConnectionOptions { createPeerConnection?: () => BasicPeerConnection diff --git a/packages/ring-client-api/subscribed.ts b/packages/ring-client-api/subscribed.ts index 896cf227..18fde3f1 100644 --- a/packages/ring-client-api/subscribed.ts +++ b/packages/ring-client-api/subscribed.ts @@ -1,4 +1,4 @@ -import { Subscription } from 'rxjs' +import type { Subscription } from 'rxjs' export class Subscribed { private readonly subscriptions: Subscription[] = [] diff --git a/packages/ring-client-api/test/rest-client.spec.ts b/packages/ring-client-api/test/rest-client.spec.ts index 223d9275..118a31e0 100644 --- a/packages/ring-client-api/test/rest-client.spec.ts +++ b/packages/ring-client-api/test/rest-client.spec.ts @@ -1,8 +1,17 @@ import { http, HttpResponse } from 'msw' import { setupServer } from 'msw/node' -import { RingRestClient } from '../rest-client' -import { clearTimeouts, getHardwareId, toBase64 } from '../util' +import { RingRestClient } from '../rest-client.ts' +import { clearTimeouts, getHardwareId, toBase64 } from '../util.ts' import { firstValueFrom } from 'rxjs' +import { + afterAll, + afterEach, + beforeAll, + beforeEach, + describe, + expect, + it, +} from 'vitest' let sessionCreatedCount = 0, client: RingRestClient @@ -205,7 +214,7 @@ afterEach(() => { }) describe('getAuth', () => { - test('It should throw and set the 2fa prompt', async () => { + it('should throw and set the 2fa prompt', async () => { client = new RingRestClient({ password, email, @@ -221,7 +230,7 @@ describe('getAuth', () => { expect(client.using2fa).toEqual(true) }) - test('It should accept a 2fa code', async () => { + it('should accept a 2fa code', async () => { client = new RingRestClient({ password, email, @@ -239,7 +248,7 @@ describe('getAuth', () => { expect(client.refreshToken).toEqual(await wrapRefreshToken(refreshToken)) }) - test('it should handle invalid credentials', async () => { + it('should handle invalid credentials', async () => { client = new RingRestClient({ password: 'incorrect password', email, @@ -250,13 +259,13 @@ describe('getAuth', () => { ) }) - test('it should handle invalid 2fa code', async () => { + it('should handle invalid 2fa code', async () => { client = new RingRestClient({ password, email, }) - // ignore the first reject, it's tested above + // ignore the first reject, it's it('ove await expect(() => client.getAuth()).rejects.toThrow() // call getAuth again with an invalid 2fa code, which should fail @@ -268,7 +277,7 @@ describe('getAuth', () => { ) }) - test('it should establish a valid auth token with a valid refresh token', async () => { + it('should establish a valid auth token with a valid refresh token', async () => { client = new RingRestClient({ refreshToken, }) @@ -282,7 +291,7 @@ describe('getAuth', () => { ) }) - test('it should emit an event when a new refresh token is created', async () => { + it('should emit an event when a new refresh token is created', async () => { client = new RingRestClient({ refreshToken, }) diff --git a/packages/ring-client-api/test/ring-camera.spec.ts b/packages/ring-client-api/test/ring-camera.spec.ts index baadadf5..683825b3 100644 --- a/packages/ring-client-api/test/ring-camera.spec.ts +++ b/packages/ring-client-api/test/ring-camera.spec.ts @@ -1,4 +1,5 @@ -import { getBatteryLevel, cleanSnapshotUuid } from '../index' +import { getBatteryLevel, cleanSnapshotUuid } from '../ring-camera.ts' +import { describe, expect, it } from 'vitest' describe('Ring Camera', () => { describe('battery level', () => { diff --git a/packages/ring-client-api/util.ts b/packages/ring-client-api/util.ts index a495d408..1a22773d 100644 --- a/packages/ring-client-api/util.ts +++ b/packages/ring-client-api/util.ts @@ -1,9 +1,9 @@ import debug from 'debug' -import { red } from 'colors' +import colors from 'colors' import { createInterface } from 'readline' import { v4 as generateRandomUuid, v5 as generateUuidFromNamespace } from 'uuid' import { uuid as getSystemUuid } from 'systeminformation' -import pushReceiverLogger from '@eneris/push-receiver/dist/utils/logger' +import pushReceiverLogger from '@eneris/push-receiver/dist/utils/logger.js' const debugLogger = debug('ring'), uuidNamespace = 'e53ffdc0-e91d-4ce1-bec2-df939d94739d' @@ -18,7 +18,7 @@ let logger: Logger = { debugLogger(message) }, logError(message) { - debugLogger(red(message)) + debugLogger(colors.red(message)) }, }, debugEnabled = false @@ -161,7 +161,10 @@ function logPushReceiver(...args: any) { logDebug('[Push Receiver]') logDebug(args[0]) } -pushReceiverLogger.error = logPushReceiver + +const pushReceiverLoggerDefault = + pushReceiverLogger.default || pushReceiverLogger // fix for vitest +pushReceiverLoggerDefault.error = logPushReceiver export function fromBase64(encodedInput: string) { const buff = Buffer.from(encodedInput, 'base64') diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json index 2f0b943c..87cf51c2 100644 --- a/packages/tsconfig/package.json +++ b/packages/tsconfig/package.json @@ -1,5 +1,6 @@ { "name": "tsconfig", "private": true, + "type": "module", "version": "0.0.0-dev" } diff --git a/packages/tsconfig/tsconfig.json b/packages/tsconfig/tsconfig.json index ea04aa69..39871358 100644 --- a/packages/tsconfig/tsconfig.json +++ b/packages/tsconfig/tsconfig.json @@ -5,6 +5,8 @@ "module": "node16", "esModuleInterop": true, "allowJs": true, + "allowImportingTsExtensions": true, + "rewriteRelativeImportExtensions": true, "strict": true, "skipLibCheck": true }