From 4e9d612149b3fc90108e75263b604ac28ed9c8bd Mon Sep 17 00:00:00 2001
From: Ben <43026681+bwp91@users.noreply.github.com>
Date: Thu, 17 Jul 2025 08:54:57 +0100
Subject: [PATCH 26/94] v5.1.0
---
CHANGELOG.md | 11 +-
eslint.config.js | 6 -
package-lock.json | 828 +++++++++++++++++++++++--------------------
package.json | 32 +-
ui/angular.json | 1 -
ui/package-lock.json | 488 +++++++++++++++++++------
ui/package.json | 34 +-
7 files changed, 864 insertions(+), 536 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 04ea68382..81405fc87 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,10 @@
All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
-## v5.0.1 (Unreleased)
+## v5.1.0 (2025-07-17)
+
+⚠️ If you have not yet updated to the `5.x` branch of Homebridge UI, please read the breaking changes in the changelog before updating.
+There are no breaking changes between `5.0.0` and `5.1.0`.
### UI Changes
@@ -14,6 +17,12 @@ All notable changes to `homebridge-config-ui-x` will be documented in this file.
- pass through plugin display name to logs after update
- fix accidental hiding of startup settings section
+### Homebridge Dependencies
+
+- `@homebridge/hap-client` @ `v3.0.0`
+- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
+- `@homebridge/plugin-ui-utils` @ `v2.1.0`
+
## v5.0.0 (2025-07-13)
### ⚠️ Breaking Changes
diff --git a/eslint.config.js b/eslint.config.js
index 3fb81bca7..5d965c670 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -3,12 +3,8 @@ const { antfu } = require('@antfu/eslint-config')
module.exports = antfu({
ignores: ['dist', 'ui/.angular', 'ui/src/assets/monaco'],
rules: {
- 'curly': ['error'],
- 'import/extensions': 'off',
- 'import/order': 'off',
'jsdoc/check-alignment': 'error',
'jsdoc/check-line-alignment': 'error',
- 'new-cap': 'off',
'no-undef': 'error',
'perfectionist/sort-exports': 'error',
'perfectionist/sort-imports': [
@@ -34,8 +30,6 @@ module.exports = antfu({
],
'perfectionist/sort-named-exports': 'error',
'perfectionist/sort-named-imports': 'error',
- 'quotes': ['error', 'single'],
- 'sort-imports': 'off',
'style/brace-style': ['error', '1tbs'],
'style/quote-props': ['error', 'consistent-as-needed'],
'test/no-only-tests': 'error',
diff --git a/package-lock.json b/package-lock.json
index a2201c787..4a59c79e3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "homebridge-config-ui-x",
- "version": "5.0.0",
+ "version": "5.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "homebridge-config-ui-x",
- "version": "5.0.0",
+ "version": "5.1.0",
"funding": [
{
"type": "github",
@@ -24,15 +24,15 @@
"@fastify/static": "8.2.0",
"@homebridge/hap-client": "3.1.0",
"@homebridge/node-pty-prebuilt-multiarch": "0.13.1",
- "@nestjs/axios": "4.0.0",
- "@nestjs/common": "11.1.3",
- "@nestjs/core": "11.1.3",
+ "@nestjs/axios": "4.0.1",
+ "@nestjs/common": "11.1.4",
+ "@nestjs/core": "11.1.4",
"@nestjs/jwt": "11.0.0",
"@nestjs/passport": "11.0.5",
- "@nestjs/platform-fastify": "11.1.3",
- "@nestjs/platform-socket.io": "11.1.3",
+ "@nestjs/platform-fastify": "11.1.4",
+ "@nestjs/platform-socket.io": "11.1.4",
"@nestjs/swagger": "11.2.0",
- "@nestjs/websockets": "11.1.3",
+ "@nestjs/websockets": "11.1.4",
"axios": "1.10.0",
"bash-color": "0.0.4",
"class-transformer": "0.5.1",
@@ -45,9 +45,9 @@
"lodash": "4.17.21",
"node-cache": "5.1.2",
"node-schedule": "2.1.1",
- "ora": "5.4.1",
+ "ora": "8.2.0",
"otplib": "12.0.1",
- "p-limit": "3.1.0",
+ "p-limit": "6.2.0",
"passport": "0.7.0",
"passport-jwt": "4.0.1",
"reflect-metadata": "0.2.2",
@@ -60,16 +60,15 @@
"unzipper": "0.12.3"
},
"bin": {
- "hb-service": "dist/bin/hb-service.js",
- "homebridge-config-ui-x": "dist/bin/standalone.js"
+ "hb-service": "dist/bin/hb-service.js"
},
"devDependencies": {
- "@antfu/eslint-config": "^4.16.2",
- "@nestjs/testing": "^11.1.3",
+ "@antfu/eslint-config": "^4.17.0",
+ "@nestjs/testing": "^11.1.4",
"@prettier/plugin-xml": "^3.4.2",
"@types/fs-extra": "^11.0.4",
"@types/lodash": "^4.17.20",
- "@types/node": "^24.0.13",
+ "@types/node": "^24.0.14",
"@types/node-schedule": "^2.1.8",
"@types/passport-jwt": "^4.0.1",
"@types/semver": "^7.7.0",
@@ -79,7 +78,7 @@
"@vitest/coverage-v8": "^3.2.4",
"concurrently": "^9.2.0",
"eslint-plugin-format": "^1.0.1",
- "form-data": "^4.0.3",
+ "form-data": "^4.0.4",
"nodemon": "^3.1.10",
"rimraf": "^6.0.1",
"ts-loader": "^9.5.2",
@@ -109,19 +108,19 @@
}
},
"node_modules/@antfu/eslint-config": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-4.16.2.tgz",
- "integrity": "sha512-5KHZR+7ne+HZnOJUKeTTdHKYA/yOygPssaJ7TZOMoBqjSMtVAa7FO5Wvu2dEtkibM6v3emYyKnQnia1S8NHQeA==",
+ "version": "4.17.0",
+ "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-4.17.0.tgz",
+ "integrity": "sha512-S1y0A1+0DcpV6GmjwB9gQCQc7ni9zlKa3MQRqRCEZ0E1WW+nRL1BUwnbk3DpMJAMsb3UIAt1lsAiIBnvIw2NDw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@antfu/install-pkg": "^1.1.0",
"@clack/prompts": "^0.11.0",
"@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
- "@eslint/markdown": "^6.6.0",
+ "@eslint/markdown": "^7.0.0",
"@stylistic/eslint-plugin": "^5.1.0",
- "@typescript-eslint/eslint-plugin": "^8.35.1",
- "@typescript-eslint/parser": "^8.35.1",
+ "@typescript-eslint/eslint-plugin": "^8.37.0",
+ "@typescript-eslint/parser": "^8.37.0",
"@vitest/eslint-plugin": "^1.3.4",
"ansis": "^4.1.0",
"cac": "^6.7.14",
@@ -131,17 +130,17 @@
"eslint-plugin-antfu": "^3.1.1",
"eslint-plugin-command": "^3.3.1",
"eslint-plugin-import-lite": "^0.3.0",
- "eslint-plugin-jsdoc": "^51.3.2",
+ "eslint-plugin-jsdoc": "^51.3.4",
"eslint-plugin-jsonc": "^2.20.1",
- "eslint-plugin-n": "^17.20.0",
+ "eslint-plugin-n": "^17.21.0",
"eslint-plugin-no-only-tests": "^3.3.0",
"eslint-plugin-perfectionist": "^4.15.0",
- "eslint-plugin-pnpm": "^0.3.1",
+ "eslint-plugin-pnpm": "^1.0.0",
"eslint-plugin-regexp": "^2.9.0",
"eslint-plugin-toml": "^0.12.0",
"eslint-plugin-unicorn": "^59.0.1",
"eslint-plugin-unused-imports": "^4.1.4",
- "eslint-plugin-vue": "^10.2.0",
+ "eslint-plugin-vue": "^10.3.0",
"eslint-plugin-yml": "^1.18.0",
"eslint-processor-vue-blocks": "^2.0.0",
"globals": "^16.3.0",
@@ -1047,9 +1046,9 @@
}
},
"node_modules/@eslint/markdown": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-6.6.0.tgz",
- "integrity": "sha512-IsWPy2jU3gaQDlioDC4sT4I4kG1hX1OMWs/q2sWwJrPoMASHW/Z4SDw+6Aql6EsHejGbagYuJbFq9Zvx+Y1b1Q==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-7.0.0.tgz",
+ "integrity": "sha512-0WNH6pSFHNlWSlNaIFQP0sLHpMUJw1FaJtyqapvGqOt0ISRgTUkTLVT0hT/zekDA1QlP2TT8pwjPkqYTu2s8yg==",
"dev": true,
"license": "MIT",
"workspaces": [
@@ -1650,9 +1649,9 @@
"license": "MIT"
},
"node_modules/@nestjs/axios": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-4.0.0.tgz",
- "integrity": "sha512-1cB+Jyltu/uUPNQrpUimRHEQHrnQrpLzVj6dU3dgn6iDDDdahr10TgHFGTmw5VuJ9GzKZsCLDL78VSwJAs/9JQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-4.0.1.tgz",
+ "integrity": "sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A==",
"license": "MIT",
"peerDependencies": {
"@nestjs/common": "^10.0.0 || ^11.0.0",
@@ -1661,9 +1660,9 @@
}
},
"node_modules/@nestjs/common": {
- "version": "11.1.3",
- "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.3.tgz",
- "integrity": "sha512-ogEK+GriWodIwCw6buQ1rpcH4Kx+G7YQ9EwuPySI3rS05pSdtQ++UhucjusSI9apNidv+QURBztJkRecwwJQXg==",
+ "version": "11.1.4",
+ "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.4.tgz",
+ "integrity": "sha512-W6+CNJtRJhFpat5Uz/UfEe8IHAhUgYvsq6QE0BeJGw+ntwOS2PVyQx5rzKwwwxDyYE11lEqUmleSVtDE8koElw==",
"license": "MIT",
"dependencies": {
"file-type": "21.0.0",
@@ -1692,9 +1691,9 @@
}
},
"node_modules/@nestjs/core": {
- "version": "11.1.3",
- "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.3.tgz",
- "integrity": "sha512-5lTni0TCh8x7bXETRD57pQFnKnEg1T6M+VLE7wAmyQRIecKQU+2inRGZD+A4v2DC1I04eA0WffP0GKLxjOKlzw==",
+ "version": "11.1.4",
+ "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.4.tgz",
+ "integrity": "sha512-pTLjlfLCSgEvCm8iOONLtHN9uw4XyMEI4yec6+jdw6/7QuOHoqEPAVvdUlNwW1OfFjrAdZmZlpf6Uw8pWBfQlQ==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
@@ -1776,16 +1775,16 @@
}
},
"node_modules/@nestjs/platform-fastify": {
- "version": "11.1.3",
- "resolved": "https://registry.npmjs.org/@nestjs/platform-fastify/-/platform-fastify-11.1.3.tgz",
- "integrity": "sha512-SMIjGV6eAxQv6+/2OumIdNivVLebql6THWjXv8Uh4dR1CI6ipp3gMbpoiYbHP7AGXv8pzuGmpakli86VP9P8NQ==",
+ "version": "11.1.4",
+ "resolved": "https://registry.npmjs.org/@nestjs/platform-fastify/-/platform-fastify-11.1.4.tgz",
+ "integrity": "sha512-hY0R+JbC0vk7ByFgit1KlPRngtUs2v4CwBu2USjmtTnxyWisGdEIOBek7My0vkCKZmrRllLKlSg1cAqs3Qbhww==",
"license": "MIT",
"dependencies": {
"@fastify/cors": "11.0.1",
"@fastify/formbody": "8.0.2",
"@fastify/middie": "9.0.3",
"fast-querystring": "1.1.2",
- "fastify": "5.3.3",
+ "fastify": "5.4.0",
"light-my-request": "6.6.0",
"path-to-regexp": "8.2.0",
"tslib": "2.8.1"
@@ -1810,9 +1809,9 @@
}
},
"node_modules/@nestjs/platform-socket.io": {
- "version": "11.1.3",
- "resolved": "https://registry.npmjs.org/@nestjs/platform-socket.io/-/platform-socket.io-11.1.3.tgz",
- "integrity": "sha512-jQ+ccprmh3kKolBp+bb97zoaS3vKaiyeNqyctGqV4CSG8P6mXSaaUObWxAsw6Jdgn5YQAVEBWJ6FhvF4s6QZbg==",
+ "version": "11.1.4",
+ "resolved": "https://registry.npmjs.org/@nestjs/platform-socket.io/-/platform-socket.io-11.1.4.tgz",
+ "integrity": "sha512-1BSDCc3aUG2JPjS5DIK4MVbtC9tBV4YYi99WYIAup6oB9p1ys0MIxE2n5end3iP+wt1Z942Kh28HzjX7aEG0hA==",
"license": "MIT",
"dependencies": {
"socket.io": "4.8.1",
@@ -1862,9 +1861,9 @@
}
},
"node_modules/@nestjs/testing": {
- "version": "11.1.3",
- "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-11.1.3.tgz",
- "integrity": "sha512-CeXG6/eEqgFIkPkmU00y18Dd3DLOIDFhPItzJK1SWckKo6IhcnfoRJzGx75bmuvUMjb51j6An96S/+MJ2ty9jA==",
+ "version": "11.1.4",
+ "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-11.1.4.tgz",
+ "integrity": "sha512-poSHg5I2f+Pk7P3JsE0E0ovEOPsYdk7gHy5Z5Oeeka/02rlWn275YZlAfqR81JJQccOVZy6+IBsfnImavFbl7w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1890,9 +1889,9 @@
}
},
"node_modules/@nestjs/websockets": {
- "version": "11.1.3",
- "resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-11.1.3.tgz",
- "integrity": "sha512-IjhWKfRf0D247JxYIEs8USblJJbcxUsKJpzbCPaZ7TrVy4LrpG3IRQDlSTOw599TRIYP5ixyH9C0+v5DyaI9uA==",
+ "version": "11.1.4",
+ "resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-11.1.4.tgz",
+ "integrity": "sha512-TUnEtOrhzKtjlgeezYzKohN/T/ZKEzANOeSkU1YWlamOv+vXVcsZuW7BjGdaBzvH3Jt3SmhDOyUvGv5NvmV/RQ==",
"license": "MIT",
"dependencies": {
"iterare": "1.2.1",
@@ -2074,9 +2073,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz",
- "integrity": "sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz",
+ "integrity": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==",
"cpu": [
"arm"
],
@@ -2088,9 +2087,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz",
- "integrity": "sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.1.tgz",
+ "integrity": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==",
"cpu": [
"arm64"
],
@@ -2102,9 +2101,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz",
- "integrity": "sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.1.tgz",
+ "integrity": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==",
"cpu": [
"arm64"
],
@@ -2116,9 +2115,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz",
- "integrity": "sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.1.tgz",
+ "integrity": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==",
"cpu": [
"x64"
],
@@ -2130,9 +2129,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz",
- "integrity": "sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.1.tgz",
+ "integrity": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==",
"cpu": [
"arm64"
],
@@ -2144,9 +2143,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz",
- "integrity": "sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.1.tgz",
+ "integrity": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==",
"cpu": [
"x64"
],
@@ -2158,9 +2157,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz",
- "integrity": "sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.1.tgz",
+ "integrity": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==",
"cpu": [
"arm"
],
@@ -2172,9 +2171,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz",
- "integrity": "sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.1.tgz",
+ "integrity": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==",
"cpu": [
"arm"
],
@@ -2186,9 +2185,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz",
- "integrity": "sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.1.tgz",
+ "integrity": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==",
"cpu": [
"arm64"
],
@@ -2200,9 +2199,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz",
- "integrity": "sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.1.tgz",
+ "integrity": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==",
"cpu": [
"arm64"
],
@@ -2214,9 +2213,9 @@
]
},
"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz",
- "integrity": "sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.1.tgz",
+ "integrity": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==",
"cpu": [
"loong64"
],
@@ -2228,9 +2227,9 @@
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz",
- "integrity": "sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.1.tgz",
+ "integrity": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==",
"cpu": [
"ppc64"
],
@@ -2242,9 +2241,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz",
- "integrity": "sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.1.tgz",
+ "integrity": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==",
"cpu": [
"riscv64"
],
@@ -2256,9 +2255,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz",
- "integrity": "sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.1.tgz",
+ "integrity": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==",
"cpu": [
"riscv64"
],
@@ -2270,9 +2269,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz",
- "integrity": "sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.1.tgz",
+ "integrity": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==",
"cpu": [
"s390x"
],
@@ -2284,9 +2283,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz",
- "integrity": "sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.1.tgz",
+ "integrity": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==",
"cpu": [
"x64"
],
@@ -2298,9 +2297,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz",
- "integrity": "sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.1.tgz",
+ "integrity": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==",
"cpu": [
"x64"
],
@@ -2312,9 +2311,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz",
- "integrity": "sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.1.tgz",
+ "integrity": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==",
"cpu": [
"arm64"
],
@@ -2326,9 +2325,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz",
- "integrity": "sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.1.tgz",
+ "integrity": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==",
"cpu": [
"ia32"
],
@@ -2340,9 +2339,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz",
- "integrity": "sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.1.tgz",
+ "integrity": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==",
"cpu": [
"x64"
],
@@ -2367,18 +2366,18 @@
"license": "MIT"
},
"node_modules/@stylistic/eslint-plugin": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.1.0.tgz",
- "integrity": "sha512-TJRJul4u/lmry5N/kyCU+7RWWOk0wyXN+BncRlDYBqpLFnzXkd7QGVfN7KewarFIXv0IX0jSF/Ksu7aHWEDeuw==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.2.0.tgz",
+ "integrity": "sha512-RCEdbREv9EBiToUBQTlRhVYKG093I6ZnnQ990j08eJ6uRZh71DXkOnoxtTLfDQ6utVCVQzrhZFHZP0zfrfOIjA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/types": "^8.34.1",
+ "@typescript-eslint/types": "^8.37.0",
"eslint-visitor-keys": "^4.2.1",
"espree": "^10.4.0",
"estraverse": "^5.3.0",
- "picomatch": "^4.0.2"
+ "picomatch": "^4.0.3"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2388,9 +2387,9 @@
}
},
"node_modules/@swc/core": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.12.11.tgz",
- "integrity": "sha512-P3GM+0lqjFctcp5HhR9mOcvLSX3SptI9L1aux0Fuvgt8oH4f92rCUrkodAa0U2ktmdjcyIiG37xg2mb/dSCYSA==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.12.14.tgz",
+ "integrity": "sha512-CJSn2vstd17ddWIHBsjuD4OQnn9krQfaq6EO+w9YfId5DKznyPmzxAARlOXG99cC8/3Kli8ysKy6phL43bSr0w==",
"dev": true,
"hasInstallScript": true,
"license": "Apache-2.0",
@@ -2407,16 +2406,16 @@
"url": "https://opencollective.com/swc"
},
"optionalDependencies": {
- "@swc/core-darwin-arm64": "1.12.11",
- "@swc/core-darwin-x64": "1.12.11",
- "@swc/core-linux-arm-gnueabihf": "1.12.11",
- "@swc/core-linux-arm64-gnu": "1.12.11",
- "@swc/core-linux-arm64-musl": "1.12.11",
- "@swc/core-linux-x64-gnu": "1.12.11",
- "@swc/core-linux-x64-musl": "1.12.11",
- "@swc/core-win32-arm64-msvc": "1.12.11",
- "@swc/core-win32-ia32-msvc": "1.12.11",
- "@swc/core-win32-x64-msvc": "1.12.11"
+ "@swc/core-darwin-arm64": "1.12.14",
+ "@swc/core-darwin-x64": "1.12.14",
+ "@swc/core-linux-arm-gnueabihf": "1.12.14",
+ "@swc/core-linux-arm64-gnu": "1.12.14",
+ "@swc/core-linux-arm64-musl": "1.12.14",
+ "@swc/core-linux-x64-gnu": "1.12.14",
+ "@swc/core-linux-x64-musl": "1.12.14",
+ "@swc/core-win32-arm64-msvc": "1.12.14",
+ "@swc/core-win32-ia32-msvc": "1.12.14",
+ "@swc/core-win32-x64-msvc": "1.12.14"
},
"peerDependencies": {
"@swc/helpers": ">=0.5.17"
@@ -2428,9 +2427,9 @@
}
},
"node_modules/@swc/core-darwin-arm64": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.12.11.tgz",
- "integrity": "sha512-J19Jj9Y5x/N0loExH7W0OI9OwwoVyxutDdkyq1o/kgXyBqmmzV7Y/Q9QekI2Fm/qc5mNeAdP7aj4boY4AY/JPw==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.12.14.tgz",
+ "integrity": "sha512-HNukQoOKgMsHSETj8vgGGKK3SEcH7Cz6k4bpntCxBKNkO3sH7RcBTDulWGGHJfZaDNix7Rw2ExUVWtLZlzkzXg==",
"cpu": [
"arm64"
],
@@ -2446,9 +2445,9 @@
}
},
"node_modules/@swc/core-darwin-x64": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.12.11.tgz",
- "integrity": "sha512-PTuUQrfStQ6cjW+uprGO2lpQHy84/l0v+GqRqq8s/jdK55rFRjMfCeyf6FAR0l6saO5oNOQl+zWR1aNpj8pMQw==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.12.14.tgz",
+ "integrity": "sha512-4Ttf3Obtk3MvFrR0e04qr6HfXh4L1Z+K3dRej63TAFuYpo+cPXeOZdPUddAW73lSUGkj+61IHnGPoXD3OQYy4Q==",
"cpu": [
"x64"
],
@@ -2464,9 +2463,9 @@
}
},
"node_modules/@swc/core-linux-arm-gnueabihf": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.12.11.tgz",
- "integrity": "sha512-poxBq152HsupOtnZilenvHmxZ9a8SRj4LtfxUnkMDNOGrZR9oxbQNwEzNKfi3RXEcXz+P8c0Rai1ubBazXv8oQ==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.12.14.tgz",
+ "integrity": "sha512-zhJOH2KWjtQpzJ27Xjw/RKLVOa1aiEJC2b70xbCwEX6ZTVAl8tKbhkZ3GMphhfVmLJ9gf/2UQR58oxVnsXqX5Q==",
"cpu": [
"arm"
],
@@ -2482,9 +2481,9 @@
}
},
"node_modules/@swc/core-linux-arm64-gnu": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.12.11.tgz",
- "integrity": "sha512-y1HNamR/D0Hc8xIE910ysyLe269UYiGaQPoLjQS0phzWFfWdMj9bHM++oydVXZ4RSWycO7KyJ3uvw4NilvyMKQ==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.12.14.tgz",
+ "integrity": "sha512-akUAe1YrBqZf1EDdUxahQ8QZnJi8Ts6Ya0jf6GBIMvnXL4Y6QIuvKTRwfNxy7rJ+x9zpzP1Vlh14ZZkSKZ1EGA==",
"cpu": [
"arm64"
],
@@ -2500,9 +2499,9 @@
}
},
"node_modules/@swc/core-linux-arm64-musl": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.12.11.tgz",
- "integrity": "sha512-LlBxPh/32pyQsu2emMEOFRm7poEFLsw12Y1mPY7FWZiZeptomKSOSHRzKDz9EolMiV4qhK1caP1lvW4vminYgQ==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.12.14.tgz",
+ "integrity": "sha512-ZkOOIpSMXuPAjfOXEIAEQcrPOgLi6CaXvA5W+GYnpIpFG21Nd0qb0WbwFRv4K8BRtl993Q21v0gPpOaFHU+wdA==",
"cpu": [
"arm64"
],
@@ -2518,9 +2517,9 @@
}
},
"node_modules/@swc/core-linux-x64-gnu": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.12.11.tgz",
- "integrity": "sha512-bOjiZB8O/1AzHkzjge1jqX62HGRIpOHqFUrGPfAln/NC6NR+Z2A78u3ixV7k5KesWZFhCV0YVGJL+qToL27myA==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.12.14.tgz",
+ "integrity": "sha512-71EPPccwJiJUxd2aMwNlTfom2mqWEWYGdbeTju01tzSHsEuD7E6ePlgC3P3ngBqB3urj41qKs87z7zPOswT5Iw==",
"cpu": [
"x64"
],
@@ -2536,9 +2535,9 @@
}
},
"node_modules/@swc/core-linux-x64-musl": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.12.11.tgz",
- "integrity": "sha512-4dzAtbT/m3/UjF045+33gLiHd8aSXJDoqof7gTtu4q0ZyAf7XJ3HHspz+/AvOJLVo4FHHdFcdXhmo/zi1nFn8A==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.12.14.tgz",
+ "integrity": "sha512-nImF1hZJqKTcl0WWjHqlelOhvuB9rU9kHIw/CmISBUZXogjLIvGyop1TtJNz0ULcz2Oxr3Q2YpwfrzsgvgbGkA==",
"cpu": [
"x64"
],
@@ -2554,9 +2553,9 @@
}
},
"node_modules/@swc/core-win32-arm64-msvc": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.12.11.tgz",
- "integrity": "sha512-h8HiwBZErKvCAmjW92JvQp0iOqm6bncU4ac5jxBGkRApabpUenNJcj3h2g5O6GL5K6T9/WhnXE5gyq/s1fhPQg==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.12.14.tgz",
+ "integrity": "sha512-sABFQFxSuStFoxvEWZUHWYldtB1B4A9eDNFd4Ty50q7cemxp7uoscFoaCqfXSGNBwwBwpS5EiPB6YN4y6hqmLQ==",
"cpu": [
"arm64"
],
@@ -2572,9 +2571,9 @@
}
},
"node_modules/@swc/core-win32-ia32-msvc": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.12.11.tgz",
- "integrity": "sha512-1pwr325mXRNUhxTtXmx1IokV5SiRL+6iDvnt3FRXj+X5UvXXKtg2zeyftk+03u8v8v8WUr5I32hIypVJPTNxNg==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.12.14.tgz",
+ "integrity": "sha512-KBznRB02NASkpepRdWIK4f1AvmaJCDipKWdW1M1xV9QL2tE4aySJFojVuG1+t0tVDkjRfwcZjycQfRoJ4RjD7Q==",
"cpu": [
"ia32"
],
@@ -2590,9 +2589,9 @@
}
},
"node_modules/@swc/core-win32-x64-msvc": {
- "version": "1.12.11",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.12.11.tgz",
- "integrity": "sha512-5gggWo690Gvs7XiPxAmb5tHwzB9RTVXUV7AWoGb6bmyUd1OXYaebQF0HAOtade5jIoNhfQMQJ7QReRgt/d2jAA==",
+ "version": "1.12.14",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.12.14.tgz",
+ "integrity": "sha512-SymoP2CJHzrYaFKjWvuQljcF7BkTpzaS1vpywv7K9EzdTb5N8qPDvNd+PhWUqBz9JHBhbJxpaeTDQBXF/WWPmw==",
"cpu": [
"x64"
],
@@ -2867,9 +2866,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "24.0.13",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.13.tgz",
- "integrity": "sha512-Qm9OYVOFHFYg3wJoTSrz80hoec5Lia/dPp84do3X7dZvLikQvM1YpmvTBEdIr/e+U8HTkFjLHLnl78K/qjf+jQ==",
+ "version": "24.0.14",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.14.tgz",
+ "integrity": "sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==",
"license": "MIT",
"dependencies": {
"undici-types": "~7.8.0"
@@ -2999,17 +2998,17 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.36.0.tgz",
- "integrity": "sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.37.0.tgz",
+ "integrity": "sha512-jsuVWeIkb6ggzB+wPCsR4e6loj+rM72ohW6IBn2C+5NCvfUVY8s33iFPySSVXqtm5Hu29Ne/9bnA0JmyLmgenA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.36.0",
- "@typescript-eslint/type-utils": "8.36.0",
- "@typescript-eslint/utils": "8.36.0",
- "@typescript-eslint/visitor-keys": "8.36.0",
+ "@typescript-eslint/scope-manager": "8.37.0",
+ "@typescript-eslint/type-utils": "8.37.0",
+ "@typescript-eslint/utils": "8.37.0",
+ "@typescript-eslint/visitor-keys": "8.37.0",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -3023,7 +3022,7 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.36.0",
+ "@typescript-eslint/parser": "^8.37.0",
"eslint": "^8.57.0 || ^9.0.0",
"typescript": ">=4.8.4 <5.9.0"
}
@@ -3039,16 +3038,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.36.0.tgz",
- "integrity": "sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.37.0.tgz",
+ "integrity": "sha512-kVIaQE9vrN9RLCQMQ3iyRlVJpTiDUY6woHGb30JDkfJErqrQEmtdWH3gV0PBAfGZgQXoqzXOO0T3K6ioApbbAA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.36.0",
- "@typescript-eslint/types": "8.36.0",
- "@typescript-eslint/typescript-estree": "8.36.0",
- "@typescript-eslint/visitor-keys": "8.36.0",
+ "@typescript-eslint/scope-manager": "8.37.0",
+ "@typescript-eslint/types": "8.37.0",
+ "@typescript-eslint/typescript-estree": "8.37.0",
+ "@typescript-eslint/visitor-keys": "8.37.0",
"debug": "^4.3.4"
},
"engines": {
@@ -3064,14 +3063,14 @@
}
},
"node_modules/@typescript-eslint/project-service": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.36.0.tgz",
- "integrity": "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.37.0.tgz",
+ "integrity": "sha512-BIUXYsbkl5A1aJDdYJCBAo8rCEbAvdquQ8AnLb6z5Lp1u3x5PNgSSx9A/zqYc++Xnr/0DVpls8iQ2cJs/izTXA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.36.0",
- "@typescript-eslint/types": "^8.36.0",
+ "@typescript-eslint/tsconfig-utils": "^8.37.0",
+ "@typescript-eslint/types": "^8.37.0",
"debug": "^4.3.4"
},
"engines": {
@@ -3086,14 +3085,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.36.0.tgz",
- "integrity": "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.37.0.tgz",
+ "integrity": "sha512-0vGq0yiU1gbjKob2q691ybTg9JX6ShiVXAAfm2jGf3q0hdP6/BruaFjL/ManAR/lj05AvYCH+5bbVo0VtzmjOA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.36.0",
- "@typescript-eslint/visitor-keys": "8.36.0"
+ "@typescript-eslint/types": "8.37.0",
+ "@typescript-eslint/visitor-keys": "8.37.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3104,9 +3103,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.36.0.tgz",
- "integrity": "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.37.0.tgz",
+ "integrity": "sha512-1/YHvAVTimMM9mmlPvTec9NP4bobA1RkDbMydxG8omqwJJLEW/Iy2C4adsAESIXU3WGLXFHSZUU+C9EoFWl4Zg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3121,14 +3120,15 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.36.0.tgz",
- "integrity": "sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.37.0.tgz",
+ "integrity": "sha512-SPkXWIkVZxhgwSwVq9rqj/4VFo7MnWwVaRNznfQDc/xPYHjXnPfLWn+4L6FF1cAz6e7dsqBeMawgl7QjUMj4Ow==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.36.0",
- "@typescript-eslint/utils": "8.36.0",
+ "@typescript-eslint/types": "8.37.0",
+ "@typescript-eslint/typescript-estree": "8.37.0",
+ "@typescript-eslint/utils": "8.37.0",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
},
@@ -3145,9 +3145,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz",
- "integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.37.0.tgz",
+ "integrity": "sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3159,16 +3159,16 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.36.0.tgz",
- "integrity": "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.37.0.tgz",
+ "integrity": "sha512-zuWDMDuzMRbQOM+bHyU4/slw27bAUEcKSKKs3hcv2aNnc/tvE/h7w60dwVw8vnal2Pub6RT1T7BI8tFZ1fE+yg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.36.0",
- "@typescript-eslint/tsconfig-utils": "8.36.0",
- "@typescript-eslint/types": "8.36.0",
- "@typescript-eslint/visitor-keys": "8.36.0",
+ "@typescript-eslint/project-service": "8.37.0",
+ "@typescript-eslint/tsconfig-utils": "8.37.0",
+ "@typescript-eslint/types": "8.37.0",
+ "@typescript-eslint/visitor-keys": "8.37.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -3188,16 +3188,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.36.0.tgz",
- "integrity": "sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.37.0.tgz",
+ "integrity": "sha512-TSFvkIW6gGjN2p6zbXo20FzCABbyUAuq6tBvNRGsKdsSQ6a7rnV6ADfZ7f4iI3lIiXc4F4WWvtUfDw9CJ9pO5A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.36.0",
- "@typescript-eslint/types": "8.36.0",
- "@typescript-eslint/typescript-estree": "8.36.0"
+ "@typescript-eslint/scope-manager": "8.37.0",
+ "@typescript-eslint/types": "8.37.0",
+ "@typescript-eslint/typescript-estree": "8.37.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3212,13 +3212,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.36.0.tgz",
- "integrity": "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.37.0.tgz",
+ "integrity": "sha512-YzfhzcTnZVPiLfP/oeKtDp2evwvHLMe0LOy7oe+hb9KKIumLNohYS9Hgp1ifwpu42YWxhZE8yieggz6JpqO/1w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.36.0",
+ "@typescript-eslint/types": "8.37.0",
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
@@ -3712,9 +3712,9 @@
}
},
"node_modules/acorn-import-phases": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.3.tgz",
- "integrity": "sha512-jtKLnfoOzm28PazuQ4dVBcE9Jeo6ha1GAJvq3N0LlNOszmTfx+wSycBehn+FN0RnyeR77IBxN/qVYMw0Rlj0Xw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
+ "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -4241,6 +4241,7 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -4257,6 +4258,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -4411,15 +4413,18 @@
}
},
"node_modules/cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
+ "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
"license": "MIT",
"dependencies": {
- "restore-cursor": "^3.1.0"
+ "restore-cursor": "^5.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cli-spinners": {
@@ -4808,27 +4813,6 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"license": "MIT"
},
- "node_modules/defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "license": "MIT",
- "dependencies": {
- "clone": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/defaults/node_modules/clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.8"
- }
- },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -4970,9 +4954,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.182",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.182.tgz",
- "integrity": "sha512-Lv65Btwv9W4J9pyODI6EWpdnhfvrve/us5h1WspW8B2Fb0366REPtY3hX7ounk1CkV/TBjWCEvCBBbYbmV0qCA==",
+ "version": "1.5.186",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.186.tgz",
+ "integrity": "sha512-lur7L4BFklgepaJxj4DqPk7vKbTEl0pajNlg2QjE5shefmlmBLm2HvQ7PMf1R/GvlevT/581cop33/quQcfX3A==",
"dev": true,
"license": "ISC"
},
@@ -5475,9 +5459,9 @@
}
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "51.3.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-51.3.4.tgz",
- "integrity": "sha512-maz6qa95+sAjMr9m5oRyfejc+mnyQWsWSe9oyv9371bh4/T0kWOMryJNO4h8rEd97wo/9lbzwi3OOX4rDhnAzg==",
+ "version": "51.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-51.4.1.tgz",
+ "integrity": "sha512-y4CA9OkachG8v5nAtrwvcvjIbdcKgSyS6U//IfQr4FZFFyeBFwZFf/tfSsMr46mWDJgidZjBTqoCRlXywfFBMg==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -5640,9 +5624,9 @@
}
},
"node_modules/eslint-plugin-pnpm": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-pnpm/-/eslint-plugin-pnpm-0.3.1.tgz",
- "integrity": "sha512-vi5iHoELIAlBbX4AW8ZGzU3tUnfxuXhC/NKo3qRcI5o9igbz6zJUqSlQ03bPeMqWIGTPatZnbWsNR1RnlNERNQ==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-pnpm/-/eslint-plugin-pnpm-1.0.0.tgz",
+ "integrity": "sha512-tyEA10k7psB9HFCx8R4/bU4JS2tSKfXaCnrCcis+1R4FucfMIc6HgcFl4msZbwY2I0D9Vec3xAEkXV0aPechhQ==",
"dev": true,
"funding": [
{
@@ -5659,8 +5643,8 @@
"find-up-simple": "^1.0.1",
"jsonc-eslint-parser": "^2.4.0",
"pathe": "^2.0.3",
- "pnpm-workspace-yaml": "0.3.1",
- "tinyglobby": "^0.2.12",
+ "pnpm-workspace-yaml": "1.0.0",
+ "tinyglobby": "^0.2.14",
"yaml-eslint-parser": "^1.3.0"
},
"peerDependencies": {
@@ -6433,9 +6417,9 @@
}
},
"node_modules/form-data": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz",
- "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
@@ -6511,6 +6495,18 @@
"node": "6.* || 8.* || >= 10.*"
}
},
+ "node_modules/get-east-asian-width": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz",
+ "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
@@ -6676,6 +6672,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -6932,12 +6929,15 @@
}
},
"node_modules/is-interactive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz",
+ "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==",
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-number": {
@@ -6951,12 +6951,12 @@
}
},
"node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "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"
@@ -7338,9 +7338,9 @@
}
},
"node_modules/libphonenumber-js": {
- "version": "1.12.9",
- "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.9.tgz",
- "integrity": "sha512-VWwAdNeJgN7jFOD+wN4qx83DTPMVPPAUyx9/TUkBXKLiNkuWWk6anV0439tgdtwaJDrEdqkvdN22iA6J4bUCZg==",
+ "version": "1.12.10",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.10.tgz",
+ "integrity": "sha512-E91vHJD61jekHHR/RF/E83T/CMoaLXT7cwYA75T4gim4FZjnM6hbJjVIGg7chqlSqRsSvQ3izGmOjHy1SQzcGQ==",
"license": "MIT"
},
"node_modules/light-my-request": {
@@ -7512,16 +7512,40 @@
"license": "MIT"
},
"node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz",
+ "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==",
"license": "MIT",
"dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
+ "chalk": "^5.3.0",
+ "is-unicode-supported": "^1.3.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-symbols/node_modules/chalk": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
+ "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/log-symbols/node_modules/is-unicode-supported": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
+ "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -8565,13 +8589,16 @@
"node": ">= 0.6"
}
},
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "node_modules/mimic-function": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
+ "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
"license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/mimic-response": {
@@ -8966,15 +8993,15 @@
}
},
"node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz",
+ "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
"license": "MIT",
"dependencies": {
- "mimic-fn": "^2.1.0"
+ "mimic-function": "^5.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -9000,47 +9027,61 @@
}
},
"node_modules/ora": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
- "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz",
+ "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==",
"license": "MIT",
"dependencies": {
- "bl": "^4.1.0",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-spinners": "^2.5.0",
- "is-interactive": "^1.0.0",
- "is-unicode-supported": "^0.1.0",
- "log-symbols": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "wcwidth": "^1.0.1"
+ "chalk": "^5.3.0",
+ "cli-cursor": "^5.0.0",
+ "cli-spinners": "^2.9.2",
+ "is-interactive": "^2.0.0",
+ "is-unicode-supported": "^2.0.0",
+ "log-symbols": "^6.0.0",
+ "stdin-discarder": "^0.2.2",
+ "string-width": "^7.2.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ora/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "node_modules/ora/node_modules/chalk": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
+ "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/ora/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/ora/node_modules/emoji-regex": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
+ "license": "MIT"
+ },
+ "node_modules/ora/node_modules/string-width": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"license": "MIT",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/otplib": {
@@ -9055,15 +9096,15 @@
}
},
"node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz",
+ "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==",
"license": "MIT",
"dependencies": {
- "yocto-queue": "^0.1.0"
+ "yocto-queue": "^1.1.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -9086,6 +9127,37 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/p-locate/node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate/node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/package-json-from-dist": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
@@ -9251,9 +9323,9 @@
"license": "ISC"
},
"node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9323,9 +9395,9 @@
}
},
"node_modules/pnpm-workspace-yaml": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/pnpm-workspace-yaml/-/pnpm-workspace-yaml-0.3.1.tgz",
- "integrity": "sha512-3nW5RLmREmZ8Pm8MbPsO2RM+99RRjYd25ynj3NV0cFsN7CcEl4sDFzgoFmSyduFwxFQ2Qbu3y2UdCh6HlyUOeA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pnpm-workspace-yaml/-/pnpm-workspace-yaml-1.0.0.tgz",
+ "integrity": "sha512-2RKg3khFgX/oeKIQnxxlj+OUoKbaZjBt7EsmQiLfl8AHZKMIpLmXLRPptZ5eq2Rlumh2gILs6OWNky5dzP+f8A==",
"dev": true,
"funding": [
{
@@ -9339,7 +9411,7 @@
],
"license": "MIT",
"dependencies": {
- "yaml": "^2.7.0"
+ "yaml": "^2.8.0"
}
},
"node_modules/postcss": {
@@ -9751,24 +9823,21 @@
}
},
"node_modules/restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
+ "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
"license": "MIT",
"dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
+ "onetime": "^7.0.0",
+ "signal-exit": "^4.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/restore-cursor/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "license": "ISC"
- },
"node_modules/ret": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.5.0.tgz",
@@ -9815,9 +9884,9 @@
}
},
"node_modules/rollup": {
- "version": "4.45.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz",
- "integrity": "sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==",
+ "version": "4.45.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.1.tgz",
+ "integrity": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9831,26 +9900,26 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.45.0",
- "@rollup/rollup-android-arm64": "4.45.0",
- "@rollup/rollup-darwin-arm64": "4.45.0",
- "@rollup/rollup-darwin-x64": "4.45.0",
- "@rollup/rollup-freebsd-arm64": "4.45.0",
- "@rollup/rollup-freebsd-x64": "4.45.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.45.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.45.0",
- "@rollup/rollup-linux-arm64-gnu": "4.45.0",
- "@rollup/rollup-linux-arm64-musl": "4.45.0",
- "@rollup/rollup-linux-loongarch64-gnu": "4.45.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.45.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.45.0",
- "@rollup/rollup-linux-riscv64-musl": "4.45.0",
- "@rollup/rollup-linux-s390x-gnu": "4.45.0",
- "@rollup/rollup-linux-x64-gnu": "4.45.0",
- "@rollup/rollup-linux-x64-musl": "4.45.0",
- "@rollup/rollup-win32-arm64-msvc": "4.45.0",
- "@rollup/rollup-win32-ia32-msvc": "4.45.0",
- "@rollup/rollup-win32-x64-msvc": "4.45.0",
+ "@rollup/rollup-android-arm-eabi": "4.45.1",
+ "@rollup/rollup-android-arm64": "4.45.1",
+ "@rollup/rollup-darwin-arm64": "4.45.1",
+ "@rollup/rollup-darwin-x64": "4.45.1",
+ "@rollup/rollup-freebsd-arm64": "4.45.1",
+ "@rollup/rollup-freebsd-x64": "4.45.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.45.1",
+ "@rollup/rollup-linux-arm-musleabihf": "4.45.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.45.1",
+ "@rollup/rollup-linux-arm64-musl": "4.45.1",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.45.1",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.45.1",
+ "@rollup/rollup-linux-riscv64-musl": "4.45.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.45.1",
+ "@rollup/rollup-linux-x64-gnu": "4.45.1",
+ "@rollup/rollup-linux-x64-musl": "4.45.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.45.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.45.1",
+ "@rollup/rollup-win32-x64-msvc": "4.45.1",
"fsevents": "~2.3.2"
}
},
@@ -10392,6 +10461,18 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/stdin-discarder": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz",
+ "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -10551,9 +10632,9 @@
}
},
"node_modules/strtok3": {
- "version": "10.3.1",
- "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.1.tgz",
- "integrity": "sha512-3JWEZM6mfix/GCJBBUrkA8p2Id2pBkyTkVCJKto55w080QBKZ+8R171fGrbiSp+yMO/u6F8/yUh7K4V9K+YCnw==",
+ "version": "10.3.2",
+ "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.2.tgz",
+ "integrity": "sha512-or9w505RhhY66+uoe5YOC5QO/bRuATaoim3XTh+pGKx5VMWi/HDhMKuCjDLsLJouU2zg9Hf1nLPcNW7IHv80kQ==",
"license": "MIT",
"dependencies": {
"@tokenizer/token": "^0.3.0"
@@ -11467,9 +11548,9 @@
}
},
"node_modules/vite": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz",
- "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz",
+ "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11683,19 +11764,10 @@
"node": ">=10.13.0"
}
},
- "node_modules/wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "license": "MIT",
- "dependencies": {
- "defaults": "^1.0.3"
- }
- },
"node_modules/webpack": {
- "version": "5.100.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.100.1.tgz",
- "integrity": "sha512-YJB/ESPUe2Locd0NKXmw72Dx8fZQk1gTzI6rc9TAT4+Sypbnhl8jd8RywB1bDsDF9Dy1RUR7gn3q/ZJTd0OZZg==",
+ "version": "5.100.2",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.100.2.tgz",
+ "integrity": "sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -12101,12 +12173,12 @@
}
},
"node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz",
+ "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==",
"license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=12.20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
diff --git a/package.json b/package.json
index 22d811583..437153666 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "homebridge-config-ui-x",
"displayName": "Homebridge UI",
- "version": "5.0.0",
+ "version": "5.1.0",
"description": "A web based management, configuration and control platform for Homebridge.",
"author": "oznu
",
"license": "MIT",
@@ -52,7 +52,6 @@
],
"main": "./dist/index.js",
"bin": {
- "homebridge-config-ui-x": "dist/bin/standalone.js",
"hb-service": "dist/bin/hb-service.js"
},
"engines": {
@@ -84,15 +83,15 @@
"@fastify/static": "8.2.0",
"@homebridge/hap-client": "3.1.0",
"@homebridge/node-pty-prebuilt-multiarch": "0.13.1",
- "@nestjs/axios": "4.0.0",
- "@nestjs/common": "11.1.3",
- "@nestjs/core": "11.1.3",
+ "@nestjs/axios": "4.0.1",
+ "@nestjs/common": "11.1.4",
+ "@nestjs/core": "11.1.4",
"@nestjs/jwt": "11.0.0",
"@nestjs/passport": "11.0.5",
- "@nestjs/platform-fastify": "11.1.3",
- "@nestjs/platform-socket.io": "11.1.3",
+ "@nestjs/platform-fastify": "11.1.4",
+ "@nestjs/platform-socket.io": "11.1.4",
"@nestjs/swagger": "11.2.0",
- "@nestjs/websockets": "11.1.3",
+ "@nestjs/websockets": "11.1.4",
"axios": "1.10.0",
"bash-color": "0.0.4",
"class-transformer": "0.5.1",
@@ -105,9 +104,9 @@
"lodash": "4.17.21",
"node-cache": "5.1.2",
"node-schedule": "2.1.1",
- "ora": "5.4.1",
+ "ora": "8.2.0",
"otplib": "12.0.1",
- "p-limit": "3.1.0",
+ "p-limit": "6.2.0",
"passport": "0.7.0",
"passport-jwt": "4.0.1",
"reflect-metadata": "0.2.2",
@@ -120,12 +119,12 @@
"unzipper": "0.12.3"
},
"devDependencies": {
- "@antfu/eslint-config": "^4.16.2",
- "@nestjs/testing": "^11.1.3",
+ "@antfu/eslint-config": "^4.17.0",
+ "@nestjs/testing": "^11.1.4",
"@prettier/plugin-xml": "^3.4.2",
"@types/fs-extra": "^11.0.4",
"@types/lodash": "^4.17.20",
- "@types/node": "^24.0.13",
+ "@types/node": "^24.0.14",
"@types/node-schedule": "^2.1.8",
"@types/passport-jwt": "^4.0.1",
"@types/semver": "^7.7.0",
@@ -135,7 +134,7 @@
"@vitest/coverage-v8": "^3.2.4",
"concurrently": "^9.2.0",
"eslint-plugin-format": "^1.0.1",
- "form-data": "^4.0.3",
+ "form-data": "^4.0.4",
"nodemon": "^3.1.10",
"rimraf": "^6.0.1",
"ts-loader": "^9.5.2",
@@ -145,11 +144,6 @@
"unplugin-swc": "^1.5.5",
"vitest": "^3.2.4"
},
- "overrides": {
- "@nestjs/platform-fastify": {
- "fastify": "5.4.0"
- }
- },
"maintainers": [
{
"email": "bwp91@icloud.com",
diff --git a/ui/angular.json b/ui/angular.json
index b98f88363..dd245d773 100644
--- a/ui/angular.json
+++ b/ui/angular.json
@@ -34,7 +34,6 @@
"src/scss/styles.scss"
],
"allowedCommonJsDependencies": [
- "@/app/modules/status/status.component",
"@homebridge/hap-client/dist/hap-types",
"ajv",
"ajv-keywords",
diff --git a/ui/package-lock.json b/ui/package-lock.json
index b54d260ff..08d59b25a 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -10,15 +10,15 @@
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "@angular/animations": "20.1.0",
- "@angular/common": "20.1.0",
- "@angular/compiler": "20.1.0",
- "@angular/core": "20.1.0",
- "@angular/forms": "20.1.0",
- "@angular/localize": "20.1.0",
- "@angular/platform-browser": "20.1.0",
- "@angular/platform-browser-dynamic": "20.1.0",
- "@angular/router": "20.1.0",
+ "@angular/animations": "20.1.1",
+ "@angular/common": "20.1.1",
+ "@angular/compiler": "20.1.1",
+ "@angular/core": "20.1.1",
+ "@angular/forms": "20.1.1",
+ "@angular/localize": "20.1.1",
+ "@angular/platform-browser": "20.1.1",
+ "@angular/platform-browser-dynamic": "20.1.1",
+ "@angular/router": "20.1.1",
"@auth0/angular-jwt": "5.2.0",
"@homebridge/hap-client": "3.1.0",
"@ng-bootstrap/ng-bootstrap": "19.0.1",
@@ -55,16 +55,16 @@
"zone.js": "0.15.1"
},
"devDependencies": {
- "@angular/build": "^20.1.0",
- "@angular/cli": "^20.1.0",
- "@angular/compiler-cli": "^20.1.0",
- "@angular/language-service": "^20.1.0",
+ "@angular/build": "^20.1.1",
+ "@angular/cli": "^20.1.1",
+ "@angular/compiler-cli": "^20.1.1",
+ "@angular/language-service": "^20.1.1",
"@fortawesome/fontawesome-free": "^6.7.2",
"@homebridge/plugin-ui-utils": "^2.1.0",
"@types/emoji-js": "^3.5.2",
"@types/file-saver": "^2.0.7",
"@types/lodash-es": "^4.17.12",
- "@types/node": "^24.0.13",
+ "@types/node": "^24.0.14",
"@types/qrcode": "^1.5.5",
"@types/semver": "^7.7.0",
"he": "^1.2.0",
@@ -73,6 +73,199 @@
"typescript": "^5.8.3"
}
},
+ "node_modules/@algolia/client-abtesting": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.32.0.tgz",
+ "integrity": "sha512-HG/6Eib6DnJYm/B2ijWFXr4txca/YOuA4K7AsEU0JBrOZSB+RU7oeDyNBPi3c0v0UDDqlkBqM3vBU/auwZlglA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-analytics": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.32.0.tgz",
+ "integrity": "sha512-8Y9MLU72WFQOW3HArYv16+Wvm6eGmsqbxxM1qxtm0hvSASJbxCm+zQAZe5stqysTlcWo4BJ82KEH1PfgHbJAmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-common": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.32.0.tgz",
+ "integrity": "sha512-w8L+rgyXMCPBKmEdOT+RfgMrF0mT6HK60vPYWLz8DBs/P7yFdGo7urn99XCJvVLMSKXrIbZ2FMZ/i50nZTXnuQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-insights": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.32.0.tgz",
+ "integrity": "sha512-AdWfynhUeX7jz/LTiFU3wwzJembTbdLkQIOLs4n7PyBuxZ3jz4azV1CWbIP8AjUOFmul6uXbmYza+KqyS5CzOA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-personalization": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.32.0.tgz",
+ "integrity": "sha512-bTupJY4xzGZYI4cEQcPlSjjIEzMvv80h7zXGrXY1Y0KC/n/SLiMv84v7Uy+B6AG1Kiy9FQm2ADChBLo1uEhGtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-query-suggestions": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.32.0.tgz",
+ "integrity": "sha512-if+YTJw1G3nDKL2omSBjQltCHUQzbaHADkcPQrGFnIGhVyHU3Dzq4g46uEv8mrL5sxL8FjiS9LvekeUlL2NRqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-search": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.32.0.tgz",
+ "integrity": "sha512-kmK5nVkKb4DSUgwbveMKe4X3xHdMsPsOVJeEzBvFJ+oS7CkBPmpfHAEq+CcmiPJs20YMv6yVtUT9yPWL5WgAhg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/ingestion": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.32.0.tgz",
+ "integrity": "sha512-PZTqjJbx+fmPuT2ud1n4vYDSF1yrT//vOGI9HNYKNA0PM0xGUBWigf5gRivHsXa3oBnUlTyHV9j7Kqx5BHbVHQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/monitoring": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.32.0.tgz",
+ "integrity": "sha512-kYYoOGjvNQAmHDS1v5sBj+0uEL9RzYqH/TAdq8wmcV+/22weKt/fjh+6LfiqkS1SCZFYYrwGnirrUhUM36lBIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/recommend": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.32.0.tgz",
+ "integrity": "sha512-jyIBLdskjPAL7T1g57UMfUNx+PzvYbxKslwRUKBrBA6sNEsYCFdxJAtZSLUMmw6MC98RDt4ksmEl5zVMT5bsuw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/requester-browser-xhr": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.32.0.tgz",
+ "integrity": "sha512-eDp14z92Gt6JlFgiexImcWWH+Lk07s/FtxcoDaGrE4UVBgpwqOO6AfQM6dXh1pvHxlDFbMJihHc/vj3gBhPjqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/requester-fetch": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.32.0.tgz",
+ "integrity": "sha512-rnWVglh/K75hnaLbwSc2t7gCkbq1ldbPgeIKDUiEJxZ4mlguFgcltWjzpDQ/t1LQgxk9HdIFcQfM17Hid3aQ6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/requester-node-http": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.32.0.tgz",
+ "integrity": "sha512-LbzQ04+VLkzXY4LuOzgyjqEv/46Gwrk55PldaglMJ4i4eDXSRXGKkwJpXFwsoU+c1HMQlHIyjJBhrfsfdyRmyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
@@ -87,13 +280,13 @@
}
},
"node_modules/@angular-devkit/architect": {
- "version": "0.2001.0",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2001.0.tgz",
- "integrity": "sha512-IDBG+YP0nPaA/tIjtJ1ZPh0VEfbxSn0yCvbS7dTfqyrnmanPUFpU5qsT9vJTU6yzkuzBEhNFRzkUCQaUAziLRA==",
+ "version": "0.2001.1",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2001.1.tgz",
+ "integrity": "sha512-jU+fvaiS5bjh3znpHLEeKQIYb+ZVKNP0xRu3+E9EmweyG4E8AdvZnLvKTe61Ikhul2zBTFBUv46er7CHjAGEEg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@angular-devkit/core": "20.1.0",
+ "@angular-devkit/core": "20.1.1",
"rxjs": "7.8.2"
},
"engines": {
@@ -103,9 +296,9 @@
}
},
"node_modules/@angular-devkit/core": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.1.0.tgz",
- "integrity": "sha512-i2t22bklvKsqdwmUtjXltRyxmJ+lJW8isrdc7XeN0N6VW/lDHSJqFlucT1+pO9+FxXJQyz3Hc1dpRd6G65mGyw==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.1.1.tgz",
+ "integrity": "sha512-5rKL/WfMhZOi0MyYWXK95kPwxSd7zhZieyo3Idtg0B1VMFP4jIa4jRkV7uz55HRPOl5/kK3aIrsxgtKuxQg50Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -131,13 +324,13 @@
}
},
"node_modules/@angular-devkit/schematics": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.1.0.tgz",
- "integrity": "sha512-0UtJAptrqsfABi0DxrY7cyvlGe5kHRiqVwB+h3g2DEv3ikXKZh1dOFR3o2bK+sVhUqgFaV8qgSnCmR9a48xY0g==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.1.1.tgz",
+ "integrity": "sha512-G87e0u3V9E2iqwoV8nBIuLNtMUAnb/A62LNq9eTJguyVEC0HSRWQnByhUvmv6mlABLa4worZJnE5vMbXW1LeQg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@angular-devkit/core": "20.1.0",
+ "@angular-devkit/core": "20.1.1",
"jsonc-parser": "3.3.1",
"magic-string": "0.30.17",
"ora": "8.2.0",
@@ -150,9 +343,9 @@
}
},
"node_modules/@angular/animations": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.1.0.tgz",
- "integrity": "sha512-5ILngsvu5VPQYaIm7lRyegZaDaAEtLUIPSS8h1dzWPaCxBIJ4uwzx9RDMiF32zhbxi+q0mAO2w2FdDlzWTT3og==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.1.1.tgz",
+ "integrity": "sha512-uM6UQ4AhFMyFm9ZMWV0823ddvhJeTLkJaR6e9Vdm60dlwgxNmkhVPW9rg60vQy6FTVL2YieHIh/V0M1iwKbzxQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -161,19 +354,19 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.1.0",
- "@angular/core": "20.1.0"
+ "@angular/common": "20.1.1",
+ "@angular/core": "20.1.1"
}
},
"node_modules/@angular/build": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/build/-/build-20.1.0.tgz",
- "integrity": "sha512-Sl4rkq5PQIrbVNk8cXx2JQhQ156H4bXLvfAYpgXPHAfSfbIIzaV25LJIfTdWSEjMzBGdIX5E0Vpi0SGwcNS7Uw==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/build/-/build-20.1.1.tgz",
+ "integrity": "sha512-N9tKfHatZEdy/uGX9atJQKVIejAvRbOMwpBj9Z5Y2RtR2vTDOOm0q86OYQW8baK19b2/HkHRe6PSPeiHpTG+8g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@ampproject/remapping": "2.3.0",
- "@angular-devkit/architect": "0.2001.0",
+ "@angular-devkit/architect": "0.2001.1",
"@babel/core": "7.27.7",
"@babel/helper-annotate-as-pure": "7.27.3",
"@babel/helper-split-export-declaration": "7.24.7",
@@ -215,7 +408,7 @@
"@angular/platform-browser": "^20.0.0",
"@angular/platform-server": "^20.0.0",
"@angular/service-worker": "^20.0.0",
- "@angular/ssr": "^20.1.0",
+ "@angular/ssr": "^20.1.1",
"karma": "^6.4.0",
"less": "^4.2.0",
"ng-packagr": "^20.0.0",
@@ -265,13 +458,13 @@
}
},
"node_modules/@angular/cdk": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.1.0.tgz",
- "integrity": "sha512-JhgbSOv7xZqWNZjuCh8A3A7pGv0mhtmGjHo36157LrxRO6R7x2yJJjxC5nQeroKZWhgN+X/jG/EJlzEvl9PxTw==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.1.2.tgz",
+ "integrity": "sha512-mmQdXfC86FMnH6iZvXvEmHunQpp2KULfoMQ1KhIMzVEuAmHRpkct7onjLeGUqZ+VEXchRG7/gYkMKYQxtG8sag==",
"license": "MIT",
"peer": true,
"dependencies": {
- "parse5": "^7.1.2",
+ "parse5": "^8.0.0",
"tslib": "^2.3.0"
},
"peerDependencies": {
@@ -281,20 +474,21 @@
}
},
"node_modules/@angular/cli": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.1.0.tgz",
- "integrity": "sha512-jZudpHlPVAvrywVZuhUkUr5K7ThW/6CPjT7qxZBSdOvu7cD49JPpDivCdlMh0kCBSHsJ0ZbLx35oi6zF8PegiA==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.1.1.tgz",
+ "integrity": "sha512-/lS7haW6YWy+KWkITtmfcKqq9Qsi2PP5mnPnZ2CqPgnYe6PCw+yx57tsU3qHHmYNGWnqHIvZWafBbabie18g8g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@angular-devkit/architect": "0.2001.0",
- "@angular-devkit/core": "20.1.0",
- "@angular-devkit/schematics": "20.1.0",
+ "@angular-devkit/architect": "0.2001.1",
+ "@angular-devkit/core": "20.1.1",
+ "@angular-devkit/schematics": "20.1.1",
"@inquirer/prompts": "7.6.0",
"@listr2/prompt-adapter-inquirer": "2.0.22",
"@modelcontextprotocol/sdk": "1.13.3",
- "@schematics/angular": "20.1.0",
+ "@schematics/angular": "20.1.1",
"@yarnpkg/lockfile": "1.1.0",
+ "algoliasearch": "5.32.0",
"ini": "5.0.0",
"jsonc-parser": "3.3.1",
"listr2": "8.3.3",
@@ -316,9 +510,9 @@
}
},
"node_modules/@angular/common": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.1.0.tgz",
- "integrity": "sha512-RsHClHJux+4lXrHdGHVw22wekRbSjYtx6Xwjox2S+IRPP51CbX0KskAALZ9ZmtCttkYSFVtvr0S+SQrU2cu5WA==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.1.1.tgz",
+ "integrity": "sha512-YBggvWw4IOeCidRs7BU4KbxNfq5P3n2M1WGJ+W8yoP6GA4sd/xMhi9tfIj3M9qQIse0xEDMuKAO8FDJaS1qrfQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -327,14 +521,14 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/core": "20.1.0",
+ "@angular/core": "20.1.1",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/compiler": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.1.0.tgz",
- "integrity": "sha512-sM8H3dJotIDDmI1u8qGuAn16XVfR7A4+/5s5cKLI/osnnIjafi5HHqAf76R5IlGoIv0ZHVQIYaJ/Qdvfyvdhfg==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.1.1.tgz",
+ "integrity": "sha512-w5Uf8gBiD4PWOHWq9c0YeYs5HQaOXqNK9dgKdeY10XNQ2bAzdROLupKjJ7fj5pil3wP/cYdaQh9f4t3URz7I/g==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -344,9 +538,9 @@
}
},
"node_modules/@angular/compiler-cli": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.1.0.tgz",
- "integrity": "sha512-ajbCmvYYFxeXRdKSfdHjp62MZ2lCMUS0UzswBDAbT9sPd/ThppbvLXLsMBj8SlwaXSSBeTAa1oSHEO1MeuVvGQ==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.1.1.tgz",
+ "integrity": "sha512-88W5wzC9Kb8Etos1sZNmiDchxAdQVNwm+4RZl4fQQT+PXO/YdThkUj0IQlkgTMyAONntQcMzU4VeRr9EN5g1kQ==",
"license": "MIT",
"dependencies": {
"@babel/core": "7.28.0",
@@ -366,7 +560,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/compiler": "20.1.0",
+ "@angular/compiler": "20.1.1",
"typescript": ">=5.8 <5.9"
},
"peerDependenciesMeta": {
@@ -421,9 +615,9 @@
}
},
"node_modules/@angular/core": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.1.0.tgz",
- "integrity": "sha512-/dJooZi+OAACkjWgGMPrOOGikdtlTJXwdeXPJTgZSUD5L8oQMbhZFG0XW/1Hldvsti87wPjZPz67ivB7zR86VA==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.1.1.tgz",
+ "integrity": "sha512-7zzULRROtejS7AlLqG7fpzlebLd+FoE1eV3QiVD9GOkg+KzuUUbX7WFWmY8HkvS7ye6mSQEWfv4+yYa3AyA9SA==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -432,7 +626,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/compiler": "20.1.0",
+ "@angular/compiler": "20.1.1",
"rxjs": "^6.5.3 || ^7.4.0",
"zone.js": "~0.15.0"
},
@@ -446,9 +640,9 @@
}
},
"node_modules/@angular/forms": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.1.0.tgz",
- "integrity": "sha512-NgQxowyyG2yiSOXxtQS1xK1vAQT+4GRoMFuzmS3uBshIifgCgFckSxJHQXhlQOInuv2NsZ1Q0HuCvao+yZfIow==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.1.1.tgz",
+ "integrity": "sha512-oIfBbxUxZL4Ilwg/dh5Sv55WP2QugLl1/6oP8PFZWgiAcClLnKYLasLsEhl3YddQZzENAheHntxAWuV0lDkogg==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -457,16 +651,16 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.1.0",
- "@angular/core": "20.1.0",
- "@angular/platform-browser": "20.1.0",
+ "@angular/common": "20.1.1",
+ "@angular/core": "20.1.1",
+ "@angular/platform-browser": "20.1.1",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/language-service": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-20.1.0.tgz",
- "integrity": "sha512-qHZk5LI2uaDRk0QOIdg2AZqyij00XOgZb3yiP7C3fjv3YkyRjXvobTRCLieTq10vdMt9TuCwdOISFK7g1/1eEg==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-20.1.1.tgz",
+ "integrity": "sha512-skWKitO+MjgwEq47lMTHHo+QP1lJnCQT5bLqa4zRA9Td6lVApNwDFtBDLvLdOAFcM0Zuf4pQjc2K6VDa5f7DLg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -474,9 +668,9 @@
}
},
"node_modules/@angular/localize": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-20.1.0.tgz",
- "integrity": "sha512-ZTAxJkLmYxBxeHVSf3VMY1qivlypxGsJy90LRzZl8KeYROt6g8NQ0MXO8M4Y+0+dXUTZDQcYcGq8TFxpMw1fqQ==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-20.1.1.tgz",
+ "integrity": "sha512-ptG+aL4EEQtxqW8i8RN3erjIx/spH83Jsxar8d2kdj0OXxqThZaG55ct+U4YBj42IYej2K++cHttsONzVdvdeQ==",
"license": "MIT",
"dependencies": {
"@babel/core": "7.28.0",
@@ -493,8 +687,8 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/compiler": "20.1.0",
- "@angular/compiler-cli": "20.1.0"
+ "@angular/compiler": "20.1.1",
+ "@angular/compiler-cli": "20.1.1"
}
},
"node_modules/@angular/localize/node_modules/@babel/core": {
@@ -543,9 +737,9 @@
}
},
"node_modules/@angular/platform-browser": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.1.0.tgz",
- "integrity": "sha512-l3+Ijq5SFxT0v10DbOyMc7NzGdbK76yot2i8pXyArlPSPmpWvbbjXbiBqzrv3TSTrksHBhG3mMvyhTmHQ1cQFA==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.1.1.tgz",
+ "integrity": "sha512-aCKb8RramcdS0vlkMu8Xa7ehQCbD2ocCli5jDX0Y3BbMkz2W1BaK9hHEXsco3zUk2/MPRaj+t91Z8S0JzFlPvg==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -554,9 +748,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/animations": "20.1.0",
- "@angular/common": "20.1.0",
- "@angular/core": "20.1.0"
+ "@angular/animations": "20.1.1",
+ "@angular/common": "20.1.1",
+ "@angular/core": "20.1.1"
},
"peerDependenciesMeta": {
"@angular/animations": {
@@ -565,9 +759,9 @@
}
},
"node_modules/@angular/platform-browser-dynamic": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.1.0.tgz",
- "integrity": "sha512-s+Rm2akzYTE2UFdXZPvf02TxDCDskGdUxAxa/jmJbVuOpniuY0RlbnxIKDUD0qj3bYMUkbr7f2KJwHVldqJP6w==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.1.1.tgz",
+ "integrity": "sha512-zFpFgZ5uzbUgSPMfv/bPS4Sa/UyP3rIIDvwehZhGmijscIS9ZZPdnpKZTAAQNcLA3Posvd4tSDFp/xt7jWMfNw==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -576,16 +770,16 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.1.0",
- "@angular/compiler": "20.1.0",
- "@angular/core": "20.1.0",
- "@angular/platform-browser": "20.1.0"
+ "@angular/common": "20.1.1",
+ "@angular/compiler": "20.1.1",
+ "@angular/core": "20.1.1",
+ "@angular/platform-browser": "20.1.1"
}
},
"node_modules/@angular/router": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.1.0.tgz",
- "integrity": "sha512-fuUX1+AhcVSDgSSx85o6VOtXKM3oXAza+44jQ+nJGf316P0xpLKA586DKRNPjS4sRsWM7otKuOOTXXc4AMUHpQ==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.1.1.tgz",
+ "integrity": "sha512-CqSp+QYUXubfD8S0UuwTPQh8oEFq/DcGhAyaos2VLdXriahPI55nGvpYKLrLbqoNLk7JGi95Zea95Utn+eI/vw==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -594,9 +788,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.1.0",
- "@angular/core": "20.1.0",
- "@angular/platform-browser": "20.1.0",
+ "@angular/common": "20.1.1",
+ "@angular/core": "20.1.1",
+ "@angular/platform-browser": "20.1.1",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
@@ -3332,14 +3526,14 @@
]
},
"node_modules/@schematics/angular": {
- "version": "20.1.0",
- "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.1.0.tgz",
- "integrity": "sha512-sAEwygjY/j0tvo+EDFUAc54Hfp++K43ISe1/fdCU/M3Pseuf7oPPIm6VxxTrRc6fu4Lp5DBaD/PBkXNt/FqZpg==",
+ "version": "20.1.1",
+ "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.1.1.tgz",
+ "integrity": "sha512-eOEKBRcxt68xzZmqlgMJ5m9FOClzZumyltQhiBeAQfCrMAjxJZaB+pbyYreI+2DL91d/VkldJ9D/UcHZrhfLnQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@angular-devkit/core": "20.1.0",
- "@angular-devkit/schematics": "20.1.0",
+ "@angular-devkit/core": "20.1.1",
+ "@angular-devkit/schematics": "20.1.1",
"jsonc-parser": "3.3.1"
},
"engines": {
@@ -3573,9 +3767,9 @@
}
},
"node_modules/@types/node": {
- "version": "24.0.13",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.13.tgz",
- "integrity": "sha512-Qm9OYVOFHFYg3wJoTSrz80hoec5Lia/dPp84do3X7dZvLikQvM1YpmvTBEdIr/e+U8HTkFjLHLnl78K/qjf+jQ==",
+ "version": "24.0.14",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.14.tgz",
+ "integrity": "sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3725,6 +3919,31 @@
"ajv": "^8.8.2"
}
},
+ "node_modules/algoliasearch": {
+ "version": "5.32.0",
+ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.32.0.tgz",
+ "integrity": "sha512-84xBncKNPBK8Ae89F65+SyVcOihrIbm/3N7to+GpRBHEUXGjA3ydWTMpcRW6jmFzkBQ/eqYy/y+J+NBpJWYjBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-abtesting": "5.32.0",
+ "@algolia/client-analytics": "5.32.0",
+ "@algolia/client-common": "5.32.0",
+ "@algolia/client-insights": "5.32.0",
+ "@algolia/client-personalization": "5.32.0",
+ "@algolia/client-query-suggestions": "5.32.0",
+ "@algolia/client-search": "5.32.0",
+ "@algolia/ingestion": "1.32.0",
+ "@algolia/monitoring": "1.32.0",
+ "@algolia/recommend": "5.32.0",
+ "@algolia/requester-browser-xhr": "5.32.0",
+ "@algolia/requester-fetch": "5.32.0",
+ "@algolia/requester-node-http": "5.32.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
"node_modules/angular-gridster2": {
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/angular-gridster2/-/angular-gridster2-20.1.0.tgz",
@@ -4695,9 +4914,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.182",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.182.tgz",
- "integrity": "sha512-Lv65Btwv9W4J9pyODI6EWpdnhfvrve/us5h1WspW8B2Fb0366REPtY3hX7ounk1CkV/TBjWCEvCBBbYbmV0qCA==",
+ "version": "1.5.186",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.186.tgz",
+ "integrity": "sha512-lur7L4BFklgepaJxj4DqPk7vKbTEl0pajNlg2QjE5shefmlmBLm2HvQ7PMf1R/GvlevT/581cop33/quQcfX3A==",
"license": "ISC"
},
"node_modules/emoji-datasource": {
@@ -5201,9 +5420,9 @@
}
},
"node_modules/form-data": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz",
- "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
@@ -6626,9 +6845,9 @@
"license": "MIT"
},
"node_modules/msgpackr": {
- "version": "1.11.4",
- "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.4.tgz",
- "integrity": "sha512-uaff7RG9VIC4jacFW9xzL3jc0iM32DNHe4jYVycBcjUePT/Klnfj7pqtWJt9khvDFizmjN2TlYniYmSS2LIaZg==",
+ "version": "1.11.5",
+ "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.5.tgz",
+ "integrity": "sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -7320,10 +7539,11 @@
}
},
"node_modules/parse5": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
- "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz",
+ "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"entities": "^6.0.0"
},
@@ -7359,6 +7579,19 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
+ "node_modules/parse5-html-rewriting-stream/node_modules/parse5": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
"node_modules/parse5-sax-parser": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz",
@@ -7372,11 +7605,38 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
+ "node_modules/parse5-sax-parser/node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/parse5-sax-parser/node_modules/parse5": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
"node_modules/parse5/node_modules/entities": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
"integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
"license": "BSD-2-Clause",
+ "peer": true,
"engines": {
"node": ">=0.12"
},
diff --git a/ui/package.json b/ui/package.json
index 97f5d6d6c..56c7af94e 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -12,15 +12,15 @@
"postinstall": "patch-package"
},
"dependencies": {
- "@angular/animations": "20.1.0",
- "@angular/common": "20.1.0",
- "@angular/compiler": "20.1.0",
- "@angular/core": "20.1.0",
- "@angular/forms": "20.1.0",
- "@angular/localize": "20.1.0",
- "@angular/platform-browser": "20.1.0",
- "@angular/platform-browser-dynamic": "20.1.0",
- "@angular/router": "20.1.0",
+ "@angular/animations": "20.1.1",
+ "@angular/common": "20.1.1",
+ "@angular/compiler": "20.1.1",
+ "@angular/core": "20.1.1",
+ "@angular/forms": "20.1.1",
+ "@angular/localize": "20.1.1",
+ "@angular/platform-browser": "20.1.1",
+ "@angular/platform-browser-dynamic": "20.1.1",
+ "@angular/router": "20.1.1",
"@auth0/angular-jwt": "5.2.0",
"@homebridge/hap-client": "3.1.0",
"@ng-bootstrap/ng-bootstrap": "19.0.1",
@@ -57,16 +57,16 @@
"zone.js": "0.15.1"
},
"devDependencies": {
- "@angular/build": "^20.1.0",
- "@angular/cli": "^20.1.0",
- "@angular/compiler-cli": "^20.1.0",
- "@angular/language-service": "^20.1.0",
+ "@angular/build": "^20.1.1",
+ "@angular/cli": "^20.1.1",
+ "@angular/compiler-cli": "^20.1.1",
+ "@angular/language-service": "^20.1.1",
"@fortawesome/fontawesome-free": "^6.7.2",
"@homebridge/plugin-ui-utils": "^2.1.0",
"@types/emoji-js": "^3.5.2",
"@types/file-saver": "^2.0.7",
"@types/lodash-es": "^4.17.12",
- "@types/node": "^24.0.13",
+ "@types/node": "^24.0.14",
"@types/qrcode": "^1.5.5",
"@types/semver": "^7.7.0",
"he": "^1.2.0",
@@ -75,8 +75,8 @@
"typescript": "^5.8.3"
},
"overrides": {
- "@angular/animations": "20.1.0",
- "@angular/common": "20.1.0",
- "@angular/core": "20.1.0"
+ "@angular/animations": "20.1.1",
+ "@angular/common": "20.1.1",
+ "@angular/core": "20.1.1"
}
}
From f75a8954957bb8a74b392a48c84f891433feca54 Mon Sep 17 00:00:00 2001
From: Ben <43026681+bwp91@users.noreply.github.com>
Date: Thu, 17 Jul 2025 16:30:14 +0100
Subject: [PATCH 27/94] update node engines to `^20.19.0 || ^22.12.0 ||
^24.0.0`
d
---
CHANGELOG.md | 6 ++
package-lock.json | 8 +--
package.json | 2 +-
ui/package-lock.json | 134 +++++++++++++++++++++----------------------
ui/package.json | 28 ++++-----
5 files changed, 92 insertions(+), 86 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 81405fc87..374da999c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,12 @@
All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
+## v5.2.0 (Unreleased)
+
+### Other Changes
+
+- update node engines to `^20.19.0 || ^22.12.0 || ^24.0.0`
+
## v5.1.0 (2025-07-17)
⚠️ If you have not yet updated to the `5.x` branch of Homebridge UI, please read the breaking changes in the changelog before updating.
diff --git a/package-lock.json b/package-lock.json
index 4a59c79e3..715473977 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -90,7 +90,7 @@
},
"engines": {
"homebridge": "^1.8.0 || ^2.0.0-beta.0",
- "node": "^20 || ^22 || ^24"
+ "node": "^20.19.0 || ^22.12.0 || ^24.0.0"
}
},
"node_modules/@ampproject/remapping": {
@@ -4954,9 +4954,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.186",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.186.tgz",
- "integrity": "sha512-lur7L4BFklgepaJxj4DqPk7vKbTEl0pajNlg2QjE5shefmlmBLm2HvQ7PMf1R/GvlevT/581cop33/quQcfX3A==",
+ "version": "1.5.187",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.187.tgz",
+ "integrity": "sha512-cl5Jc9I0KGUoOoSbxvTywTa40uspGJt/BDBoDLoxJRSBpWh4FFXBsjNRHfQrONsV/OoEjDfHUmZQa2d6Ze4YgA==",
"dev": true,
"license": "ISC"
},
diff --git a/package.json b/package.json
index 437153666..dadeb5a77 100644
--- a/package.json
+++ b/package.json
@@ -55,7 +55,7 @@
"hb-service": "dist/bin/hb-service.js"
},
"engines": {
- "node": "^20 || ^22 || ^24",
+ "node": "^20.19.0 || ^22.12.0 || ^24.0.0",
"homebridge": "^1.8.0 || ^2.0.0-beta.0"
},
"scripts": {
diff --git a/ui/package-lock.json b/ui/package-lock.json
index 08d59b25a..d057b885d 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -10,15 +10,15 @@
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "@angular/animations": "20.1.1",
- "@angular/common": "20.1.1",
- "@angular/compiler": "20.1.1",
- "@angular/core": "20.1.1",
- "@angular/forms": "20.1.1",
- "@angular/localize": "20.1.1",
- "@angular/platform-browser": "20.1.1",
- "@angular/platform-browser-dynamic": "20.1.1",
- "@angular/router": "20.1.1",
+ "@angular/animations": "20.1.2",
+ "@angular/common": "20.1.2",
+ "@angular/compiler": "20.1.2",
+ "@angular/core": "20.1.2",
+ "@angular/forms": "20.1.2",
+ "@angular/localize": "20.1.2",
+ "@angular/platform-browser": "20.1.2",
+ "@angular/platform-browser-dynamic": "20.1.2",
+ "@angular/router": "20.1.2",
"@auth0/angular-jwt": "5.2.0",
"@homebridge/hap-client": "3.1.0",
"@ng-bootstrap/ng-bootstrap": "19.0.1",
@@ -57,8 +57,8 @@
"devDependencies": {
"@angular/build": "^20.1.1",
"@angular/cli": "^20.1.1",
- "@angular/compiler-cli": "^20.1.1",
- "@angular/language-service": "^20.1.1",
+ "@angular/compiler-cli": "^20.1.2",
+ "@angular/language-service": "^20.1.2",
"@fortawesome/fontawesome-free": "^6.7.2",
"@homebridge/plugin-ui-utils": "^2.1.0",
"@types/emoji-js": "^3.5.2",
@@ -343,9 +343,9 @@
}
},
"node_modules/@angular/animations": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.1.1.tgz",
- "integrity": "sha512-uM6UQ4AhFMyFm9ZMWV0823ddvhJeTLkJaR6e9Vdm60dlwgxNmkhVPW9rg60vQy6FTVL2YieHIh/V0M1iwKbzxQ==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.1.2.tgz",
+ "integrity": "sha512-r1JnNXZEg2Rrz53Mr4D4/S7v6ozZ3FPzJJo38lDq2WJKSkKc09R9fjFWIB/rXwEXUuiWEfNfxx+O4g6rrbXWWA==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -354,8 +354,8 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.1.1",
- "@angular/core": "20.1.1"
+ "@angular/common": "20.1.2",
+ "@angular/core": "20.1.2"
}
},
"node_modules/@angular/build": {
@@ -510,9 +510,9 @@
}
},
"node_modules/@angular/common": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.1.1.tgz",
- "integrity": "sha512-YBggvWw4IOeCidRs7BU4KbxNfq5P3n2M1WGJ+W8yoP6GA4sd/xMhi9tfIj3M9qQIse0xEDMuKAO8FDJaS1qrfQ==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.1.2.tgz",
+ "integrity": "sha512-MQYP+4lvw81jBRknNYgIye7N36SD68SADUB7xO+7pF5+KbGundfmZkO29uWCnTBU86C4xU4DshlFVhzFK1lreQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -521,14 +521,14 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/core": "20.1.1",
+ "@angular/core": "20.1.2",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/compiler": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.1.1.tgz",
- "integrity": "sha512-w5Uf8gBiD4PWOHWq9c0YeYs5HQaOXqNK9dgKdeY10XNQ2bAzdROLupKjJ7fj5pil3wP/cYdaQh9f4t3URz7I/g==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.1.2.tgz",
+ "integrity": "sha512-BCYQArXAknOyMB5rgx9yK3p5uYFhgN91Jxo5Fbuso6M+7p1PoxOE4E9XrqQfhpVJOl9hcz7vNFnQ4Oer0R83UQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -538,9 +538,9 @@
}
},
"node_modules/@angular/compiler-cli": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.1.1.tgz",
- "integrity": "sha512-88W5wzC9Kb8Etos1sZNmiDchxAdQVNwm+4RZl4fQQT+PXO/YdThkUj0IQlkgTMyAONntQcMzU4VeRr9EN5g1kQ==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.1.2.tgz",
+ "integrity": "sha512-NMSDavN+CJYvSze6wq7DpbrUA/EqiAD7GQoeJtuOknzUpPlWQmFOoHzTMKW+S34XlNEw+YQT0trv3DKcrE+T/w==",
"license": "MIT",
"dependencies": {
"@babel/core": "7.28.0",
@@ -560,7 +560,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/compiler": "20.1.1",
+ "@angular/compiler": "20.1.2",
"typescript": ">=5.8 <5.9"
},
"peerDependenciesMeta": {
@@ -615,9 +615,9 @@
}
},
"node_modules/@angular/core": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.1.1.tgz",
- "integrity": "sha512-7zzULRROtejS7AlLqG7fpzlebLd+FoE1eV3QiVD9GOkg+KzuUUbX7WFWmY8HkvS7ye6mSQEWfv4+yYa3AyA9SA==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.1.2.tgz",
+ "integrity": "sha512-8jAvpkHoXHSH0HoqNVgPstSMGmC0oaYN93HW7K2rMRxj1Uhtahkeb/7/kfnj7yLi5FDfm98ofOFT4Lxzf2eZXQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -626,7 +626,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/compiler": "20.1.1",
+ "@angular/compiler": "20.1.2",
"rxjs": "^6.5.3 || ^7.4.0",
"zone.js": "~0.15.0"
},
@@ -640,9 +640,9 @@
}
},
"node_modules/@angular/forms": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.1.1.tgz",
- "integrity": "sha512-oIfBbxUxZL4Ilwg/dh5Sv55WP2QugLl1/6oP8PFZWgiAcClLnKYLasLsEhl3YddQZzENAheHntxAWuV0lDkogg==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.1.2.tgz",
+ "integrity": "sha512-ziOaeN0by1cTCNzwCo/IC2ekFzrM7ehc8uQHMQ6dYprSX45lJmdCsNnn+R0lx68VugvbMhHHO5ieOORf5sEmew==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -651,16 +651,16 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.1.1",
- "@angular/core": "20.1.1",
- "@angular/platform-browser": "20.1.1",
+ "@angular/common": "20.1.2",
+ "@angular/core": "20.1.2",
+ "@angular/platform-browser": "20.1.2",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/language-service": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-20.1.1.tgz",
- "integrity": "sha512-skWKitO+MjgwEq47lMTHHo+QP1lJnCQT5bLqa4zRA9Td6lVApNwDFtBDLvLdOAFcM0Zuf4pQjc2K6VDa5f7DLg==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-20.1.2.tgz",
+ "integrity": "sha512-qeRrSJCfSZ5K01x+5bQntHPZOrXJOy17bLTtJdQ7iu5PBYh2hFwMipWOGp6SPeYgZ8yl88vmZI+YkLOEsNNniw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -668,9 +668,9 @@
}
},
"node_modules/@angular/localize": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-20.1.1.tgz",
- "integrity": "sha512-ptG+aL4EEQtxqW8i8RN3erjIx/spH83Jsxar8d2kdj0OXxqThZaG55ct+U4YBj42IYej2K++cHttsONzVdvdeQ==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-20.1.2.tgz",
+ "integrity": "sha512-stlG9ZmB71nBCDqu+9R3syNf/+Hny6/WlNL6whBB3hPN+LOXwb1LDHnu+YaIOoAoQ19ufNofYvGEsWWq6j4vEw==",
"license": "MIT",
"dependencies": {
"@babel/core": "7.28.0",
@@ -687,8 +687,8 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/compiler": "20.1.1",
- "@angular/compiler-cli": "20.1.1"
+ "@angular/compiler": "20.1.2",
+ "@angular/compiler-cli": "20.1.2"
}
},
"node_modules/@angular/localize/node_modules/@babel/core": {
@@ -737,9 +737,9 @@
}
},
"node_modules/@angular/platform-browser": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.1.1.tgz",
- "integrity": "sha512-aCKb8RramcdS0vlkMu8Xa7ehQCbD2ocCli5jDX0Y3BbMkz2W1BaK9hHEXsco3zUk2/MPRaj+t91Z8S0JzFlPvg==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.1.2.tgz",
+ "integrity": "sha512-jsgO4atyh6T3Rt+idHI29ENaq1a4VKfvtTgWf1S0qSCsfMt2kv5AAO+LkL6lYx8TtJu5zjAETiUwSiWUqY1jOg==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -748,9 +748,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/animations": "20.1.1",
- "@angular/common": "20.1.1",
- "@angular/core": "20.1.1"
+ "@angular/animations": "20.1.2",
+ "@angular/common": "20.1.2",
+ "@angular/core": "20.1.2"
},
"peerDependenciesMeta": {
"@angular/animations": {
@@ -759,9 +759,9 @@
}
},
"node_modules/@angular/platform-browser-dynamic": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.1.1.tgz",
- "integrity": "sha512-zFpFgZ5uzbUgSPMfv/bPS4Sa/UyP3rIIDvwehZhGmijscIS9ZZPdnpKZTAAQNcLA3Posvd4tSDFp/xt7jWMfNw==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.1.2.tgz",
+ "integrity": "sha512-KssXr0nDZxNjJChdyNFE1wFGaR374qEKBU6mburr2dTauV+jfaL7NrBRzQuTh7GfOOwHnW0uJ4b2dGK6m1tkNw==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -770,16 +770,16 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.1.1",
- "@angular/compiler": "20.1.1",
- "@angular/core": "20.1.1",
- "@angular/platform-browser": "20.1.1"
+ "@angular/common": "20.1.2",
+ "@angular/compiler": "20.1.2",
+ "@angular/core": "20.1.2",
+ "@angular/platform-browser": "20.1.2"
}
},
"node_modules/@angular/router": {
- "version": "20.1.1",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.1.1.tgz",
- "integrity": "sha512-CqSp+QYUXubfD8S0UuwTPQh8oEFq/DcGhAyaos2VLdXriahPI55nGvpYKLrLbqoNLk7JGi95Zea95Utn+eI/vw==",
+ "version": "20.1.2",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.1.2.tgz",
+ "integrity": "sha512-xMRDARfSgwDZSorrTMtv9Gdb9UtWflwn8LOgmPbj3waXyuGWUbgpoJCD0Mh6necc9fhQ60GbBRG5K2EVVr3ATQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
@@ -788,9 +788,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
- "@angular/common": "20.1.1",
- "@angular/core": "20.1.1",
- "@angular/platform-browser": "20.1.1",
+ "@angular/common": "20.1.2",
+ "@angular/core": "20.1.2",
+ "@angular/platform-browser": "20.1.2",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
@@ -4914,9 +4914,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.186",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.186.tgz",
- "integrity": "sha512-lur7L4BFklgepaJxj4DqPk7vKbTEl0pajNlg2QjE5shefmlmBLm2HvQ7PMf1R/GvlevT/581cop33/quQcfX3A==",
+ "version": "1.5.187",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.187.tgz",
+ "integrity": "sha512-cl5Jc9I0KGUoOoSbxvTywTa40uspGJt/BDBoDLoxJRSBpWh4FFXBsjNRHfQrONsV/OoEjDfHUmZQa2d6Ze4YgA==",
"license": "ISC"
},
"node_modules/emoji-datasource": {
diff --git a/ui/package.json b/ui/package.json
index 56c7af94e..50cee72c3 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -12,15 +12,15 @@
"postinstall": "patch-package"
},
"dependencies": {
- "@angular/animations": "20.1.1",
- "@angular/common": "20.1.1",
- "@angular/compiler": "20.1.1",
- "@angular/core": "20.1.1",
- "@angular/forms": "20.1.1",
- "@angular/localize": "20.1.1",
- "@angular/platform-browser": "20.1.1",
- "@angular/platform-browser-dynamic": "20.1.1",
- "@angular/router": "20.1.1",
+ "@angular/animations": "20.1.2",
+ "@angular/common": "20.1.2",
+ "@angular/compiler": "20.1.2",
+ "@angular/core": "20.1.2",
+ "@angular/forms": "20.1.2",
+ "@angular/localize": "20.1.2",
+ "@angular/platform-browser": "20.1.2",
+ "@angular/platform-browser-dynamic": "20.1.2",
+ "@angular/router": "20.1.2",
"@auth0/angular-jwt": "5.2.0",
"@homebridge/hap-client": "3.1.0",
"@ng-bootstrap/ng-bootstrap": "19.0.1",
@@ -59,8 +59,8 @@
"devDependencies": {
"@angular/build": "^20.1.1",
"@angular/cli": "^20.1.1",
- "@angular/compiler-cli": "^20.1.1",
- "@angular/language-service": "^20.1.1",
+ "@angular/compiler-cli": "^20.1.2",
+ "@angular/language-service": "^20.1.2",
"@fortawesome/fontawesome-free": "^6.7.2",
"@homebridge/plugin-ui-utils": "^2.1.0",
"@types/emoji-js": "^3.5.2",
@@ -75,8 +75,8 @@
"typescript": "^5.8.3"
},
"overrides": {
- "@angular/animations": "20.1.1",
- "@angular/common": "20.1.1",
- "@angular/core": "20.1.1"
+ "@angular/animations": "20.1.2",
+ "@angular/common": "20.1.2",
+ "@angular/core": "20.1.2"
}
}
From 5578de945d834614e479fc80a35760abeaf94c10 Mon Sep 17 00:00:00 2001
From: Ben <43026681+bwp91@users.noreply.github.com>
Date: Thu, 17 Jul 2025 16:46:54 +0100
Subject: [PATCH 28/94] v5.2.0
---
CHANGELOG.md | 21 +++++++++++++++++----
package-lock.json | 4 ++--
package.json | 2 +-
3 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 374da999c..897c3ece7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,16 +2,29 @@
All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
-## v5.2.0 (Unreleased)
+## v5.2.0 (2025-07-17)
+
+### Node.js Version
+
+- ️⚠️ The `hb-service` backend now has a stricter Node.js version requirement:
+ - if you are running Node.js `v20`, then you must be running at least `v20.19.0`
+ - if you are running Node.js `v22`, then you must be running at least `v22.12.0`
+ - if you are running Node.js `v24`, then you must be running at least `v24.0.0`
+ - although remember that `v24` is not officially supported yet
+- The UI will not allow you to update to UI `v5.2.0` if you are running an unsupported version of Node.js
+- Check the [Homebridge Wiki](https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js) for instructions on how to update Node.js on your system
### Other Changes
- update node engines to `^20.19.0 || ^22.12.0 || ^24.0.0`
-## v5.1.0 (2025-07-17)
+### Homebridge Dependencies
-⚠️ If you have not yet updated to the `5.x` branch of Homebridge UI, please read the breaking changes in the changelog before updating.
-There are no breaking changes between `5.0.0` and `5.1.0`.
+- `@homebridge/hap-client` @ `v3.0.0`
+- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
+- `@homebridge/plugin-ui-utils` @ `v2.1.0`
+
+## v5.1.0 (2025-07-17)
### UI Changes
diff --git a/package-lock.json b/package-lock.json
index 715473977..60a825fd1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "homebridge-config-ui-x",
- "version": "5.1.0",
+ "version": "5.2.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "homebridge-config-ui-x",
- "version": "5.1.0",
+ "version": "5.2.0",
"funding": [
{
"type": "github",
diff --git a/package.json b/package.json
index dadeb5a77..e306023fd 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "homebridge-config-ui-x",
"displayName": "Homebridge UI",
- "version": "5.1.0",
+ "version": "5.2.0",
"description": "A web based management, configuration and control platform for Homebridge.",
"author": "oznu ",
"license": "MIT",
From a1a4625b78722f278eb81d34e63bdbe6eb981e5e Mon Sep 17 00:00:00 2001
From: Ben <43026681+bwp91@users.noreply.github.com>
Date: Fri, 18 Jul 2025 04:04:37 +0100
Subject: [PATCH 29/94] update 'on' colour for sliding checkbox in grey theme
---
CHANGELOG.md | 12 ++++++++++++
ui/src/scss/themes/themes-dark.scss | 11 +++++++++--
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 897c3ece7..545bf8423 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,18 @@
All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
+## v5.2.1 (Unreleased)
+
+### UI Changes
+
+- update 'on' colour for sliding checkbox in dark grey theme
+
+### Homebridge Dependencies
+
+- `@homebridge/hap-client` @ `v3.0.0`
+- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.1`
+- `@homebridge/plugin-ui-utils` @ `v2.1.0`
+
## v5.2.0 (2025-07-17)
### Node.js Version
diff --git a/ui/src/scss/themes/themes-dark.scss b/ui/src/scss/themes/themes-dark.scss
index a67d41124..9aa742f7e 100644
--- a/ui/src/scss/themes/themes-dark.scss
+++ b/ui/src/scss/themes/themes-dark.scss
@@ -124,8 +124,15 @@
}
.rendux-input:checked + label {
- background: $darkModePrimary !important;
- border-color: $darkModePrimary !important;
+ // For the grey theme, the on colour is too close to the off colour,
+ // so as an exception, use a slightly greener colour
+ @if $name == 'dark-mode-grey' {
+ background: #6b7d5a !important;
+ border-color: #6b7d5a !important;
+ } @else {
+ background: $darkModePrimary !important;
+ border-color: $darkModePrimary !important;
+ }
}
.btn-primary,
From e6667e0695311d09fec9c8c844afecefd005905d Mon Sep 17 00:00:00 2001
From: Ben <43026681+bwp91@users.noreply.github.com>
Date: Fri, 18 Jul 2025 07:15:16 +0100
Subject: [PATCH 30/94] custom types: expose a switch/outlet as a lock and vice
versa
---
CHANGELOG.md | 1 +
.../accessory-info.component.ts | 9 ++++++++-
.../lock-mechanism.component.html | 6 +++---
.../lock-mechanism.component.ts | 19 ++++++++++++-------
.../types/outlet/outlet.component.html | 8 ++++++--
.../types/outlet/outlet.component.ts | 2 ++
.../types/switch/switch.component.html | 10 ++++++++--
.../types/switch/switch.component.ts | 2 ++
8 files changed, 42 insertions(+), 15 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 545bf8423..7a4e76f97 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@ All notable changes to `homebridge-config-ui-x` will be documented in this file.
### UI Changes
- update 'on' colour for sliding checkbox in dark grey theme
+- custom types: expose a switch/outlet as a lock and vice versa
### Homebridge Dependencies
diff --git a/ui/src/app/core/accessories/accessory-info/accessory-info.component.ts b/ui/src/app/core/accessories/accessory-info/accessory-info.component.ts
index 0ffa52739..2c57238a3 100644
--- a/ui/src/app/core/accessories/accessory-info/accessory-info.component.ts
+++ b/ui/src/app/core/accessories/accessory-info/accessory-info.component.ts
@@ -42,6 +42,11 @@ export class AccessoryInfoComponent implements OnInit {
'Valve',
'RobotVacuum',
],
+ [
+ 'Switch',
+ 'Outlet',
+ 'LockMechanism',
+ ],
[
'Door',
'Window',
@@ -75,7 +80,9 @@ export class AccessoryInfoComponent implements OnInit {
.forEach(service => this.extraServices.push(service))
}
- this.customTypeList = this.allCustomTypeList.find(types => types.includes(this.service.type)) || []
+ this.customTypeList = [
+ ...new Set(this.allCustomTypeList.filter(types => types.includes(this.service.type)).flat()),
+ ]
if (!this.service.customType) {
this.service.customType = this.service.type
}
diff --git a/ui/src/app/core/accessories/types/lock-mechanism/lock-mechanism.component.html b/ui/src/app/core/accessories/types/lock-mechanism/lock-mechanism.component.html
index 3b0574b51..e6662af10 100644
--- a/ui/src/app/core/accessories/types/lock-mechanism/lock-mechanism.component.html
+++ b/ui/src/app/core/accessories/types/lock-mechanism/lock-mechanism.component.html
@@ -1,18 +1,18 @@
- @if (service.values.LockCurrentState === 0) {
+ @if (service.values.LockCurrentState === 0 || service.values.On === 1) {
- } @else if (service.values.LockCurrentState === 1) {
+ } @else if (service.values.LockCurrentState === 1 || service.values.On === 0) {
@@ -9,7 +11,9 @@
{{ service.customName || service.serviceName }}
diff --git a/ui/src/app/core/accessories/types/outlet/outlet.component.ts b/ui/src/app/core/accessories/types/outlet/outlet.component.ts
index de6c32741..647a348c0 100644
--- a/ui/src/app/core/accessories/types/outlet/outlet.component.ts
+++ b/ui/src/app/core/accessories/types/outlet/outlet.component.ts
@@ -30,6 +30,8 @@ export class OutletComponent {
this.service.getCharacteristic('On').setValue(!this.service.values.On)
} else if ('Active' in this.service.values) {
this.service.getCharacteristic('Active').setValue(this.service.values.Active ? 0 : 1)
+ } else if ('LockTargetState' in this.service.values) {
+ this.service.getCharacteristic('LockTargetState').setValue(this.service.values.LockTargetState ? 0 : 1)
}
}
}
diff --git a/ui/src/app/core/accessories/types/switch/switch.component.html b/ui/src/app/core/accessories/types/switch/switch.component.html
index 2ed6c2c7f..91ecbf81d 100644
--- a/ui/src/app/core/accessories/types/switch/switch.component.html
+++ b/ui/src/app/core/accessories/types/switch/switch.component.html
@@ -1,6 +1,10 @@
@@ -9,7 +13,9 @@
{{ service.customName || service.serviceName }}
diff --git a/ui/src/app/core/accessories/types/switch/switch.component.ts b/ui/src/app/core/accessories/types/switch/switch.component.ts
index f9208eb13..2c49d5aee 100644
--- a/ui/src/app/core/accessories/types/switch/switch.component.ts
+++ b/ui/src/app/core/accessories/types/switch/switch.component.ts
@@ -30,6 +30,8 @@ export class SwitchComponent {
this.service.getCharacteristic('On').setValue(!this.service.values.On)
} else if ('Active' in this.service.values) {
this.service.getCharacteristic('Active').setValue(this.service.values.Active ? 0 : 1)
+ } else if ('LockTargetState' in this.service.values) {
+ this.service.getCharacteristic('LockTargetState').setValue(this.service.values.LockTargetState ? 0 : 1)
}
}
}
From d69971bdcca5ac414cf7f12899af552bf50748fa Mon Sep 17 00:00:00 2001
From: Ben <43026681+bwp91@users.noreply.github.com>
Date: Sat, 19 Jul 2025 07:22:50 +0100
Subject: [PATCH 31/94] update `monaco-editor` from `0.18.1` to `0.21.3`
---
CHANGELOG.md | 1 +
.../browser/ui/codicons/codicon/codicon.ttf | Bin 0 -> 61024 bytes
.../monaco/min/vs/base/worker/workerMain.js | 295 +-
.../min/vs/basic-languages/shell/shell.js | 4 +-
.../monaco/min/vs/editor/editor.main.css | 4 +-
.../monaco/min/vs/editor/editor.main.js | 4467 +++++++++--------
.../monaco/min/vs/editor/editor.main.nls.js | 57 +-
.../monaco/min/vs/language/json/jsonMode.js | 4 +-
.../monaco/min/vs/language/json/jsonWorker.js | 4 +-
ui/src/assets/monaco/min/vs/loader.js | 64 +-
10 files changed, 2535 insertions(+), 2365 deletions(-)
create mode 100644 ui/src/assets/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7a4e76f97..0655df23d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@ All notable changes to `homebridge-config-ui-x` will be documented in this file.
- update 'on' colour for sliding checkbox in dark grey theme
- custom types: expose a switch/outlet as a lock and vice versa
+- update `monaco-editor` from `0.18.1` to `0.21.3`
### Homebridge Dependencies
diff --git a/ui/src/assets/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf b/ui/src/assets/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..82acc8995b8d7ee0338bc65547844f5f99b953ce
GIT binary patch
literal 61024
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
z
zIxk(X6Ar~^*VN?u-LJ$6c>Sqd=I%-MK=OKrI1@<(sUcwZb5m&kRQ`s_j*%-b9}Xs}
zuDJW2i`NPdt>aI&MqEAhxx0=;6Xj!9Trrqpzs%or`GK=ae47@9R_zId`)?fEPoBj<^i#f45p>n(p$VFi;
zO!x)avJd18tQ;U^4g!XO=1l)TXMNSuljqjvguhDc1~x{V7KMLdIcutu{v{W^W?+h_
z_zU{q0LFNV^z)*J&>WO_JwX!8{}6Rb>BbSH%Ufm=Y@ce;UQX^Au{^0LXJqj#8|S-n5CfB8P~gjxE2#SU}vIr^dw^FXMh
zxMELnh4l62)~3$eH{P~E`mZ!wkdiKyUU_DQbx0rnX}(?xHgj0>3KE*jF!+4&_Gflg
zDSGNu^qccy`Sfe#4!=M4X85i6w{XFH8S+?B%Es!!6-5YOcS2Mr-9XLqK*
zVy-RC^FN|3@!)5edVu4K#?eF&QE-Sn
zfcmMTPQiy;v_LMkFi`_UB+2vi0xTb7TfA5B9m&6eIK*Fo
zIV#~CgTuy>Qs1CtfV8u3`&vQv&^%oNmp6gTrZsV*4hn*=E3^qZ7mxd
zP}VCokyvG!+bf7#RiLijkDP=aM9jqFZf7*Ov;=L^sS7V|DDim>fdIILK_)Hh9kPwi
z&M}P?`vwDJ#0jVq5spQWE*&9Yg#QQr0|-kZ--0^8;eu7
z-In@@ZhmI28F+Qa9HZQSk%AViXiYWt3;PA|oMm-hZ&}1%N6kWJ8YFRP7
z=p)8!3d)jgL9*}63Z0c$l0Jza4Pp&$TRCuBT~2H8Z$RQ9dkSB2{S9l{jfuKA`0K;5
zx&*r*=!@gW7n}l{y}qVI`1n22@iu5JwTN}<#(0UL8#&*bB5(_#6#+*CiAyrK92hGYIYBaj
zkqq#8m`Dk21uqM5E=?F(MM}2mASOhbQa7d)k;X_pWO;qKOhxEW_Vf7AErH=7|7}C@
zfjffx_66_IU8z2IxAsc+IeT1}>(A}hUS8C7&Qhg{wFm}<+2yx-!*0F7=Cr6(NrTmC
zHGl$HuhBYf4awxjVgIeev7y`j`}PHH8;T9z>Q7zaI=9PpMBCM+J>u#**L8*V+;iCh
zjYB7hz9OC70;r)4c22+7QzA{U(+wCqg>2z8n$h@Q%lZ8H3D39j
z&Q~?Yev5=7vA^$C27XI{YzSqhV*GZq1^MFM#u@xzRJ
zCIts&S86&cdMTtKDIgF|AAiC}mgSam%39FUHf&2Iwq>>^
zKy$Cz=|!mS-4w0sB_!wHKJWwibFRuQg*`g4tq-Se?cdtKe!im^Cmv6E5w}}tSM$%$
zBW*rbj{p6$|J~2~zj{Wwem~^7#qH?-nC*Wg2D(tD$cYOrjnI0~urRZQa+ZQJ?T$D<
z;kn9?+1=tX8Z~9{l4zzbFu&IJ947mpP=vPN-yWGiuk3>hVCj_QHtF-+Zz-dFV7`Qj
z2et+)p>^a?A+~)Q)GllrN5{WMZug^ps4 X1|Ou=Q(*tda06I>Ma-t5~M?57D~u<
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"undefined"!=typeof process&&"win32"===process.platform},t}();e.Environment=t}(o||(o={}));!function(e){var t=function(){return function(e,t,n){this.type=e,this.detail=t,this.timestamp=n}}();e.LoaderEvent=t;var n=function(){function n(e){this._events=[new t(1,"",e)]}return n.prototype.record=function(n,r){this._events.push(new t(n,r,e.Utilities.getHighPerformanceTimestamp()))},n.prototype.getEvents=function(){return this._events},n}();e.LoaderEventRecorder=n;var r=function(){function e(){}return e.prototype.record=function(e,t){},e.prototype.getEvents=function(){return[]},e.INSTANCE=new e,e}();e.NullLoaderEventRecorder=r}(o||(o={}));!function(e){var t=function(){function t(){}
-return t.fileUriToFilePath=function(e,t){if(t=decodeURI(t).replace(/%23/g,"#"),e){if(/^file:\/\/\//.test(t))return t.substr(8);if(/^file:\/\//.test(t))return t.substr(5)}else if(/^file:\/\//.test(t))return t.substr(7);return t},t.startsWith=function(e,t){return e.length>=t.length&&e.substr(0,t.length)===t},t.endsWith=function(e,t){return e.length>=t.length&&e.substr(e.length-t.length)===t},t.containsQueryString=function(e){return/^[^\#]*\?/gi.test(e)},t.isAbsolutePath=function(e){return/^((http:\/\/)|(https:\/\/)|(file:\/\/)|(\/))/.test(e)},t.forEachProperty=function(e,t){if(e){var n=void 0;for(n in e)e.hasOwnProperty(n)&&t(n,e[n])}},t.isEmpty=function(e){var n=!0;return t.forEachProperty(e,function(){n=!1}),n},t.recursiveClone=function(e){if(!e||"object"!=typeof e)return e;var n=Array.isArray(e)?[]:{};return t.forEachProperty(e,function(e,r){n[e]=r&&"object"==typeof r?t.recursiveClone(r):r}),n},t.generateAnonymousModule=function(){return"===anonymous"+t.NEXT_ANONYMOUS_ID+++"==="},
-t.isAnonymousModule=function(e){return t.startsWith(e,"===anonymous")},t.getHighPerformanceTimestamp=function(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=e.global.performance&&"function"==typeof e.global.performance.now),this.HAS_PERFORMANCE_NOW?e.global.performance.now():Date.now()},t.NEXT_ANONYMOUS_ID=1,t.PERFORMANCE_NOW_PROBED=!1,t.HAS_PERFORMANCE_NOW=!1,t}();e.Utilities=t}(o||(o={}));!function(e){function t(e){if(e instanceof Error)return e;var t=new Error(e.message||String(e)||"Unknown Error");return e.stack&&(t.stack=e.stack),t}e.ensureError=t;var n=function(){function n(){}return n.validateConfigurationOptions=function(n){function r(e){return"loading"===e.phase?(console.error('Loading "'+e.moduleId+'" failed'),console.error(e),console.error("Here are the modules that depend on it:"),void console.error(e.neededBy)):"factory"===e.phase?(console.error('The factory method of "'+e.moduleId+'" has thrown an exception'),void console.error(e)):void 0}
-if("string"!=typeof(n=n||{}).baseUrl&&(n.baseUrl=""),"boolean"!=typeof n.isBuild&&(n.isBuild=!1),"object"!=typeof n.paths&&(n.paths={}),"object"!=typeof n.config&&(n.config={}),void 0===n.catchError&&(n.catchError=!1),void 0===n.recordStats&&(n.recordStats=!1),"string"!=typeof n.urlArgs&&(n.urlArgs=""),"function"!=typeof n.onError&&(n.onError=r),Array.isArray(n.ignoreDuplicateModules)||(n.ignoreDuplicateModules=[]),n.baseUrl.length>0&&(e.Utilities.endsWith(n.baseUrl,"/")||(n.baseUrl+="/")),"string"!=typeof n.cspNonce&&(n.cspNonce=""),Array.isArray(n.nodeModules)||(n.nodeModules=[]),n.nodeCachedData&&"object"==typeof n.nodeCachedData&&("string"!=typeof n.nodeCachedData.seed&&(n.nodeCachedData.seed="seed"),("number"!=typeof n.nodeCachedData.writeDelay||n.nodeCachedData.writeDelay<0)&&(n.nodeCachedData.writeDelay=7e3),!n.nodeCachedData.path||"string"!=typeof n.nodeCachedData.path)){var i=t(new Error("INVALID cached data configuration, 'path' MUST be set"));i.phase="configuration",n.onError(i),
-n.nodeCachedData=void 0}return n},n.mergeConfigurationOptions=function(t,r){void 0===t&&(t=null),void 0===r&&(r=null);var i=e.Utilities.recursiveClone(r||{});return e.Utilities.forEachProperty(t,function(t,n){"ignoreDuplicateModules"===t&&void 0!==i.ignoreDuplicateModules?i.ignoreDuplicateModules=i.ignoreDuplicateModules.concat(n):"paths"===t&&void 0!==i.paths?e.Utilities.forEachProperty(n,function(e,t){return i.paths[e]=t}):"config"===t&&void 0!==i.config?e.Utilities.forEachProperty(n,function(e,t){return i.config[e]=t}):i[t]=e.Utilities.recursiveClone(n)}),n.validateConfigurationOptions(i)},n}();e.ConfigurationOptionsUtil=n;var r=function(){function t(e,t){if(this._env=e,this.options=n.mergeConfigurationOptions(t),this._createIgnoreDuplicateModulesMap(),this._createNodeModulesMap(),this._createSortedPathsRules(),""===this.options.baseUrl){if(this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename&&this._env.isNode){
-var r=this.options.nodeRequire.main.filename,i=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));this.options.baseUrl=r.substring(0,i+1)}if(this.options.nodeMain&&this._env.isNode){var r=this.options.nodeMain,i=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));this.options.baseUrl=r.substring(0,i+1)}}}return t.prototype._createIgnoreDuplicateModulesMap=function(){this.ignoreDuplicateModulesMap={};for(var e=0;e=5||(s=o.length,i._fs.writeFile(n,Buffer.concat([a,o]),function(e){e&&r.getConfig().onError(e),r.getRecorder().record(63,n),l()}))},o*Math.pow(4,u++))};l()},t.prototype._readSourceAndCachedData=function(e,t,n,r){if(t){var i=void 0,o=void 0,s=void 0,u=2,a=function(e){e?r(e):0==--u&&r(void 0,i,o,s)};this._fs.readFile(e,{encoding:"utf8"},function(e,t){i=t,a(e)}),this._fs.readFile(t,function(e,r){!e&&r&&r.length>0?(s=r.slice(0,16),o=r.slice(16),n.record(60,t)):n.record(61,t),a()})}else this._fs.readFile(e,{encoding:"utf8"},r)},t.prototype._verifyCachedData=function(e,t,n,r){var i=this;r&&(e.cachedDataRejected||setTimeout(function(){var e=i._crypto.createHash("md5").update(t,"utf8").digest()
-;r.equals(e)||(console.warn("FAILED TO VERIFY CACHED DATA. Deleting '"+n+"' now, but a RESTART IS REQUIRED"),i._fs.unlink(n,function(e){return console.error("FAILED to unlink: '"+n+"'",e)}))},Math.ceil(5e3*(1+Math.random()))))},t._BOM=65279,t._PREFIX="(function (require, define, __filename, __dirname) { ",t._SUFFIX="\n});",t}();e.createScriptLoader=function(e){return new t(e)}}(o||(o={}));!function(e){var t=function(){function t(e){var t=e.lastIndexOf("/");this.fromModulePath=-1!==t?e.substr(0,t+1):""}return t._normalizeModuleId=function(e){var t,n=e;for(t=/\/\.\//;t.test(n);)n=n.replace(t,"/");for(n=n.replace(/^\.\//g,""),t=/\/(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//;t.test(n);)n=n.replace(t,"/");return n=n.replace(/^(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//,"")},t.prototype.resolveModule=function(n){var r=n
-;return e.Utilities.isAbsolutePath(r)||(e.Utilities.startsWith(r,"./")||e.Utilities.startsWith(r,"../"))&&(r=t._normalizeModuleId(this.fromModulePath+r)),r},t.ROOT=new t(""),t}();e.ModuleIdResolver=t;var n=function(){function t(e,t,n,r,i,o){this.id=e,this.strId=t,this.dependencies=n,this._callback=r,this._errorback=i,this.moduleIdResolver=o,this.exports={},this.error=null,this.exportsPassedIn=!1,this.unresolvedDependenciesCount=this.dependencies.length,this._isComplete=!1}return t._safeInvokeFunction=function(t,n){try{return{returnedValue:t.apply(e.global,n),producedError:null}}catch(e){return{returnedValue:null,producedError:e}}},t._invokeFactory=function(t,n,r,i){return t.isBuild()&&!e.Utilities.isAnonymousModule(n)?{returnedValue:null,producedError:null}:t.shouldCatchError()?this._safeInvokeFunction(r,i):{returnedValue:r.apply(e.global,i),producedError:null}},t.prototype.complete=function(n,r,i){this._isComplete=!0;var o=null;if(this._callback)if("function"==typeof this._callback){n.record(21,this.strId)
-;var s=t._invokeFactory(r,this.strId,this._callback,i);o=s.producedError,n.record(22,this.strId),o||void 0===s.returnedValue||this.exportsPassedIn&&!e.Utilities.isEmpty(this.exports)||(this.exports=s.returnedValue)}else this.exports=this._callback;if(o){var u=e.ensureError(o);u.phase="factory",u.moduleId=this.strId,this.error=u,r.onError(u)}this.dependencies=null,this._callback=null,this._errorback=null,this.moduleIdResolver=null},t.prototype.onDependencyError=function(e){return this._isComplete=!0,this.error=e,!!this._errorback&&(this._errorback(e),!0)},t.prototype.isComplete=function(){return this._isComplete},t}();e.Module=n;var r=function(){function e(){this._nextId=0,this._strModuleIdToIntModuleId=new Map,this._intModuleIdToStrModuleId=[],this.getModuleId("exports"),this.getModuleId("module"),this.getModuleId("require")}return e.prototype.getMaxModuleId=function(){return this._nextId},e.prototype.getModuleId=function(e){var t=this._strModuleIdToIntModuleId.get(e);return void 0===t&&(t=this._nextId++,
-this._strModuleIdToIntModuleId.set(e,t),this._intModuleIdToStrModuleId[t]=e),t},e.prototype.getStrModuleId=function(e){return this._intModuleIdToStrModuleId[e]},e}(),i=function(){function e(e){this.id=e}return e.EXPORTS=new e(0),e.MODULE=new e(1),e.REQUIRE=new e(2),e}();e.RegularDependency=i;var o=function(){return function(e,t,n){this.id=e,this.pluginId=t,this.pluginParam=n}}();e.PluginDependency=o;var s=function(){function s(t,n,i,o,s){void 0===s&&(s=0),this._env=t,this._scriptLoader=n,this._loaderAvailableTimestamp=s,this._defineFunc=i,this._requireFunc=o,this._moduleIdProvider=new r,this._config=new e.Configuration(this._env),this._modules2=[],this._knownModules2=[],this._inverseDependencies2=[],this._inversePluginDependencies2=new Map,this._currentAnnonymousDefineCall=null,this._recorder=null,this._buildInfoPath=[],this._buildInfoDefineStack=[],this._buildInfoDependencies=[]}return s.prototype.reset=function(){
-return new s(this._env,this._scriptLoader,this._defineFunc,this._requireFunc,this._loaderAvailableTimestamp)},s.prototype.getGlobalAMDDefineFunc=function(){return this._defineFunc},s.prototype.getGlobalAMDRequireFunc=function(){return this._requireFunc},s._findRelevantLocationInStack=function(e,t){for(var n=function(e){return e.replace(/\\/g,"/")},r=n(e),i=t.split(/\n/),o=0;o=0){var r=t.resolveModule(e.substr(0,n)),s=t.resolveModule(e.substr(n+1)),u=this._moduleIdProvider.getModuleId(r+"!"+s),a=this._moduleIdProvider.getModuleId(r);return new o(u,a,s)}return new i(this._moduleIdProvider.getModuleId(t.resolveModule(e)))},s.prototype._normalizeDependencies=function(e,t){for(var n=[],r=0,i=0,o=e.length;i0;){var l=a.shift(),c=this._modules2[l];c&&(u=c.onDependencyError(r)||u);var d=this._inverseDependencies2[l];if(d)for(var o=0,s=d.length;o0;){var u=s.shift().dependencies;if(u)for(var i=0,o=u.length;i=r.length)t._onLoadError(e,n);else{var s=r[i],u=t.getRecorder();if(t._config.isBuild()&&"empty:"===s)return t._buildInfoPath[e]=s,t.defineModule(t._moduleIdProvider.getStrModuleId(e),[],null,null,null),void t._onLoad(e);u.record(10,s),t._scriptLoader.load(t,s,function(){t._config.isBuild()&&(t._buildInfoPath[e]=s),u.record(11,s),t._onLoad(e)},function(e){u.record(12,s),o(e)})}};o(null)}},s.prototype._loadPluginDependency=function(e,n){var r=this;if(!this._modules2[n.id]&&!this._knownModules2[n.id]){this._knownModules2[n.id]=!0;var i=function(e){r.defineModule(r._moduleIdProvider.getStrModuleId(n.id),[],e,null,null)};i.error=function(e){r._config.onError(r._createLoadError(n.id,e))},e.load(n.pluginParam,this._createRequire(t.ROOT),i,this._config.getOptionsLiteral())}},s.prototype._resolve=function(e){var t=this,n=e.dependencies;if(n)for(var r=0,s=n.length;r \n")),e.unresolvedDependenciesCount--}else if(this._inverseDependencies2[u.id]=this._inverseDependencies2[u.id]||[],this._inverseDependencies2[u.id].push(e.id),u instanceof o){var c=this._modules2[u.pluginId];if(c&&c.isComplete()){this._loadPluginDependency(c.exports,u);continue}var d=this._inversePluginDependencies2.get(u.pluginId);d||(d=[],this._inversePluginDependencies2.set(u.pluginId,d)),d.push(u),this._loadModule(u.pluginId)
-}else this._loadModule(u.id)}else e.unresolvedDependenciesCount--;else e.unresolvedDependenciesCount--;else e.exportsPassedIn=!0,e.unresolvedDependenciesCount--}0===e.unresolvedDependenciesCount&&this._onModuleComplete(e)},s.prototype._onModuleComplete=function(e){var t=this,n=this.getRecorder();if(!e.isComplete()){var r=e.dependencies,o=[];if(r)for(var s=0,u=r.length;sr?e[a]=o[u++]:u>i?e[a]=o[s++]:t(o[u],o[s])<0?e[a]=o[u++]:e[a]=o[s++]}(e,t,n,s,i,o)}}function i(e,t){for(var n=0;n0))return o;i=o-1}}return-(r+1)},
-t.findFirstInSorted=function(e,t){var n=0,r=e.length;if(0===r)return 0;for(;n0},t.distinct=function(e,t){if(!t)return e.filter(function(t,n){return e.indexOf(t)===n});var n=Object.create(null);return e.filter(function(e){var r=t(e);return!n[r]&&(n[r]=!0,!0)})},t.distinctES6=function(e){var t=new Set;return e.filter(function(e){return!t.has(e)&&(t.add(e),!0)})},t.firstIndex=i,t.first=function(e,t,n){void 0===n&&(n=void 0);var r=i(e,t);return r<0?n:e[r]},t.flatten=function(e){var t;return(t=[]).concat.apply(t,e)},t.range=function(e,t){var n="number"==typeof t?e:0;"number"==typeof t?n=e:(n=0,t=e)
-;var r=[];if(n<=t)for(i=n;it;i--)r.push(i);return r},t.arrayInsert=function(e,t,n){var r=e.slice(0,t),i=e.slice(t);return r.concat(n,i)},t.pushToStart=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.unshift(t))},t.pushToEnd=function(e,t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),e.push(t))},t.asArray=function(e){return Array.isArray(e)?e:[e]}}),i(e[15],t([0,1]),function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t,n,r){this.originalStart=e,this.originalLength=t,this.modifiedStart=n,this.modifiedLength=r}return e.prototype.getOriginalEnd=function(){return this.originalStart+this.originalLength},e.prototype.getModifiedEnd=function(){return this.modifiedStart+this.modifiedLength},e}();t.DiffChange=n}),i(e[8],t([0,1,15]),function(e,t,n){"use strict";function r(e){return{getLength:function(){return e.length},getElementAtIndex:function(t){return e.charCodeAt(t)}}}Object.defineProperty(t,"__esModule",{value:!0}),
-t.stringDiff=function(e,t,n){return new u(r(e),r(t)).ComputeDiff(n)};var i=function(){function e(){}return e.Assert=function(e,t){if(!e)throw new Error(t)},e}();t.Debug=i;var o=function(){function e(){}return e.Copy=function(e,t,n,r,i){for(var o=0;o0||this.m_modifiedCount>0)&&this.m_changes.push(new n.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=Number.MAX_VALUE,this.m_modifiedStart=Number.MAX_VALUE},e.prototype.AddOriginalElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++},e.prototype.AddModifiedElement=function(e,t){
-this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++},e.prototype.getChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes},e.prototype.getReverseChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes},e}(),u=function(){function e(e,t,n){void 0===n&&(n=null),this.OriginalSequence=e,this.ModifiedSequence=t,this.ContinueProcessingPredicate=n,this.m_forwardHistory=[],this.m_reverseHistory=[]}return e.prototype.ElementsAreEqual=function(e,t){return this.OriginalSequence.getElementAtIndex(e)===this.ModifiedSequence.getElementAtIndex(t)},e.prototype.OriginalElementsAreEqual=function(e,t){return this.OriginalSequence.getElementAtIndex(e)===this.OriginalSequence.getElementAtIndex(t)},e.prototype.ModifiedElementsAreEqual=function(e,t){
-return this.ModifiedSequence.getElementAtIndex(e)===this.ModifiedSequence.getElementAtIndex(t)},e.prototype.ComputeDiff=function(e){return this._ComputeDiff(0,this.OriginalSequence.getLength()-1,0,this.ModifiedSequence.getLength()-1,e)},e.prototype._ComputeDiff=function(e,t,n,r,i){var o=this.ComputeDiffRecursive(e,t,n,r,[!1]);return i?this.PrettifyChanges(o):o},e.prototype.ComputeDiffRecursive=function(e,t,r,o,s){for(s[0]=!1;e<=t&&r<=o&&this.ElementsAreEqual(e,r);)e++,r++;for(;t>=e&&o>=r&&this.ElementsAreEqual(t,o);)t--,o--;if(e>t||r>o){var u=void 0;return r<=o?(i.Assert(e===t+1,"originalStart should only be one more than originalEnd"),u=[new n.DiffChange(e,0,r,o-r+1)]):e<=t?(i.Assert(r===o+1,"modifiedStart should only be one more than modifiedEnd"),u=[new n.DiffChange(e,t-e+1,r,0)]):(i.Assert(e===t+1,"originalStart should only be one more than originalEnd"),i.Assert(r===o+1,"modifiedStart should only be one more than modifiedEnd"),u=[]),u}
-var a=[0],l=[0],c=this.ComputeRecursionPoint(e,t,r,o,a,l,s),d=a[0],f=l[0];if(null!==c)return c;if(!s[0]){var h=this.ComputeDiffRecursive(e,d,r,f,s),p=[];return p=s[0]?[new n.DiffChange(d+1,t-(d+1)+1,f+1,o-(f+1)+1)]:this.ComputeDiffRecursive(d+1,t,f+1,o,s),this.ConcatenateChanges(h,p)}return[new n.DiffChange(e,t-e+1,r,o-r+1)]},e.prototype.WALKTRACE=function(e,t,r,i,o,u,a,l,c,d,f,h,p,m,g,_,v,y){var b,C=null,E=null,L=new s,N=t,S=r,M=p[0]-_[0]-i,A=Number.MIN_VALUE,I=this.m_forwardHistory.length-1;do{(b=M+e)===N||b=0&&(e=(c=this.m_forwardHistory[I])[0],N=1,S=c.length-1)}while(--I>=-1);if(C=L.getReverseChanges(),y[0]){var w=p[0]+1,P=_[0]+1;if(null!==C&&C.length>0){var D=C[C.length-1];w=Math.max(w,D.getOriginalEnd()),P=Math.max(P,D.getModifiedEnd())}E=[new n.DiffChange(w,h-w+1,P,g-P+1)]}else{L=new s,N=u,S=a,M=p[0]-_[0]-l,
-A=Number.MAX_VALUE,I=v?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{(b=M+o)===N||b=d[b+1]?(m=(f=d[b+1]-1)-M-l,f>A&&L.MarkNextChange(),A=f+1,L.AddOriginalElement(f+1,m+1),M=b+1-o):(m=(f=d[b-1])-M-l,f>A&&L.MarkNextChange(),A=f,L.AddModifiedElement(f+1,m+1),M=b-1-o),I>=0&&(o=(d=this.m_reverseHistory[I])[0],N=1,S=d.length-1)}while(--I>=-1);E=L.getChanges()}return this.ConcatenateChanges(C,E)},e.prototype.ComputeRecursionPoint=function(e,t,r,i,s,u,a){var l,c=0,d=0,f=0,h=0,p=0,m=0;e--,r--,s[0]=0,u[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];var g=t-e+(i-r),_=g+1,v=new Array(_),y=new Array(_),b=i-r,C=t-e,E=e-r,L=t-i,N=(C-b)%2==0;v[b]=e,y[C]=t,a[0]=!1;var S,M;for(l=1;l<=g/2+1;l++){var A=0,I=0;for(f=this.ClipDiagonalBound(b-l,l,b,_),h=this.ClipDiagonalBound(b+l,l,b,_),S=f;S<=h;S+=2){for(d=(c=S===f||SA+I&&(A=c,I=d),!N&&Math.abs(S-C)<=l-1&&c>=y[S])return s[0]=c,u[0]=d,
-M<=y[S]&&l<=1448?this.WALKTRACE(b,f,h,E,C,p,m,L,v,y,c,t,s,d,i,u,N,a):null}var w=(A-e+(I-r)-l)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(A,this.OriginalSequence,w))return a[0]=!0,s[0]=A,u[0]=I,w>0&&l<=1448?this.WALKTRACE(b,f,h,E,C,p,m,L,v,y,c,t,s,d,i,u,N,a):(e++,r++,[new n.DiffChange(e,t-e+1,r,i-r+1)]);for(p=this.ClipDiagonalBound(C-l,l,C,_),m=this.ClipDiagonalBound(C+l,l,C,_),S=p;S<=m;S+=2){for(d=(c=S===p||S=y[S+1]?y[S+1]-1:y[S-1])-(S-C)-L,M=c;c>e&&d>r&&this.ElementsAreEqual(c,d);)c--,d--;if(y[S]=c,N&&Math.abs(S-b)<=l&&c<=v[S])return s[0]=c,u[0]=d,M>=v[S]&&l<=1448?this.WALKTRACE(b,f,h,E,C,p,m,L,v,y,c,t,s,d,i,u,N,a):null}if(l<=1447){var P=new Array(h-f+2);P[0]=b-f+1,o.Copy(v,f,P,1,h-f+1),this.m_forwardHistory.push(P),(P=new Array(m-p+2))[0]=C-p+1,o.Copy(y,p,P,1,m-p+1),this.m_reverseHistory.push(P)}}return this.WALKTRACE(b,f,h,E,C,p,m,L,v,y,c,t,s,d,i,u,N,a)},e.prototype.PrettifyChanges=function(e){for(u=0;u0,o=t.modifiedLength>0;t.originalStart+t.originalLength=0;u--){var t=e[u],n=0,r=0;if(u>0){var a=e[u-1];a.originalLength>0&&(n=a.originalStart+a.originalLength),a.modifiedLength>0&&(r=a.modifiedStart+a.modifiedLength)}for(var i=t.originalLength>0,o=t.modifiedLength>0,l=0,c=this._boundaryScore(t.originalStart,t.originalLength,t.modifiedStart,t.modifiedLength),d=1;;d++){var f=t.originalStart-d,h=t.modifiedStart-d;if(fc&&(c=p,l=d)}t.originalStart-=l,t.modifiedStart-=l}return e},e.prototype._OriginalIsBoundary=function(e){if(e<=0||e>=this.OriginalSequence.getLength()-1)return!0;var t=this.OriginalSequence.getElementAtIndex(e);return"string"==typeof t&&/^\s*$/.test(t)},e.prototype._OriginalRegionIsBoundary=function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1},e.prototype._ModifiedIsBoundary=function(e){if(e<=0||e>=this.ModifiedSequence.getLength()-1)return!0;var t=this.ModifiedSequence.getElementAtIndex(e);return"string"==typeof t&&/^\s*$/.test(t)},e.prototype._ModifiedRegionIsBoundary=function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t
-;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1},e.prototype._boundaryScore=function(e,t,n,r){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,r)?1:0)},e.prototype.ConcatenateChanges=function(e,t){var n=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],n)){r=new Array(e.length+t.length-1);return o.Copy(e,0,r,0,e.length-1),r[e.length-1]=n[0],o.Copy(t,1,r,e.length,t.length-1),r}var r=new Array(e.length+t.length);return o.Copy(e,0,r,0,e.length),o.Copy(t,0,r,e.length,t.length),r},e.prototype.ChangesOverlap=function(e,t,r){if(i.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),i.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var o=e.originalStart,s=e.originalLength,u=e.modifiedStart,a=e.modifiedLength
-;return e.originalStart+e.originalLength>=t.originalStart&&(s=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),r[0]=new n.DiffChange(o,s,u,a),!0}return r[0]=null,!1},e.prototype.ClipDiagonalBound=function(e,t,n,r){if(e>=0&&e